mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Delegate permission prompt dialog formatting to embedders
This commit is contained in:
parent
675b36dde5
commit
f75d547c61
3 changed files with 76 additions and 25 deletions
|
@ -9,6 +9,7 @@ use keyboard_types::{Key, KeyboardEvent, Modifiers, ShortcutMatcher};
|
|||
use servo::compositing::windowing::{WebRenderDebugOption, WindowEvent};
|
||||
use servo::embedder_traits::{
|
||||
EmbedderMsg, FilterPattern, PermissionRequest, PromptDefinition, PromptOrigin, PromptResult,
|
||||
PermissionPrompt,
|
||||
};
|
||||
use servo::msg::constellation_msg::TopLevelBrowsingContextId as BrowserId;
|
||||
use servo::msg::constellation_msg::TraversalDirection;
|
||||
|
@ -493,8 +494,8 @@ where
|
|||
self.event_queue.push(WindowEvent::SendError(None, reason));
|
||||
};
|
||||
},
|
||||
EmbedderMsg::PromptPermission(message, dialog_title, sender) => {
|
||||
let permission_state = prompt_user(&message, &dialog_title);
|
||||
EmbedderMsg::PromptPermission(prompt, sender) => {
|
||||
let permission_state = prompt_user(prompt);
|
||||
let _ = sender.send(permission_state);
|
||||
}
|
||||
EmbedderMsg::ShowIME(_kind) => {
|
||||
|
@ -520,13 +521,27 @@ where
|
|||
}
|
||||
|
||||
#[cfg(target_os = "linux")]
|
||||
fn prompt_user(prompt: &str, dialog_title: &str) -> PermissionRequest {
|
||||
fn prompt_user(prompt: PermissionPrompt) -> PermissionRequest {
|
||||
if opts::get().headless {
|
||||
return PermissionRequest::Denied;
|
||||
}
|
||||
|
||||
let message = match prompt {
|
||||
PermissionPrompt::Request(permission_name) => {
|
||||
format!("Do you want to grant permission for {:?}?", permission_name)
|
||||
},
|
||||
PermissionPrompt::Insecure(permission_name) => {
|
||||
format!(
|
||||
"The {:?} feature is only safe to use in secure context, but servo can't guarantee\n\
|
||||
that the current context is secure. Do you want to proceed and grant permission?",
|
||||
permission_name
|
||||
)
|
||||
},
|
||||
};
|
||||
|
||||
match tinyfiledialogs::message_box_yes_no(
|
||||
dialog_title,
|
||||
prompt,
|
||||
"Permission request dialog",
|
||||
&message,
|
||||
MessageBoxIcon::Question,
|
||||
YesNo::No,
|
||||
) {
|
||||
|
@ -536,7 +551,7 @@ fn prompt_user(prompt: &str, dialog_title: &str) -> PermissionRequest {
|
|||
}
|
||||
|
||||
#[cfg(not(target_os = "linux"))]
|
||||
fn prompt_user(_prompt: &str, _dialog_title: &str) -> PermissionRequest {
|
||||
fn prompt_user(_prompt: PermissionPrompt) -> PermissionRequest {
|
||||
// TODO popup only supported on linux
|
||||
PermissionRequest::Denied
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue