Skip to content

Commit a4ba489

Browse files
recvfromannevk
andauthored
Bypass blob URL partitioning for top-level self fetches
See w3c/FileAPI#210 for details. Corresponding PRs: - w3c/FileAPI#216 - whatwg/html#11957 Co-authored-by: Anne van Kesteren <annevk@annevk.nl>
1 parent 697b506 commit a4ba489

File tree

1 file changed

+38
-7
lines changed

1 file changed

+38
-7
lines changed

fetch.bs

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5388,17 +5388,48 @@ returning a response directly, or allowing the request to proceed by returning n
53885388
<li><p>Let <var>requestEnvironment</var> be the result of
53895389
<a for=request>determining the environment</a> given <var>request</var>.
53905390

5391-
<li><p>Let <var>isTopLevelNavigation</var> be true if <var>request</var>'s
5392-
<a for=request>destination</a> is "<code>document</code>"; otherwise, false.
5391+
<li><p>Let <var>isTopLevelSelfFetch</var> be false.
53935392

5394-
<li><p>If <var>isTopLevelNavigation</var> is false and <var>requestEnvironment</var> is null,
5395-
then return a <a>network error</a>.
5393+
<li>
5394+
<p>If <var>request</var>'s <a for=request>client</a> is non-null:
5395+
5396+
<ol>
5397+
<li><p>Let <var>global</var> be <var>request</var>'s <a for=request>client</a>'s
5398+
<a for="environment settings object">global object</a>.
5399+
5400+
<li>
5401+
<p>If all of the following conditions are true:
5402+
5403+
<ul class=brief>
5404+
<li><p><var>global</var> is a {{Window}} object;
5405+
5406+
<li><p><var>global</var>'s <a for=Window>navigable</a> is not null;
5407+
5408+
<li><p><var>global</var>'s <a for=Window>navigable</a>'s <a for=navigable>parent</a>
5409+
is null; and
53965410

5397-
<li><p>Let <var>navigationOrEnvironment</var> be the string "<code>navigation</code>" if
5398-
<var>isTopLevelNavigation</var> is true; otherwise, <var>requestEnvironment</var>.
5411+
<li><p><var>requestEnvironment</var>'s <a for="environment">creation URL</a>
5412+
<a for=url>equals</a> <var>request</var>'s <a for=request>current URL</a>,
5413+
</ul>
5414+
5415+
<p>then set <var>isTopLevelSelfFetch</var> to true.
5416+
</ol>
5417+
5418+
<li>
5419+
<p>Let <var>stringOrEnvironment</var> be the result of these steps:
5420+
5421+
<ol>
5422+
<li><p>If <var>request</var>'s <a for=request>destination</a> is "<code>document</code>",
5423+
then return "<code>top-level-navigation</code>".
5424+
5425+
<li><p>If <var>isTopLevelSelfFetch</var> is true, then return
5426+
"<code>top-level-self-fetch</code>".
5427+
5428+
<li><p>Return <var>requestEnvironment</var>.
5429+
</ol>
53995430

54005431
<li><p>Let <var>blob</var> be the result of <a>obtaining a blob object</a> given
5401-
<var>blobURLEntry</var> and <var>navigationOrEnvironment</var>.
5432+
<var>blobURLEntry</var> and <var>stringOrEnvironment</var>.
54025433

54035434
<li><p>If <var>blob</var> is not a {{Blob}} object, then return a <a>network error</a>.
54045435

0 commit comments

Comments
 (0)