Skip to content

Commit 92b3578

Browse files
authored
Ensure policy checks happen when consuming a preloaded response
Also correct spelling of a variable. Tests: web-platform-tests/wpt#33109 & web-platform-tests/wpt#33205. Closes whatwg/html#7686.
1 parent 4561d5f commit 92b3578

File tree

1 file changed

+26
-12
lines changed

1 file changed

+26
-12
lines changed

fetch.bs

+26-12
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,9 @@ lt="authentication entry">authentication entries</a> (for HTTP authentication).
215215

216216
<dt><dfn for="fetch params">timing info</dfn>
217217
<dd>A <a for=/>fetch timing info</a>.
218+
219+
<dt><dfn export for="fetch params">preloaded response candidate</dfn> (default null)
220+
<dd>Null, "<code>pending</code>", or a <a for=/>response</a>.
218221
</dl>
219222

220223
<p>A <dfn export>fetch controller</dfn> is a <a for=/>struct</a> used to enable callers of
@@ -3892,17 +3895,19 @@ the request.
38923895
<a for="environment settings object">origin</a>.
38933896

38943897
<li><p>Let <var>onPreloadedResponseAvailable</var> be an algorithm that runs the following
3895-
step <a>in parallel</a> given a <a for=/>response</a> <var>response</var>: run
3896-
<a>fetch finale</a> given <var>response</var> and <var>fetchParams</var>.
3898+
step given a <a for=/>response</a> <var>response</var>: set <var>fetchParams</var>'s
3899+
<a for="fetch params">preloaded response candidate</a> to <var>response</var>.
38973900

38983901
<li><p>Let <var>foundPreloadedResource</var> be the result of invoking
3899-
<a>consume a preloaded resource</a> for <var>req</var>'s <a for=request>window</a>,
3900-
given <var>req</var>'s <a for=request>URL</a>, <var>req</var>'s <a for=request>destination</a>,
3901-
<var>req</var>'s <a for=request>mode</a>, <var>req</var>'s <a for=request>credentials mode</a>,
3902-
<var>req</var>'s <a for=request>integrity metadata</a>, and
3903-
<var>onPreloadedResponseAvailable</var>.
3904-
3905-
<li><p>If <var>foundPreloadedResource</var> is true, then return.
3902+
<a>consume a preloaded resource</a> for <var>request</var>'s <a for=request>window</a>, given
3903+
<var>request</var>'s <a for=request>URL</a>, <var>request</var>'s <a for=request>destination</a>,
3904+
<var>request</var>'s <a for=request>mode</a>, <var>request</var>'s
3905+
<a for=request>credentials mode</a>, <var>request</var>'s <a for=request>integrity metadata</a>,
3906+
and <var>onPreloadedResponseAvailable</var>.
3907+
3908+
<li><p>If <var>foundPreloadedResource</var> is true and <var>fetchParams</var>'s
3909+
<a for="fetch params">preloaded response candidate</a> is null, then set <var>fetchParams</var>'s
3910+
<a for="fetch params">preloaded response candidate</a> to "<code>pending</code>".
39063911
</ol>
39073912
</li>
39083913

@@ -4040,14 +4045,25 @@ steps:
40404045
corresponding to the first matching statement:
40414046

40424047
<dl class=switch>
4048+
<dt><var>fetchParams</var>'s <a for="fetch params">preloaded response candidate</a> is not null
4049+
<dd>
4050+
<ol>
4051+
<li><p>Wait until <var>fetchParams</var>'s
4052+
<a for="fetch params">preloaded response candidate</a> is not "<code>pending</code>".
4053+
4054+
<li><p><a for=/>Assert</a>: <var>fetchParams</var>'s
4055+
<a for="fetch params">preloaded response candidate</a> is a <a for=/>response</a>.
4056+
4057+
<li><p>Return <var>fetchParams</var>'s <a for="fetch params">preloaded response candidate</a>.
4058+
</ol>
4059+
40434060
<dt><var>request</var>'s <a for=request>current URL</a>'s <a for=url>origin</a> is
40444061
<a>same origin</a> with <var>request</var>'s <a for=request>origin</a>, and <var>request</var>'s
40454062
<a for=request>response tainting</a> is "<code>basic</code>"
40464063
<dt><var>request</var>'s <a for=request>current URL</a>'s <a for=url>scheme</a> is
40474064
"<code>data</code>"
40484065
<dt><var>request</var>'s <a for=request>mode</a> is
40494066
"<code>navigate</code>" or "<code>websocket</code>"
4050-
40514067
<dd>
40524068
<ol>
40534069
<li><p>Set <var>request</var>'s
@@ -4064,7 +4080,6 @@ steps:
40644080

40654081
<dt><var>request</var>'s <a for=request>mode</a> is
40664082
"<code>same-origin</code>"
4067-
40684083
<dd><p>Return a <a>network error</a>.
40694084

40704085
<dt><var>request</var>'s <a for=request>mode</a> is
@@ -4096,7 +4111,6 @@ steps:
40964111

40974112
<dt><var>request</var>'s <a for=request>current URL</a>'s <a for=url>scheme</a> is not an
40984113
<a>HTTP(S) scheme</a>
4099-
41004114
<dd><p>Return a <a>network error</a>.
41014115

41024116
<dt><var>request</var>'s <a>use-CORS-preflight flag</a> is set

0 commit comments

Comments
 (0)