aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorgatowololo <gatowololo@gmail.com>2019-06-27 10:23:52 -0700
committerIulian Gabriel Radu <iulian.radu67@gmail.com>2020-02-27 00:02:04 +0200
commit24c14ac94ea53e93ce700ebe1c463fb8f049b54c (patch)
tree7a0d2005829a2ff8fb7074c8397461e6b7ec79b7 /components/script
parentad9bfc2a62b70b9f3dbb1c3a5969f30bacce3d74 (diff)
downloadservo-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.rs11
-rw-r--r--components/script/dom/permissions.rs6
-rw-r--r--components/script/dom/window.rs11
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(),