You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update the “Link type "serviceworker"” section (#1110)
* Add new section “Declaring a "serviceworker" Link header”
* Drop normative requirement to fire an error if link[workertype] value
isn’t a valid worker type; instead just abort.
* Drop the partial interface IDL for the HTMLLinkElement interface (the
definitions for the IDL attributes have already been merged directly
into the HTMLLinkElement interface IDL definition in the HTML spec).
Fixes#1073
<h2 id="link-type-serviceworker">Link type "<code>serviceworker</code>"</h2>
1773
+
<h2 id="link-type-serviceworker">Link type "`serviceworker`"</h2>
1773
1774
1774
-
The <dfn id="dfn-link-type-serviceworker" lt="serviceworker link type"><code>serviceworker</code></dfn> keyword may be used with <{link}> elements. This keyword creates an <a>external resource link</a> (<dfn id="dfn-serviceworker-link">serviceworker link</dfn>) that is used to declare a [=/service worker registration=] and its [=service worker registration/scope url=].
1775
+
A [=/service worker registration=] and its [=service worker registration/scope url=] are created by a <dfn id="dfn-serviceworker-link">serviceworker link</dfn>, which is declared using a <a href="#serviceworker-link-header">"serviceworker" `Link` header</a> or a <{link}> element whose <{link/rel}> attribute contains the keyword "<{link/rel/serviceworker}>".
1775
1776
1776
1777
<section>
1777
-
<h3 id="link-header-processing">Processing the <code>Link</code> header</h3>
1778
+
<h3 id="serviceworker-link-header">Declaring a "serviceworker" <code>Link</code> header</h3>
1779
+
1780
+
A <a>serviceworker link</a> can be declared using a `Link` header</a>[[!RFC5988]] with "`serviceworker`" as the value of the "`rel`" parameter and a [=URL serializer|serialized=][=service worker/script url=] inside angle brackets ("`<>`") as the <a>target IRI</a>, and the following optional <a>target attributes</a>:
1781
+
1782
+
: `scope`
1783
+
:: Value: A [=URL serializer|serialized=][=service worker registration/scope url=].
1784
+
1785
+
: `workertype`
1786
+
:: Value: A [=job/worker type=].
1787
+
1788
+
: `updateviacache`
1789
+
:: Value: An [=service worker registration/update via cache mode=].
<h3 id="link-header-processing">Processing a "serviceworker" <code>Link</code> header</h3>
1778
1803
1779
1804
When a user agent that supports [[!RFC5988]] processes a <code>Link</code> header that contains a <a>serviceworker link</a>, the user agent *should* run these steps:
<h3 id="link-element-processing">Processing the <{link}> element</h3>
1821
+
<h3 id="link-element-processing">Processing a "serviceworker" <{link}> element</h3>
1797
1822
1798
1823
When a <a>serviceworker link</a>'s <{link}> element is <a>inserted into a document</a>, or a <a>serviceworker link</a> is created on a <{link}> element that is already <a>in a document tree</a>, or the <{link/href}>, <{link/scope}>, or <{link/updateviacache}> attributes of the <{link}> element of a <a>serviceworker link</a> is changed, the user agent *should* run these steps:
1. Let |scriptURL| be the result of <a lt="URL parser">parsing</a> the <{link/href}> attribute with the <{link}> element's <a>node document</a>'s <a>document base URL</a>.
1804
1829
1. Let |scopeURL| be null.
1805
1830
1. If the <{link/scope}> attribute is present, set |scopeURL| to the result of <a lt="URL parser">parsing</a> the <{link/scope}> attribute with the <{link}> element's <a>node document</a>'s <a>document base URL</a>.
1806
-
1. Let |workerType| be the <{link/workertype}> attribute, or "<code>classic</code>" if the <{link/workertype}> attribute is omitted.
1807
-
1. If |workerType| is not a valid {{WorkerType}} value, <a>queue a task</a> to <a>fire an event</a> named <code>error</code> at the <{link}> element, and abort these steps.
1831
+
1. Let |workerType| be the state of the <{link/workertype}> attribute.
1832
+
1. If |workerType| is <i>invalid</i>, abort these steps.
1808
1833
1. Let |updateViaCache| be the <{link/updateviacache}> attribute, or "`imports`" if the <{link/updateviacache}> attribute is omitted.
1809
1834
1. Let |promise| be a new <a>promise</a>.
1810
1835
1. Invoke [=Start Register=] with |scopeURL|, |scriptURL|, |promise|, |client|, |client|'s <a>creation URL</a>, |workerType|, and |updateViaCache|.
0 commit comments