diff options
author | shanehandley <1322294+shanehandley@users.noreply.github.com> | 2024-11-09 12:16:35 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-09 01:16:35 +0000 |
commit | da462d0fcda24f11ad2c67f5db7a2db0ea0f95e2 (patch) | |
tree | 88f7dad5e54eafedd6e63af0bc227a37bc711266 /components/script/dom/globalscope.rs | |
parent | 6c1cd56e529c392b323033618c9bed4760a6aef7 (diff) | |
download | servo-da462d0fcda24f11ad2c67f5db7a2db0ea0f95e2.tar.gz servo-da462d0fcda24f11ad2c67f5db7a2db0ea0f95e2.zip |
Implement referrer policy for dom worker construction (#34192)
Signed-off-by: Shane Handley <shanehandley@fastmail.com>
Diffstat (limited to 'components/script/dom/globalscope.rs')
-rw-r--r-- | components/script/dom/globalscope.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/components/script/dom/globalscope.rs b/components/script/dom/globalscope.rs index 194e2439d7e..47ace9c8455 100644 --- a/components/script/dom/globalscope.rs +++ b/components/script/dom/globalscope.rs @@ -50,7 +50,7 @@ use net_traits::request::{Referrer, RequestBuilder}; use net_traits::response::HttpsState; use net_traits::{ fetch_async, CoreResourceMsg, CoreResourceThread, FetchResponseListener, IpcSend, - ResourceThreads, + ReferrerPolicy, ResourceThreads, }; use profile_traits::{ipc as profile_ipc, mem as profile_mem, time as profile_time}; use script_traits::serializable::{BlobData, BlobImpl, FileBlob}; @@ -2418,6 +2418,21 @@ impl GlobalScope { unreachable!(); } + /// Get the Referrer Policy for this global scope. + pub fn get_referrer_policy(&self) -> Option<ReferrerPolicy> { + if let Some(window) = self.downcast::<Window>() { + let document = window.Document(); + + return document.get_referrer_policy(); + } + if let Some(worker) = self.downcast::<WorkerGlobalScope>() { + let policy_container = worker.policy_container().to_owned(); + + return Some(policy_container.referrer_policy); + } + unreachable!(); + } + /// Determine the Referrer for a request whose Referrer is "client" pub fn get_referrer(&self) -> Referrer { // Step 3 of https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer |