diff options
author | gatowololo <gatowololo@gmail.com> | 2019-06-27 10:23:52 -0700 |
---|---|---|
committer | Iulian Gabriel Radu <iulian.radu67@gmail.com> | 2020-02-27 00:02:04 +0200 |
commit | 24c14ac94ea53e93ce700ebe1c463fb8f049b54c (patch) | |
tree | 7a0d2005829a2ff8fb7074c8397461e6b7ec79b7 /components/script | |
parent | ad9bfc2a62b70b9f3dbb1c3a5969f30bacce3d74 (diff) | |
download | servo-24c14ac94ea53e93ce700ebe1c463fb8f049b54c.tar.gz servo-24c14ac94ea53e93ce700ebe1c463fb8f049b54c.zip |
Factored out permission_state_invocation_results API to GlobalScope
Instead of Window
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/globalscope.rs | 11 | ||||
-rw-r--r-- | components/script/dom/permissions.rs | 6 | ||||
-rw-r--r-- | components/script/dom/window.rs | 11 |
3 files changed, 11 insertions, 17 deletions
diff --git a/components/script/dom/globalscope.rs b/components/script/dom/globalscope.rs index d86104c1ee6..e631c9bfc9c 100644 --- a/components/script/dom/globalscope.rs +++ b/components/script/dom/globalscope.rs @@ -5,6 +5,7 @@ use crate::dom::bindings::cell::DomRefCell; use crate::dom::bindings::codegen::Bindings::BroadcastChannelBinding::BroadcastChannelMethods; use crate::dom::bindings::codegen::Bindings::EventSourceBinding::EventSourceBinding::EventSourceMethods; +use crate::dom::bindings::codegen::Bindings::PermissionStatusBinding::PermissionState; use crate::dom::bindings::codegen::Bindings::VoidFunctionBinding::VoidFunction; use crate::dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use crate::dom::bindings::codegen::Bindings::WorkerGlobalScopeBinding::WorkerGlobalScopeMethods; @@ -189,6 +190,9 @@ pub struct GlobalScope { /// The origin of the globalscope origin: MutableOrigin, + /// A map for storing the previous permission state read results. + permission_state_invocation_results: DomRefCell<HashMap<String, PermissionState>>, + /// The microtask queue associated with this global. /// /// It is refcounted because windows in the same script thread share the @@ -575,6 +579,7 @@ impl GlobalScope { timers: OneshotTimers::new(scheduler_chan), init_timers: Default::default(), origin, + permission_state_invocation_results: Default::default(), microtask_queue, list_auto_close_worker: Default::default(), event_source_tracker: DOMTracker::new(), @@ -1701,6 +1706,12 @@ impl GlobalScope { } } + pub fn permission_state_invocation_results( + &self, + ) -> &DomRefCell<HashMap<String, PermissionState>> { + &self.permission_state_invocation_results + } + pub fn track_worker(&self, closing_worker: Arc<AtomicBool>) { self.list_auto_close_worker .borrow_mut() diff --git a/components/script/dom/permissions.rs b/components/script/dom/permissions.rs index cb91fb692f9..e31ce563262 100644 --- a/components/script/dom/permissions.rs +++ b/components/script/dom/permissions.rs @@ -143,7 +143,6 @@ impl Permissions { // (Revoke) Step 3. let globalscope = self.global(); globalscope - .as_window() .permission_state_invocation_results() .borrow_mut() .remove(&root_desc.name.to_string()); @@ -176,7 +175,6 @@ impl Permissions { // (Revoke) Step 3. let globalscope = self.global(); globalscope - .as_window() .permission_state_invocation_results() .borrow_mut() .remove(&root_desc.name.to_string()); @@ -269,7 +267,6 @@ impl PermissionAlgorithm for Permissions { ); globalscope - .as_window() .permission_state_invocation_results() .borrow_mut() .insert(perm_name.to_string(), state); @@ -309,7 +306,6 @@ pub fn get_descriptor_permission_state( PermissionState::Granted } else { settings - .as_window() .permission_state_invocation_results() .borrow_mut() .remove(&permission_name.to_string()); @@ -323,7 +319,6 @@ pub fn get_descriptor_permission_state( // Step 3. if let Some(prev_result) = settings - .as_window() .permission_state_invocation_results() .borrow() .get(&permission_name.to_string()) @@ -333,7 +328,6 @@ pub fn get_descriptor_permission_state( // Store the invocation result settings - .as_window() .permission_state_invocation_results() .borrow_mut() .insert(permission_name.to_string(), state); diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index c2679c2899a..e06eb243856 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -8,7 +8,6 @@ use crate::dom::bindings::codegen::Bindings::DocumentBinding::{ }; use crate::dom::bindings::codegen::Bindings::HistoryBinding::HistoryBinding::HistoryMethods; use crate::dom::bindings::codegen::Bindings::MediaQueryListBinding::MediaQueryListBinding::MediaQueryListMethods; -use crate::dom::bindings::codegen::Bindings::PermissionStatusBinding::PermissionState; use crate::dom::bindings::codegen::Bindings::RequestBinding::RequestInit; use crate::dom::bindings::codegen::Bindings::VoidFunctionBinding::VoidFunction; use crate::dom::bindings::codegen::Bindings::WindowBinding::{ @@ -275,9 +274,6 @@ pub struct Window { #[ignore_malloc_size_of = "defined in webxr"] webxr_registry: webxr_api::Registry, - /// A map for storing the previous permission state read results. - permission_state_invocation_results: DomRefCell<HashMap<String, PermissionState>>, - /// All of the elements that have an outstanding image request that was /// initiated by layout during a reflow. They are stored in the script thread /// to ensure that the element can be marked dirty when the image data becomes @@ -476,12 +472,6 @@ impl Window { Worklet::new(self, WorkletGlobalScopeType::Paint) } - pub fn permission_state_invocation_results( - &self, - ) -> &DomRefCell<HashMap<String, PermissionState>> { - &self.permission_state_invocation_results - } - pub fn pending_image_notification(&self, response: PendingImageResponse) { //XXXjdm could be more efficient to send the responses to the layout thread, // rather than making the layout thread talk to the image cache to @@ -2333,7 +2323,6 @@ impl Window { webgl_chan, webvr_chan, webxr_registry, - permission_state_invocation_results: Default::default(), pending_layout_images: Default::default(), unminified_js_dir: Default::default(), test_worklet: Default::default(), |