[js/web] Use embedded WASM module in Blob URL workers when wasmBinary is provided#27318
Open
0-don wants to merge 1 commit intomicrosoft:mainfrom
Open
[js/web] Use embedded WASM module in Blob URL workers when wasmBinary is provided#273180-don wants to merge 1 commit intomicrosoft:mainfrom
0-don wants to merge 1 commit intomicrosoft:mainfrom
Conversation
… is provided When running inside a Blob URL Web Worker with wasmBinary provided and numThreads=1, the isSameOrigin check can fail (blob: URLs have opaque origins in some contexts), causing a fallback to dynamic import of ort-wasm-simd-threaded.mjs which doesn't exist in that context. Since wasmBinary is already provided and no worker spawning is needed (single-threaded), the embedded module can be used directly without requiring a same-origin check. This extends the existing pattern from the !scriptSrc case (line 268) to also apply when scriptSrc is available but fails same-origin checks. Fixes microsoft#27317
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #27317
When running inside a Blob URL Web Worker with
wasmBinaryprovided andnumThreads=1,isSameOrigin(scriptSrc)can fail because blob: URLs have opaque origins. This causes a fallback to dynamicimport('./ort-wasm-simd-threaded.mjs')which doesn't exist in that context.Since
wasmBinaryis already provided and no worker spawning is needed (single-threaded), the embedded Emscripten module can be used directly — no URL resolution or same-origin check is needed.Change: One line in
wasm-utils-import.tsline 275:This extends the existing pattern from the
!scriptSrccase (line 268) to also apply whenscriptSrcis available but fails same-origin checks. The condition (wasmBinaryprovided + single-threaded) guarantees no file resolution or worker spawning is needed.