Repository navigation
Use UrlLib transport fixes branch - #263
Draft
CedricGuillemet wants to merge 4 commits into
Draft
CedricGuillemet wants to merge 4 commits into
CedricGuillemet wants to merge 4 commits into
Conversation
Track the branch for BabylonJS/UrlLib#39 while the transport fixes and shared data URL support are under review. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 001e7798-8d3b-44be-8a99-5e8c1541297e
Exercise Fetch and XMLHttpRequest against an in-process loopback server and shared data URLs. Cover POST headers and byte preservation, missing response Content-Type, malformed data input, cancellation, and request reuse. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 001e7798-8d3b-44be-8a99-5e8c1541297e
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 001e7798-8d3b-44be-8a99-5e8c1541297e
Use UrlLib 81ea0404f6d719e2bc306c20d99594c30c434b19 from PR39, including raw-byte Android POST transport. Keep all consumer regression tests unchanged. Pixel 9a QuickJS validation against the published pin: 331 JavaScript tests pass (3 pending), all 24 native tests pass, and instrumentation exits normally. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 001e7798-8d3b-44be-8a99-5e8c1541297e
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.
Summary
Pin UrlLib's CMake
GIT_TAGto81ea0404f6d719e2bc306c20d99594c30c434b19from BabylonJS/UrlLib#39.This includes Windows and Apple transport fixes, shared data URL decoding, and the Android raw-byte POST fix. The exact commit pin makes consumer builds reproducible while the upstream change remains under review. Keep this PR in draft pending the upstream dependency review.
Consumer regression coverage
Add 83 JavaScript scenarios exercising the real Fetch and XMLHttpRequest polyfills:
HTTP scenarios use an in-process ephemeral loopback server, not an external service. The fixture bounds socket operations and reports worker failures. Wire the fixture into desktop and Android test builds and enable local HTTP in the mobile test apps. Support targeted runs through
JSRUNTIMEHOST_TEST_GREP; unmatched filters fail explicitly.Local validation
Windows
Windows x64, Visual Studio 2026,
RelWithDebInfo, at the earlier UrlLib review revision4dabd8dbd65d7406bf80d9c5b3f8d2108b0e17ef(the new pin changes only Android source and documentation):The native counts include
JavaScript.All, which runs the JavaScript suite. The full suites also retain their pre-existing public-network tests. Verified that a filter matching no tests fails rather than returning a false success.Android: physical Pixel 9a
QuickJS ARM64, Android 17 / API 37, NDK 28.2.13676358:
NewStringUTF, producingcontent-length promised 22 bytes, but received 0. The four NUL POST failures were followed by loopback-fixture timeouts and teardown failure.OutputStream, preserving NULs and UTF-8 without changing AndroidExtensions.Windows negative controls
Rebuilt the consumer tests against the previous UrlLib pin,
0c991337a1160ba7a2d062bf8e342d0a66f48dc9, using a CMake source override:0xC0000005, reproducing the old Windows crash.Removed the override, rebuilt against the fixed review revision, and reran the full QuickJS suite successfully.
Platform and scope limits
Local consumer execution covers Windows QuickJS/V8 and Android QuickJS. Independently verified UrlLib's hosted CI at the earlier Windows-tested revision: Windows, Linux GCC/Clang, and macOS were green. Its macOS job passed all 54 native tests, including Content-Type casing/parameters, omitted MIME, and raw POST byte preservation. These earlier results do not substitute for CI on the new pin.
Linux consumer POST scenarios explicitly skip because that backend does not implement POST. Fetch/XHR currently accept only string request bodies; invalid-UTF-8 POST bytes remain covered by UrlLib's Windows/Apple native tests, while these consumer tests cover embedded NULs and UTF-8 strings. Apple consumer execution, other Android engines, and GPU/image rendering were not locally validated. The fixture declares UTF-8 echo responses and uses lowercase diagnostic response header names to avoid asserting unrelated platform charset/header-normalization behavior.