summaryrefslogtreecommitdiffstats
path: root/dom/workers/loader
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
commitd8bbc7858622b6d9c278469aab701ca0b609cddf (patch)
treeeff41dc61d9f714852212739e6b3738b82a2af87 /dom/workers/loader
parentReleasing progress-linux version 125.0.3-1~progress7.99u1. (diff)
downloadfirefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.tar.xz
firefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.zip
Merging upstream version 126.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/workers/loader')
-rw-r--r--dom/workers/loader/CacheLoadHandler.cpp11
-rw-r--r--dom/workers/loader/NetworkLoadHandler.cpp4
-rw-r--r--dom/workers/loader/WorkerLoadContext.h2
-rw-r--r--dom/workers/loader/WorkerModuleLoader.cpp9
-rw-r--r--dom/workers/loader/WorkerModuleLoader.h2
5 files changed, 18 insertions, 10 deletions
diff --git a/dom/workers/loader/CacheLoadHandler.cpp b/dom/workers/loader/CacheLoadHandler.cpp
index 16f992e837..7059249602 100644
--- a/dom/workers/loader/CacheLoadHandler.cpp
+++ b/dom/workers/loader/CacheLoadHandler.cpp
@@ -305,18 +305,15 @@ void CacheLoadHandler::Load(Cache* aCache) {
return;
}
- nsAutoCString spec;
- rv = uri->GetSpec(spec);
+ MOZ_ASSERT(loadContext->mFullURL.IsEmpty());
+ rv = uri->GetSpec(loadContext->mFullURL);
if (NS_WARN_IF(NS_FAILED(rv))) {
Fail(rv);
return;
}
- MOZ_ASSERT(loadContext->mFullURL.IsEmpty());
- CopyUTF8toUTF16(spec, loadContext->mFullURL);
-
- mozilla::dom::RequestOrUSVString request;
- request.SetAsUSVString().ShareOrDependUpon(loadContext->mFullURL);
+ mozilla::dom::RequestOrUTF8String request;
+ request.SetAsUTF8String().ShareOrDependUpon(loadContext->mFullURL);
mozilla::dom::CacheQueryOptions params;
diff --git a/dom/workers/loader/NetworkLoadHandler.cpp b/dom/workers/loader/NetworkLoadHandler.cpp
index 9c2c243066..07398dac0a 100644
--- a/dom/workers/loader/NetworkLoadHandler.cpp
+++ b/dom/workers/loader/NetworkLoadHandler.cpp
@@ -358,10 +358,10 @@ nsresult NetworkLoadHandler::PrepareForRequest(nsIRequest* aRequest) {
RefPtr<mozilla::dom::Response> response = new mozilla::dom::Response(
mRequestHandle->GetCacheCreator()->Global(), std::move(ir), nullptr);
- mozilla::dom::RequestOrUSVString request;
+ mozilla::dom::RequestOrUTF8String request;
MOZ_ASSERT(!loadContext->mFullURL.IsEmpty());
- request.SetAsUSVString().ShareOrDependUpon(loadContext->mFullURL);
+ request.SetAsUTF8String().ShareOrDependUpon(loadContext->mFullURL);
// This JSContext will not end up executing JS code because here there are
// no ReadableStreams involved.
diff --git a/dom/workers/loader/WorkerLoadContext.h b/dom/workers/loader/WorkerLoadContext.h
index 97362f2871..f5b107a610 100644
--- a/dom/workers/loader/WorkerLoadContext.h
+++ b/dom/workers/loader/WorkerLoadContext.h
@@ -130,7 +130,7 @@ class WorkerLoadContext : public JS::loader::LoadContextBase {
/* TODO: Split out a ServiceWorkerLoadContext */
// This full URL string is populated only if this object is used in a
// ServiceWorker.
- nsString mFullURL;
+ nsCString mFullURL;
// This promise is set only when the script is for a ServiceWorker but
// it's not in the cache yet. The promise is resolved when the full body is
diff --git a/dom/workers/loader/WorkerModuleLoader.cpp b/dom/workers/loader/WorkerModuleLoader.cpp
index da340c89bd..d76c61c31f 100644
--- a/dom/workers/loader/WorkerModuleLoader.cpp
+++ b/dom/workers/loader/WorkerModuleLoader.cpp
@@ -147,6 +147,15 @@ already_AddRefed<ModuleLoadRequest> WorkerModuleLoader::CreateDynamicImport(
return request.forget();
}
+bool WorkerModuleLoader::IsDynamicImportSupported() {
+ WorkerPrivate* workerPrivate = GetCurrentThreadWorkerPrivate();
+ if (workerPrivate->IsServiceWorker()) {
+ return false;
+ }
+
+ return true;
+}
+
bool WorkerModuleLoader::CanStartLoad(ModuleLoadRequest* aRequest,
nsresult* aRvOut) {
return true;
diff --git a/dom/workers/loader/WorkerModuleLoader.h b/dom/workers/loader/WorkerModuleLoader.h
index 6ad45b42a0..f49d08743c 100644
--- a/dom/workers/loader/WorkerModuleLoader.h
+++ b/dom/workers/loader/WorkerModuleLoader.h
@@ -63,6 +63,8 @@ class WorkerModuleLoader : public JS::loader::ModuleLoaderBase {
JS::Handle<JSString*> aSpecifier,
JS::Handle<JSObject*> aPromise) override;
+ bool IsDynamicImportSupported() override;
+
bool CanStartLoad(ModuleLoadRequest* aRequest, nsresult* aRvOut) override;
// StartFetch is special for worker modules, as we need to move back to the