From 2939e9374740b9a963f57d421cd5bb6118be970f Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Thu, 20 Nov 2025 02:51:16 +0000 Subject: [PATCH 1/3] Update obtain-a-blob-object to handle top-level self-fetch Bypasses blob URL partitioning for fetches that are a top-level self-fetch. For more info, see: https://github.com/w3c/FileAPI/issues/210 --- index.bs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/index.bs b/index.bs index 0859469..118cde9 100644 --- a/index.bs +++ b/index.bs @@ -1320,7 +1320,7 @@ for a given asynchronous read method in this specification: Web Workers allow for the use of synchronous {{File}} or {{Blob}} read APIs, since such reads on threads do not block the main thread. -This section defines a synchronous API, which can be used within Workers [[Web Workers]]. +This section defines a synchronous API, which can be used within Workers [[Workers]]. Workers can avail of both the asynchronous API (the {{FileReader}} object) *and* the synchronous API (the {{FileReaderSync}} object). @@ -1526,11 +1526,13 @@ an [=empty host=], and a [=url/path=] consisting of one element itself also a [=
To obtain a blob object given a [=blob URL entry=] -|blobUrlEntry| and an [=environment settings object=] or the string "`navigation`" |environment|, -perform the following steps. They return an [=blob URL entry/object=]. +|blobUrlEntry| and an [=environment settings object=], the string "`navigation`", or the string +"`top-level-self-fetch`" |environment|, perform the following steps. They return an [=blob URL entry/object=]. 1. Let |isAuthorized| be true. -1. If |environment| is not the string "`navigation`", then set |isAuthorized| to the result of [=checking for same-partition blob URL usage=] with |blobUrlEntry| and |environment|. +1. If |environment| is not the string "`navigation`" and not the string "`top-level-self-fetch`", + then set |isAuthorized| to the result of [=checking for same-partition blob URL usage=] with + |blobUrlEntry| and |environment|. 1. If |isAuthorized| is false, then return failure. 1. Return |blobUrlEntry|'s [=blob URL entry/object=]. From 172251cf63aeb514a417c7d2d68ee29c685e650c Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Tue, 25 Nov 2025 16:49:47 +0000 Subject: [PATCH 2/3] Address review feedback --- index.bs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/index.bs b/index.bs index 118cde9..b95445c 100644 --- a/index.bs +++ b/index.bs @@ -1526,13 +1526,12 @@ an [=empty host=], and a [=url/path=] consisting of one element itself also a [=
To obtain a blob object given a [=blob URL entry=] -|blobUrlEntry| and an [=environment settings object=], the string "`navigation`", or the string -"`top-level-self-fetch`" |environment|, perform the following steps. They return an [=blob URL entry/object=]. +|blobUrlEntry| and an [=environment settings object=], "`navigation`", or "`top-level-self-fetch`" +|environment|, perform the following steps. They return an [=blob URL entry/object=]. 1. Let |isAuthorized| be true. -1. If |environment| is not the string "`navigation`" and not the string "`top-level-self-fetch`", - then set |isAuthorized| to the result of [=checking for same-partition blob URL usage=] with - |blobUrlEntry| and |environment|. +1. If |environment| is an [=environment settings object=], then set |isAuthorized| to the result of + [=checking for same-partition blob URL usage=] with |blobUrlEntry| and |environment|. 1. If |isAuthorized| is false, then return failure. 1. Return |blobUrlEntry|'s [=blob URL entry/object=]. From 55b5071c2de476c920617b59637dba6d8a660695 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Mon, 1 Dec 2025 19:13:37 +0000 Subject: [PATCH 3/3] Use "top-level-navigation" keyword for "Obtain a blob object" --- index.bs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/index.bs b/index.bs index b95445c..83e32a8 100644 --- a/index.bs +++ b/index.bs @@ -1526,8 +1526,9 @@ an [=empty host=], and a [=url/path=] consisting of one element itself also a [=
To obtain a blob object given a [=blob URL entry=] -|blobUrlEntry| and an [=environment settings object=], "`navigation`", or "`top-level-self-fetch`" -|environment|, perform the following steps. They return an [=blob URL entry/object=]. +|blobUrlEntry| and an [=environment settings object=], "`top-level-navigation`", or +"`top-level-self-fetch`" |environment|, perform the following steps. They return an +[=blob URL entry/object=]. 1. Let |isAuthorized| be true. 1. If |environment| is an [=environment settings object=], then set |isAuthorized| to the result of