Contact emails [email protected]<mailto:[email protected]>
Specification Fetch Standard: blob URL fetch algorithm<https://fetch.spec.whatwg.org/#scheme-fetch:~:text=If%20rangeValue%20is%20failure%2C%20then%20return%20a%20network%20error.> Summary Blob URL requests made with Fetch or XMLHttpRequest now follow the Fetch Standard when parsing Range headers. Invalid or unsupported Range headers fail with a network error instead of returning the full blob response. This improves interoperability with other browsers and makes Chromium pass the corresponding Web Platform Tests. Blink component Blink>Network>FetchAPI<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ENetwork%3EFetchAPI%22> Web Feature ID fetch<https://webstatus.dev/features/fetch> Motivation Chromium currently does not fully follow the Fetch Standard for blob URL requests with invalid `Range` headers. When range parsing fails, Chromium falls back to serving the full blob with `200 OK`, whereas the Fetch Standard requires the request to fail with a network error. This change aligns Chromium with the Fetch Standard and improves interoperability for Fetch and XMLHttpRequest range handling. It resolves 52 failing Web Platform Tests in total, including 26 failing `fetch/range/` subtests [1] that are part of the Interop 2026 "Fetch, Uploads and Ranges" focus area [2], along with 26 corresponding XMLHttpRequest tests [3]. [1] web-platform-tests dashboard : fetch Blob<https://wpt.fyi/results/fetch/range?label=master&label=experimental&aligned&view=subtest&q=label%3Ainterop-2026-fetch%20blob.any> [2]web-platform-tests dashboard : Fetch upload and ranges Interop 2026<https://wpt.fyi/results/fetch?label=master&label=experimental&aligned&view=interop&q=label%3Ainterop-2026-fetch> [3] web-platform-tests dashboard : xhr blob<https://wpt.fyi/results/xhr?label=master&label=experimental&aligned&q=%20blob-range.any> Initial public proposal No information provided TAG review N/A - no new API or platform design; this is a narrow conformance fix to existing Fetch Standard behavior. TAG review status Not applicable Goals for experimentation None Risks Interoperability and Compatibility Compatibility risk is expected to be low. This assessment is qualitative rather than based on dedicated telemetry for the exact affected scenario. The change affects only Fetch and XMLHttpRequest requests to blob: URLs that include an invalid, malformed, or unsupported Range header. Requests without a Range header are unchanged, valid single-range requests continue to behave as before, and non-blob: URL requests are unaffected. The previous Chromium behavior returned the full blob when Range parsing failed. This change instead follows the Fetch Standard by treating such requests as network errors. Firefox and Safari already implement this behavior, so the change improves interoperability and aligns Chromium with the web platform. The primary compatibility risk is sites relying on Chromium's previous fallback behavior for invalid Range headers on blob: URLs. We expect this to be uncommon because it requires both issuing Range requests against blob: URLs and using invalid or unsupported Range syntax. Gecko: Shipped/Shipping, Firefox already implements this behavior and passes the corresponding Web Platform Tests WebKit: Shipped/Shipping, Safari already implements this behavior and passes the corresponding Web Platform Tests. Web developers: No signals Other signals: Ergonomics No new API ergonomics risk. Existing Fetch/XHR usage is unchanged for valid single Range headers; invalid values now fail as specified. Activation No developer activation is required. The corrected behavior applies automatically to blob URL requests with Range headers. Security No new security risk. The change makes invalid blob URL Range headers fail instead of serving a full blob response, which is stricter than current behavior. WebView application risks Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications? Low. The risk is no higher for Android WebView applications than for websites. Only blob: URL requests with invalid, malformed, or unsupported Range headers are affected; all other requests are unchanged. Debuggability Existing Fetch/XHR error handling applies. Invalid blob URL Range requests surface as a network error / Fetch TypeError, and valid ranges continue to produce 206 Partial Content. Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)? Yes Applies to Chromium platforms that use the common blob URL loader for Fetch/XHR, including desktop, Android, and Android WebView. Is this feature fully tested by web-platform-tests<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>? Yes Covered by Web Platform Tests under fetch/range/, including blob.any.html and blob.any.worker.html cases for invalid blob URL Range headers. The CL also updates expectations for the corresponding XHR blob range tests and adds Chromium unit coverage for Fetch-compatible single Range parsing and BlobURLLoader invalid range handling. Relevant CL: https://chromium-review.googlesource.com/c/chromium/src/+/7902659 Flag name on about://flags No information provided Finch feature name BlobURLFetchRangeHeaderValidation Rollout plan Will ship enabled for all users Requires code in //chrome? False Tracking bug https://issues.chromium.org/issues/510995915 Measurement No dedicated UseCounter is planned. This is a narrow standards conformance fix covered by WPT and Chromium unit tests; invalid blob URL Range header usage is expected to be rare. Availability expectation Available in Chromium-based browsers once the shipping milestone reaches stable. Adoption expectation No active developer adoption is expected because this is a standards conformance fix to existing Fetch/XHR behavior, not a new API. Sites using valid single Range headers continue to work. Sites using invalid blob URL Range syntax may need to fix that syntax if they currently rely on Chromium returning the full blob response. Adoption plan No developer adoption plan is needed. The change ships as a browser behavior fix and is validated by Web Platform Tests. Any affected sites should update invalid blob URL Range header usage to use valid single Range syntax. Non-OSS dependencies No Estimated milestones Shipping on desktop 152 Shipping on Android 152 Shipping on WebView 152 Anticipated spec changes None. This implements the current Fetch Standard behavior. Link to entry on the Chrome Platform Status https://chromestatus.com/feature/6237991531053056?gate=5496962989293568 This intent message was generated by Chrome Platform Status<https://chromestatus.com/>. -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/SIAP153MB12852BA026D550EC183753D3B0F62%40SIAP153MB1285.APCP153.PROD.OUTLOOK.COM.
