Skip to content

Commit

Permalink
factor out common logic between fetch and foreign fetch
Browse files Browse the repository at this point in the history
  • Loading branch information
mkruisselbrink committed Jul 26, 2016
1 parent 253a855 commit 5f1f703
Showing 1 changed file with 41 additions and 72 deletions.
113 changes: 41 additions & 72 deletions Overview.src.html
Original file line number Diff line number Diff line change
Expand Up @@ -2720,95 +2720,64 @@ <h3>HTTP fetch</h3>
<li><p>Let <var>actualResponse</var> be null.

<li>
<p>If <var>request</var>'s <span>skip-service-worker flag</span> is unset and
either <var>request</var>'s <span title=concept-request-client>client</span> is
null or <var>request</var>'s <span title=concept-request-client>client</span>'s
<span data-anolis-spec=html title=concept-settings-object-global>global object</span> is not a
<code data-anolis-spec=sw>ServiceWorkerGlobalScope</code> object, run these substeps:
<span data-anolis-ref>HTML</span>
<span data-anolis-ref>SW</span>
<p>If <var>request</var>'s <span>skip-service-worker flag</span> is unset, run these substeps:

<ol>
<li>
<p>Set <var>response</var> to the result of invoking
<p>If <var>request</var>'s <span title=concept-request-client>client</span> is
null or <var>request</var>'s <span title=concept-request-client>client</span>'s
<span data-anolis-spec=html title=concept-settings-object-global>global object</span> is not a
<code data-anolis-spec=sw>ServiceWorkerGlobalScope</code> object,
set <var>response</var> to the result of invoking
<span data-anolis-spec=sw>handle fetch</span> for <var>request</var>.
<span data-anolis-ref>HTML</span>
<span data-anolis-ref>SW</span>

<p><span title="Read a request">Read <var>request</var></span>.

<li><p>Set <var>actualResponse</var> to <var>response</var>, if <var>response</var> is not a
<span title=concept-filtered-response>filtered response</span>, and to <var>response</var>'s
<span title=concept-internal-response>internal response</span> otherwise.

<li>
<p>If one of the following conditions is true, return a
<span title=concept-network-error>network error</span>:

<ul class=brief>
<li><var>response</var>'s
<span title=concept-response-type>type</span> is "<code title>error</code>".

<li><var>request</var>'s <span title=concept-request-mode>mode</span> is not
"<code title>no-cors</code>" and <var>response</var>'s
<span title=concept-response-type>type</span> is "<code title>opaque</code>".

<li><var>request</var>'s <span title=concept-request-redirect-mode>redirect mode</span> is not
"<code title>manual</code>" and <var>response</var>'s
<span title=concept-response-type>type</span> is "<code title>opaqueredirect</code>".

<li><var>request</var>'s <span title=concept-request-redirect-mode>redirect mode</span> is not
"<code title>follow</code>" and <var>response</var>'s
<span title=concept-response-url-list>url list</span> has more than one item.
</ul>

<li><p>Execute
<a href=https://w3c.github.io/webappsec-csp/#set-response-csp-list>set <var>response</var>'s CSP list</a>
on <var>actualResponse</var>. <span data-anolis-ref>CSP</span>
</ol>

<li>
<p>If <var>response</var> is null, <var>request</var>'s <span>skip-service-worker flag</span> is
unset, <var>request</var> is a <span>subresource request</span> and <var>request</var>'s
<span title=concept-request-origin>origin</span> is not the same as <var>request</var>'s
<span title=concept-request-url>url</span>'s <span data-anolis-spec=html>origin</span>,
run these substeps:

<ol>
<li>
<p>Set <var>response</var> to the result of invoking
<p>If <var>response</var> is null,
<var>request</var> is a <span>subresource request</span> and <var>request</var>'s
<span title=concept-request-origin>origin</span> is not the same as <var>request</var>'s
<span title=concept-request-url>url</span>'s <span data-anolis-spec=html>origin</span>,
set <var>response</var> to the result of invoking
<span data-anolis-spec=sw>handle foreign fetch</span> for <var>request</var>.
<span data-anolis-ref>SW</span>

<p><span title="Read a request">Read <var>request</var></span>.
<li>
<p>If <var>response</var> is not null, run these substeps:

<ol>
<li><p><span title="Read a request">Read <var>request</var></span>.

<li><p>Set <var>actualResponse</var> to <var>response</var>, if <var>response</var> is not a
<span title=concept-filtered-response>filtered response</span>, and to <var>response</var>'s
<span title=concept-internal-response>internal response</span> otherwise.
<li><p>Set <var>actualResponse</var> to <var>response</var>, if <var>response</var> is not a
<span title=concept-filtered-response>filtered response</span>, and to <var>response</var>'s
<span title=concept-internal-response>internal response</span> otherwise.

<li>
<p>If one of the following conditions is true, return a
<span title=concept-network-error>network error</span>:
<li>
<p>If one of the following conditions is true, return a
<span title=concept-network-error>network error</span>:

<ul class=brief>
<li><var>response</var>'s
<span title=concept-response-type>type</span> is "<code title>error</code>".
<ul class=brief>
<li><var>response</var>'s
<span title=concept-response-type>type</span> is "<code title>error</code>".

<li><var>request</var>'s <span title=concept-request-mode>mode</span> is not
"<code title>no-cors</code>" and <var>response</var>'s
<span title=concept-response-type>type</span> is "<code title>opaque</code>".
<li><var>request</var>'s <span title=concept-request-mode>mode</span> is not
"<code title>no-cors</code>" and <var>response</var>'s
<span title=concept-response-type>type</span> is "<code title>opaque</code>".

<li><var>request</var>'s <span title=concept-request-redirect-mode>redirect mode</span> is not
"<code title>manual</code>" and <var>response</var>'s
<span title=concept-response-type>type</span> is "<code title>opaqueredirect</code>".
<li><var>request</var>'s <span title=concept-request-redirect-mode>redirect mode</span> is not
"<code title>manual</code>" and <var>response</var>'s
<span title=concept-response-type>type</span> is "<code title>opaqueredirect</code>".

<li><var>request</var>'s <span title=concept-request-redirect-mode>redirect mode</span> is not
"<code title>follow</code>" and <var>response</var>'s
<span title=concept-response-url-list>url list</span> has more than one item.
</ul>
<li><var>request</var>'s <span title=concept-request-redirect-mode>redirect mode</span> is not
"<code title>follow</code>" and <var>response</var>'s
<span title=concept-response-url-list>url list</span> has more than one item.
</ul>

<li><p>Execute
<a href=https://w3c.github.io/webappsec-csp/#set-response-csp-list>set <var>response</var>'s CSP list</a>
on <var>actualResponse</var>. <span data-anolis-ref>CSP</span>

<li><p>Execute
<a href=https://w3c.github.io/webappsec-csp/#set-response-csp-list>set <var>response</var>'s CSP list</a>
on <var>actualResponse</var>. <span data-anolis-ref>CSP</span>
</ol>
</ol>

<li>
Expand Down

0 comments on commit 5f1f703

Please sign in to comment.