aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/serviceworkerglobalscope.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/serviceworkerglobalscope.rs')
-rw-r--r--components/script/dom/serviceworkerglobalscope.rs27
1 files changed, 14 insertions, 13 deletions
diff --git a/components/script/dom/serviceworkerglobalscope.rs b/components/script/dom/serviceworkerglobalscope.rs
index 840ee81f764..4bea29cda50 100644
--- a/components/script/dom/serviceworkerglobalscope.rs
+++ b/components/script/dom/serviceworkerglobalscope.rs
@@ -309,18 +309,6 @@ impl ServiceWorkerGlobalScope {
pipeline_id,
} = worker_load_origin;
- let referrer = referrer_url.map(|referrer_url| Referrer::ReferrerUrl(referrer_url));
-
- let request = RequestBuilder::new(script_url.clone())
- .destination(Destination::ServiceWorker)
- .credentials_mode(CredentialsMode::Include)
- .parser_metadata(ParserMetadata::NotParserInserted)
- .use_url_credentials(true)
- .pipeline_id(Some(pipeline_id))
- .referrer(referrer)
- .referrer_policy(referrer_policy)
- .origin(origin);
-
// Service workers are time limited
// https://w3c.github.io/ServiceWorker/#service-worker-lifetime
let sw_lifetime_timeout = pref!(dom.serviceworker.timeout_seconds) as u64;
@@ -333,7 +321,7 @@ impl ServiceWorkerGlobalScope {
let resource_threads_sender = init.resource_threads.sender();
let global = ServiceWorkerGlobalScope::new(
init,
- script_url,
+ script_url.clone(),
devtools_mpsc_port,
runtime,
own_sender,
@@ -344,6 +332,19 @@ impl ServiceWorkerGlobalScope {
control_receiver,
);
+ let referrer = referrer_url
+ .map(|url| Referrer::ReferrerUrl(url))
+ .unwrap_or_else(|| global.upcast::<GlobalScope>().get_referrer());
+
+ let request = RequestBuilder::new(script_url, referrer)
+ .destination(Destination::ServiceWorker)
+ .credentials_mode(CredentialsMode::Include)
+ .parser_metadata(ParserMetadata::NotParserInserted)
+ .use_url_credentials(true)
+ .pipeline_id(Some(pipeline_id))
+ .referrer_policy(referrer_policy)
+ .origin(origin);
+
let (_url, source) =
match load_whole_resource(request, &resource_threads_sender, &*global.upcast())
{