commit dac591595425c22eb01fba713617f7b8f59164c1
parent 5c2dc323f00d29171fa7b1afbd075d906898b35b
Author: Daniel Minor <dminor@mozilla.com>
Date: Fri, 12 Dec 2025 14:12:36 +0000
Bug 1994828 - Set wasm mime type for worker requests; r=dom-worker-reviewers,edenchuang
Differential Revision: https://phabricator.services.mozilla.com/D275507
Diffstat:
1 file changed, 20 insertions(+), 0 deletions(-)
diff --git a/dom/workers/loader/NetworkLoadHandler.cpp b/dom/workers/loader/NetworkLoadHandler.cpp
@@ -10,6 +10,7 @@
#include "js/loader/ModuleLoadRequest.h"
#include "js/loader/ScriptLoadRequest.h"
#include "mozilla/Encoding.h"
+#include "mozilla/StaticPrefs_javascript.h"
#include "mozilla/dom/BlobURLProtocolHandler.h"
#include "mozilla/dom/InternalResponse.h"
#include "mozilla/dom/Response.h"
@@ -83,6 +84,25 @@ nsresult NetworkLoadHandler::DataReceivedFromNetwork(nsIStreamLoader* aLoader,
return NS_BINDING_ABORTED;
}
+#ifdef NIGHTLY_BUILD
+ if (StaticPrefs::javascript_options_experimental_wasm_esm_integration()) {
+ if (mRequestHandle->GetRequest()->IsModuleRequest()) {
+ // https://html.spec.whatwg.org/multipage/webappapis.html#fetch-a-single-module-script
+ // Extract the content-type. If its essence is wasm, we'll attempt to
+ // compile this module as a wasm module. (Steps 13.2, 13.6)
+ nsAutoCString mimeType;
+ if (NS_SUCCEEDED(loadContext->mChannel->GetContentType(mimeType))) {
+ if (nsContentUtils::HasWasmMimeTypeEssence(
+ NS_ConvertUTF8toUTF16(mimeType))) {
+ mRequestHandle->GetRequest()
+ ->AsModuleRequest()
+ ->SetHasWasmMimeTypeEssence();
+ }
+ }
+ }
+ }
+#endif
+
loadContext->mChannel = nullptr;
if (NS_FAILED(aStatus)) {