tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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:
Mdom/workers/loader/NetworkLoadHandler.cpp | 20++++++++++++++++++++
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)) {