Skip to content

Commit 0ce45ae

Browse files
authored
Partition blob: URL fetches by storage key
See w3c/FileAPI#153 (comment) and w3c/FileAPI#201 for additional context. And https://privacycg.github.io/storage-partitioning/ for the overall partitioning story.
1 parent bdb452e commit 0ce45ae

File tree

1 file changed

+34
-5
lines changed

1 file changed

+34
-5
lines changed

fetch.bs

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4972,15 +4972,28 @@ steps:
49724972
<a for=url>blob URL entry</a>.
49734973

49744974
<li>
4975-
<p>If <var>request</var>'s <a for=request>method</a> is not `<code>GET</code>`,
4976-
<var>blobURLEntry</var> is null, or <var>blobURLEntry</var>'s
4977-
<a for="blob URL entry">object</a> is not a {{Blob}} object, then return a
4978-
<a>network error</a>. [[!FILEAPI]]
4975+
<p>If <var>request</var>'s <a for=request>method</a> is not `<code>GET</code>` or
4976+
<var>blobURLEntry</var> is null, then return a <a>network error</a>. [[!FILEAPI]]
49794977

49804978
<p class=note>The `<code>GET</code>` <a for=/>method</a> restriction serves no useful purpose
49814979
other than being interoperable.
49824980

4983-
<li><p>Let <var>blob</var> be <var>blobURLEntry</var>'s <a for="blob URL entry">object</a>.
4981+
<li><p>Let <var>requestEnvironment</var> be the result of
4982+
<a for=request>determining the environment</a> given <var>request</var>.
4983+
4984+
<li><p>Let <var>isTopLevelNavigation</var> be true if <var>request</var>'s
4985+
<a for=request>destination</a> is "<code>document</code>"; otherwise, false.
4986+
4987+
<li><p>If <var>isTopLevelNavigation</var> is false and <var>requestEnvironment</var> is null,
4988+
then return a <a>network error</a>.
4989+
4990+
<li><p>Let <var>navigationOrEnvironment</var> be the string "<code>navigation</code>" if
4991+
<var>isTopLevelNavigation</var> is true; otherwise, <var>requestEnvironment</var>.
4992+
4993+
<li><p>Let <var>blob</var> be the result of <a>obtaining a blob object</a> given
4994+
<var>blobURLEntry</var> and <var>navigationOrEnvironment</var>.
4995+
4996+
<li><p>If <var>blob</var> is not a {{Blob}} object, then return a <a>network error</a>.
49844997

49854998
<li><p>Let <var>response</var> be a new <a for=/>response</a>.
49864999

@@ -5113,6 +5126,21 @@ steps:
51135126
</ol>
51145127
</div>
51155128

5129+
<div algorithm>
5130+
<p>To <dfn for=request>determine the environment</dfn>, given a <a for=/>request</a>
5131+
<var>request</var>:
5132+
5133+
<ol>
5134+
<li><p>If <var>request</var>'s <a for=request>reserved client</a> is non-null, then return
5135+
<var>request</var>'s <a for=request>reserved client</a>.
5136+
5137+
<li><p>If <var>request</var>'s <a for=request>client</a> is non-null, then return
5138+
<var>request</var>'s <a for=request>client</a>.
5139+
5140+
<li><p>Return null.
5141+
</ol>
5142+
</div>
5143+
51165144

51175145
<h3 id=http-fetch>HTTP fetch</h3>
51185146

@@ -9044,6 +9072,7 @@ Alexey Proskuryakov,
90449072
Andreas Kling,
90459073
Andrés Gutiérrez,
90469074
Andrew Sutherland,
9075+
Andrew Williams,<!-- recvfrom; GitHub -->
90479076
Ángel González,
90489077
Anssi Kostiainen,
90499078
Arkadiusz Michalski,

0 commit comments

Comments
 (0)