aboutsummaryrefslogtreecommitdiffstats
path: root/ports/servoshell/egl/android.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ports/servoshell/egl/android.rs')
-rw-r--r--ports/servoshell/egl/android.rs55
1 files changed, 37 insertions, 18 deletions
diff --git a/ports/servoshell/egl/android.rs b/ports/servoshell/egl/android.rs
index f195cc2c910..0f84dadfc14 100644
--- a/ports/servoshell/egl/android.rs
+++ b/ports/servoshell/egl/android.rs
@@ -19,10 +19,11 @@ use log::{debug, error, info, warn};
use raw_window_handle::{
AndroidDisplayHandle, AndroidNdkWindowHandle, RawDisplayHandle, RawWindowHandle,
};
-use servo::{LoadStatus, MediaSessionActionType};
+use servo::{
+ AlertResponse, LoadStatus, MediaSessionActionType, PermissionRequest, SimpleDialog, WebView,
+};
use simpleservo::{
- DeviceIntRect, EventLoopWaker, InitOptions, InputMethodType, MediaSessionPlaybackState,
- PromptResult, APP,
+ DeviceIntRect, EventLoopWaker, InitOptions, InputMethodType, MediaSessionPlaybackState, APP,
};
use super::app_state::{Coordinates, RunningAppState};
@@ -461,11 +462,8 @@ impl HostCallbacks {
let jvm = env.get_java_vm().unwrap();
HostCallbacks { callbacks, jvm }
}
-}
-impl HostTrait for HostCallbacks {
- fn prompt_alert(&self, message: String, _trusted: bool) {
- debug!("prompt_alert");
+ fn show_alert(&self, message: String) {
let mut env = self.jvm.get_env().unwrap();
let Ok(string) = new_string_as_jvalue(&mut env, &message) else {
return;
@@ -478,20 +476,41 @@ impl HostTrait for HostCallbacks {
)
.unwrap();
}
+}
- fn prompt_ok_cancel(&self, message: String, _trusted: bool) -> PromptResult {
- warn!("Prompt not implemented. Cancelled. {}", message);
- PromptResult::Secondary
- }
-
- fn prompt_yes_no(&self, message: String, _trusted: bool) -> PromptResult {
- warn!("Prompt not implemented. Cancelled. {}", message);
- PromptResult::Secondary
+impl HostTrait for HostCallbacks {
+ fn request_permission(&self, _webview: WebView, request: PermissionRequest) {
+ warn!("Permissions prompt not implemented. Denied.");
+ request.deny();
}
- fn prompt_input(&self, message: String, default: String, _trusted: bool) -> Option<String> {
- warn!("Input prompt not implemented. {}", message);
- Some(default)
+ fn show_simple_dialog(&self, _webview: WebView, dialog: SimpleDialog) {
+ let _ = match dialog {
+ SimpleDialog::Alert {
+ message,
+ response_sender,
+ } => {
+ debug!("SimpleDialog::Alert");
+ // TODO: Indicate that this message is untrusted, and what origin it came from.
+ self.show_alert(message);
+ response_sender.send(AlertResponse::Ok)
+ },
+ SimpleDialog::Confirm {
+ message,
+ response_sender,
+ } => {
+ warn!("Confirm dialog not implemented. Cancelled. {}", message);
+ response_sender.send(Default::default())
+ },
+ SimpleDialog::Prompt {
+ message,
+ response_sender,
+ ..
+ } => {
+ warn!("Prompt dialog not implemented. Cancelled. {}", message);
+ response_sender.send(Default::default())
+ },
+ };
}
fn notify_load_status_changed(&self, load_status: LoadStatus) {