diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs index 1bc71fad4d5..a638ce85257 100644 --- a/components/script/dom/dedicatedworkerglobalscope.rs +++ b/components/script/dom/dedicatedworkerglobalscope.rs @@ -53,7 +53,7 @@ use net_traits::IpcSend; use parking_lot::Mutex; use script_traits::{WorkerGlobalScopeInit, WorkerScriptLoadOrigin}; use servo_rand::random; -use servo_url::ServoUrl; +use servo_url::{ImmutableOrigin, ServoUrl}; use std::mem::replace; use std::sync::atomic::AtomicBool; use std::sync::Arc; @@ -310,7 +310,7 @@ impl DedicatedWorkerGlobalScope { #[allow(unsafe_code)] // https://html.spec.whatwg.org/multipage/#run-a-worker pub fn run_worker_scope( - init: WorkerGlobalScopeInit, + mut init: WorkerGlobalScopeInit, worker_url: ServoUrl, from_devtools_receiver: IpcReceiver, worker: TrustedWorkerAddress, @@ -387,6 +387,17 @@ impl DedicatedWorkerGlobalScope { devtools_mpsc_chan, ); + // Step 8 "Set up a worker environment settings object [...]" + // + // + // + // > The origin: Return a unique opaque origin if `worker global + // > scope`'s url's scheme is "data", and `inherited origin` + // > otherwise. + if worker_url.scheme() == "data" { + init.origin = ImmutableOrigin::new_opaque(); + } + let global = DedicatedWorkerGlobalScope::new( init, DOMString::from_string(worker_name), @@ -453,7 +464,7 @@ impl DedicatedWorkerGlobalScope { .mem_profiler_chan() .run_with_memory_reporting( || { - // Step 29, Run the responsible event loop specified + // Step 27, Run the responsible event loop specified // by inside settings until it is destroyed. // The worker processing model remains on this step // until the event loop is destroyed, diff --git a/components/script/dom/serviceworkerglobalscope.rs b/components/script/dom/serviceworkerglobalscope.rs index 0c5a37709c4..911c635e38d 100644 --- a/components/script/dom/serviceworkerglobalscope.rs +++ b/components/script/dom/serviceworkerglobalscope.rs @@ -280,7 +280,7 @@ impl ServiceWorkerGlobalScope { } #[allow(unsafe_code)] - // https://html.spec.whatwg.org/multipage/#run-a-worker + // https://w3c.github.io/ServiceWorker/#run-service-worker-algorithm pub fn run_serviceworker_scope( scope_things: ScopeThings, own_sender: Sender, @@ -382,7 +382,7 @@ impl ServiceWorkerGlobalScope { .mem_profiler_chan() .run_with_memory_reporting( || { - // Step 29, Run the responsible event loop specified + // Step 18, Run the responsible event loop specified // by inside settings until it is destroyed. // The worker processing model remains on this step // until the event loop is destroyed, diff --git a/tests/wpt/metadata-layout-2020/workers/dedicated-worker-in-data-url-context.window.js.ini b/tests/wpt/metadata-layout-2020/workers/dedicated-worker-in-data-url-context.window.js.ini deleted file mode 100644 index e414df35fd6..00000000000 --- a/tests/wpt/metadata-layout-2020/workers/dedicated-worker-in-data-url-context.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[dedicated-worker-in-data-url-context.window.html] - [Create a dedicated worker in a data url dedicated worker] - expected: FAIL - diff --git a/tests/wpt/metadata/fetch/api/cors/data-url-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/data-url-worker.html.ini deleted file mode 100644 index 8ae852672bc..00000000000 --- a/tests/wpt/metadata/fetch/api/cors/data-url-worker.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[data-url-worker.html] - [fetching "top.txt" without ACAO should be rejected.] - expected: FAIL - diff --git a/tests/wpt/metadata/html/webappapis/the-windoworworkerglobalscope-mixin/Worker_Self_Origin.html.ini b/tests/wpt/metadata/html/webappapis/the-windoworworkerglobalscope-mixin/Worker_Self_Origin.html.ini index ec7d7991656..269f8310ff4 100644 --- a/tests/wpt/metadata/html/webappapis/the-windoworworkerglobalscope-mixin/Worker_Self_Origin.html.ini +++ b/tests/wpt/metadata/html/webappapis/the-windoworworkerglobalscope-mixin/Worker_Self_Origin.html.ini @@ -3,9 +3,6 @@ [Same Origin SharedWorker] expected: FAIL - [Data Url Worker] - expected: FAIL - [Data Url SharedWorker] expected: FAIL diff --git a/tests/wpt/metadata/workers/dedicated-worker-in-data-url-context.window.js.ini b/tests/wpt/metadata/workers/dedicated-worker-in-data-url-context.window.js.ini deleted file mode 100644 index e414df35fd6..00000000000 --- a/tests/wpt/metadata/workers/dedicated-worker-in-data-url-context.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[dedicated-worker-in-data-url-context.window.html] - [Create a dedicated worker in a data url dedicated worker] - expected: FAIL -