Skip to content

Commit 4c228d3

Browse files
authored
Do not repeat the referrer policies
Instead, simply delegate to the referrer policy spec. This makes it easier to add new referrer policies without editing HTML. Fixes whatwg#1656. See also w3c/webappsec-referrer-policy#62.
1 parent 6c777d8 commit 4c228d3

File tree

1 file changed

+28
-109
lines changed

1 file changed

+28
-109
lines changed

source

Lines changed: 28 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -2802,7 +2802,6 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
28022802
<ul class="brief">
28032803
<li><dfn data-noexport=""><code>about:blank</code></dfn>
28042804
<li><dfn data-x-href="https://fetch.spec.whatwg.org/#concept-https-state-value">HTTPS state value</dfn>
2805-
<li><dfn data-x-href="https://fetch.spec.whatwg.org/#concept-referrer-policy">referrer policy</dfn>
28062805
<li><dfn data-noexport="" data-x-href="https://fetch.spec.whatwg.org/#http-cors-protocol">CORS protocol</dfn>
28072806
<li><dfn data-noexport="" data-x="default-user-agent-value" data-x-href="https://fetch.spec.whatwg.org/#default-user-agent-value">default `<code>User-Agent</code>` value</dfn>
28082807
<li><dfn data-noexport="" data-x-href="https://fetch.spec.whatwg.org/#concept-header-extract-mime-type">extract a MIME type</dfn>
@@ -2863,16 +2862,8 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
28632862
<p>The following terms are defined in <cite>Referrer Policy</cite>: <ref spec=REFERRERPOLICY></p>
28642863

28652864
<ul class="brief">
2865+
<li><dfn data-x-href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy">referrer policy</dfn></li>
28662866
<li>The <dfn data-x="referrer-policy-token" data-x-href="https://w3c.github.io/webappsec-referrer-policy/#policy-token"><code>policy-token</code></dfn> production</li>
2867-
<li>The
2868-
<dfn data-x="referrerpolicy-no-referrer" data-x-href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer">"<code>no-referrer</code>"</dfn>,
2869-
<dfn data-x="referrerpolicy-no-referrer-when-downgrade" data-x-href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer-when-downgrade">"<code>no-referrer-when-downgrade</code>"</dfn>,
2870-
<dfn data-x="referrerpolicy-same-origin" data-x-href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-same-origin">"<code>same-origin</code>"</dfn>,
2871-
<dfn data-x="referrerpolicy-origin" data-x-href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin">"<code>origin</code>"</dfn>,
2872-
<dfn data-x="referrerpolicy-strict-origin" data-x-href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin">"<code>strict-origin</code>"</dfn>,
2873-
<dfn data-x="referrerpolicy-origin-when-cross-origin" data-x-href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin-when-cross-origin">"<code>origin-when-cross-origin</code>"</dfn>,
2874-
<dfn data-x="referrerpolicy-strict-origin-when-cross-origin" data-x-href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin-when-cross-origin">"<code>strict-origin-when-cross-origin</code>"</dfn>, and
2875-
<dfn data-x="referrerpolicy-unsafe-url" data-x-href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-unsafe-url">"<code>unsafe-url</code>"</dfn> policies</li>
28762867
<li>The `<dfn data-x="http-referrer-policy" data-x-href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-header-dfn"><code>Referrer-Policy</code></dfn>` HTTP header</li>
28772868
<li>The <dfn data-x="parse-referrer-policy-header" data-x-href="https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header">parse a referrer policy from a `<code>Referrer-Policy</code>` header</dfn> algorithm</li>
28782869
<li>The <dfn data-x="concept-determine-referrer-policy" data-x-href="https://w3c.github.io/webappsec-referrer-policy/#determine-policy-for-token">determine the referrer policy</dfn> algorithm</li>
@@ -7244,80 +7235,17 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
72447235
<h4>Referrer policy attributes</h4>
72457236

72467237
<p>A <dfn data-export="">referrer policy attribute</dfn> is an <span>enumerated attribute</span>.
7247-
The following table lists the keywords and states for the attribute &mdash; the keywords in the
7248-
left column map to the states in the cell in the second column on the same row as the keyword.
7249-
These states are all <span data-x="referrer policy">referrer policies</span>, and their impact on
7250-
the processing model of various <span data-x="concept-fetch">fetches</span> is defined in more
7251-
detail in the WHATWG Fetch standard and in <cite>Referrer Policy</cite>. <ref spec=FETCH> <ref
7252-
spec=REFERRERPOLICY></p>
7238+
Each <span>referrer policy</span>, including the empty string, is a keyword for this attribute,
7239+
mapping to a state of the same name.</p>
72537240

7254-
<table>
7255-
<thead>
7256-
<tr>
7257-
<th> Keyword
7258-
<th> State
7259-
<th> Brief description
7260-
<tbody>
7261-
<tr>
7262-
<td><dfn><code data-x="attr-referrerpolicy-no-referrer-keyword">no-referrer</code></dfn>
7263-
<td><span data-x="referrerpolicy-no-referrer">"<code>no-referrer</code>"</span>
7264-
<td><span data-x="concept-request">Requests</span> for the element will have no <span
7265-
data-x="concept-request-referrer">referrer</span> sent at all.
7266-
<tr>
7267-
<td><dfn><code data-x="attr-referrerpolicy-no-referrer-when-downgrade-keyword">no-referrer-when-downgrade</code></dfn>
7268-
<td><span data-x="referrerpolicy-no-referrer-when-downgrade">"<code>no-referrer-when-downgrade</code>"</span>
7269-
<td><span data-x="concept-request">Requests</span> for the element will send a full URL as
7270-
their <span data-x="concept-request-referrer">referrer</span> to destinations that are
7271-
<span data-x="a priori authenticated URL"><i>a priori</i> authenticated URLs</span>; otherwise,
7272-
no <span data-x="concept-request-referrer">referrer</span> will be sent.
7273-
<tr>
7274-
<td><dfn><code data-x="attr-referrerpolicy-same-origin-keyword">same-origin</code></dfn>
7275-
<td><span data-x="referrerpolicy-same-origin">"<code>same-origin</code>"</span>
7276-
<td><span data-x="concept-request">Requests</span> for the element will send a full URL as
7277-
their <span data-x="concept-request-referrer">referrer</span> to the same <span>origin</span>,
7278-
but no <span data-x="concept-request-referrer">referrer</span> will be sent for cross-origin
7279-
requests.
7280-
<tr>
7281-
<td><dfn><code data-x="attr-referrerpolicy-origin-keyword">origin</code></dfn>
7282-
<td><span data-x="referrerpolicy-origin">"<code>origin</code>"</span>
7283-
<td><span data-x="concept-request">Requests</span> for the element will only send an
7284-
<span>origin</span> as their <span data-x="concept-request-referrer">referrer</span>.
7285-
<tr>
7286-
<td><dfn><code data-x="attr-referrerpolicy-strict-origin-keyword">strict-origin</code></dfn>
7287-
<td><span data-x="referrerpolicy-strict-origin">"<code>strict-origin</code>"</span>
7288-
<td><span data-x="concept-request">Requests</span> for the element will only send an
7289-
<span>origin</span> as their <span data-x="concept-request-referrer">referrer</span>
7290-
to destinations that are <span data-x="a priori authenticated URL"><i>a priori</i>
7291-
authenticated URLs</span>; otherwise, no
7292-
<span data-x="concept-request-referrer">referrer</span> will be sent.
7293-
<tr>
7294-
<td><dfn><code data-x="attr-referrerpolicy-origin-when-cross-origin-keyword">origin-when-cross-origin</code></dfn>
7295-
<td><span data-x="referrerpolicy-origin-when-cross-origin">"<code>origin-when-cross-origin</code>"</span>
7296-
<td><span data-x="concept-request">Requests</span> for the element will send a full URL as
7297-
their <span data-x="concept-request-referrer">referrer</span> to the same <span>origin</span>,
7298-
but will only send an <span>origin</span> as their <span
7299-
data-x="concept-request-referrer">referrer</span> for cross-origin requests.
7300-
<tr>
7301-
<td><dfn><code data-x="attr-referrerpolicy-strict-origin-when-cross-origin-keyword">strict-origin-when-cross-origin</code></dfn>
7302-
<td><span data-x="referrerpolicy-strict-origin-when-cross-origin">"<code>strict-origin-when-cross-origin</code>"</span>
7303-
<td><span data-x="concept-request">Requests</span> for the element will send a full URL as
7304-
their <span data-x="concept-request-referrer">referrer</span> to the same <span>origin</span>,
7305-
only send an <span>origin</span> as
7306-
their <span data-x="concept-request-referrer">referrer</span> for cross-origin requests to
7307-
destinations that are <span data-x="a priori authenticated URL"><i>a priori</i> authenticated
7308-
URLs</span>; otherwise, no <span data-x="concept-request-referrer">referrer</span> will be
7309-
sent.
7310-
<tr>
7311-
<td><dfn><code data-x="attr-referrerpolicy-unsafe-url-keyword">unsafe-url</code></dfn>
7312-
<td><span data-x="referrerpolicy-unsafe-url">"<code>unsafe-url</code>"</span>
7313-
<td><span data-x="concept-request">Requests</span> for the element will send a full URL as
7314-
their <span data-x="concept-request-referrer">referrer</span> in all cases.
7315-
</table>
7316-
7317-
<p>An additional state is given by the empty string (which is also a valid <span>referrer
7318-
policy</span>). The attribute's <i data-x="invalid value default">invalid value default</i> and <i
7241+
<p>The attribute's <i data-x="invalid value default">invalid value default</i> and <i
73197242
data-x="missing value default">missing value default</i> are both the empty string state.</p>
73207243

7244+
<p>The impact of these states on the processing model of various <span
7245+
data-x="concept-fetch">fetches</span> is defined in more detail throughout this specification, in
7246+
the WHATWG Fetch standard, and in <cite>Referrer Policy</cite>. <ref spec=FETCH> <ref
7247+
spec=REFERRERPOLICY></p>
7248+
73217249
<div class="note">
73227250
<p>Several signals can contribute to which processing model is used for a given <span
73237251
data-x="concept-fetch">fetch</span>; a <span>referrer policy attribute</span> is only one of
@@ -13372,19 +13300,8 @@ interface <dfn>HTMLMetaElement</dfn> : <span>HTMLElement</span> {
1337213300
<dt><dfn><code data-x="meta-referrer">referrer</code></dfn></dt>
1337313301

1337413302
<dd>
13375-
<p>The value must match the <code data-x="referrer-policy-token">policy-token</code> production,
13376-
defining a default <span>referrer policy</span> for the <code>Document</code>. <ref
13377-
spec="REFERRERPOLICY"></p>
13378-
13379-
<p>In particular, <span w-nodev>although they impact the processing model,</span> the legacy
13380-
values <code data-x="">never</code>, <code data-x="">default</code>, and <code
13381-
data-x="">always</code> must not be used by authors; instead, use <code
13382-
data-x="">no-referrer</code>, <code data-x="">no-referrer-when-downgrade</code>, and <code
13383-
data-x="">unsafe-url</code>, respectively.</p>
13384-
13385-
<p class="note">The valid values for the <code data-x="attr-meta-content">content</code>
13386-
attribute in this state match the keywords for <span data-x="referrer policy attribute">referrer
13387-
policy attributes</span>.</p>
13303+
<p>The value must be a <span>referrer policy</span>, which defines the default <span>referrer
13304+
policy</span> for the <code>Document</code>. <ref spec="REFERRERPOLICY"></p>
1338813305

1338913306
<div w-nodev>
1339013307

@@ -13401,9 +13318,9 @@ interface <dfn>HTMLMetaElement</dfn> : <span>HTMLElement</span> {
1340113318
meet the following criteria, in <span>tree order</span>:</p>
1340213319

1340313320
<ul class="brief">
13404-
<li>The element is <span>in a document tree</span>.</li>
13321+
<li>The element is <span>in a document tree</span></li>
1340513322
<li>The element has a <code data-x="attr-meta-name">name</code> attribute, whose value is
13406-
<code data-x="meta-referrer">referrer</code>.</li>
13323+
<code data-x="meta-referrer">referrer</code></li>
1340713324
<li>The element has a <code data-x="attr-meta-content">content</code> attribute</li>
1340813325
<li>The element is a child of <span>the <code>head</code> element</span> of the document</li>
1340913326
</ul>
@@ -13422,9 +13339,18 @@ interface <dfn>HTMLMetaElement</dfn> : <span>HTMLElement</span> {
1342213339
<p>If <var>value</var> is not the empty string, then:</p>
1342313340

1342413341
<ol>
13425-
<li><p>Let <var>policy</var> be the result of <span
13426-
data-x="concept-determine-referrer-policy">determining the policy</span> for
13427-
<var>value</var>.</p></li>
13342+
<li>
13343+
<p>Let <var>policy</var> be the result of <span
13344+
data-x="concept-determine-referrer-policy">determining the policy</span> for
13345+
<var>value</var>.</p>
13346+
13347+
<p class="note">This step allows the legacy values <code data-x="">never</code>, <code
13348+
data-x="">default</code>, and <code data-x="">always</code> to take the place of the
13349+
standard referrer policies <code data-x="">no-referrer</code>, <code
13350+
data-x="">no-referrer-when-downgrade</code>, and <code data-x="">unsafe-url</code>,
13351+
respectively. Per the above conformance requirement, these legacy values must never be
13352+
used by authors, even though this step causes them to impact the processing model.</p>
13353+
</li>
1342813354

1342913355
<li><p>If <var>policy</var> is not the empty string, then set <var>element</var>'s
1343013356
<span>node document</span>'s <span data-x="concept-document-referrer-policy">referrer
@@ -13472,9 +13398,9 @@ interface <dfn>HTMLMetaElement</dfn> : <span>HTMLElement</span> {
1347213398
meet the following criteria, in <span>tree order</span>:</p>
1347313399

1347413400
<ul class="brief">
13475-
<li>The element is <span>in a document tree</span>.</li>
13401+
<li>The element is <span>in a document tree</span></li>
1347613402
<li>The element has a <code data-x="attr-meta-name">name</code> attribute, whose value is
13477-
<code data-x="meta-theme-color">theme-color</code>.</li>
13403+
<code data-x="meta-theme-color">theme-color</code></li>
1347813404
<li>The element has a <code data-x="attr-meta-content">content</code> attribute</li>
1347913405
</ul>
1348013406
</li>
@@ -117051,14 +116977,7 @@ interface <dfn>External</dfn> {
117051116977
<code data-x="attr-img-referrerpolicy">img</code>;
117052116978
<code data-x="attr-link-referrerpolicy">link</code>
117053116979
<td> Determines the <span>referrer policy</span> for <span data-x="concept-fetch">fetches</span> initiated by the element
117054-
<td> "<code data-x="attr-referrerpolicy-no-referrer-keyword">no-referrer</code>";
117055-
"<code data-x="attr-referrerpolicy-no-referrer-when-downgrade-keyword">no-referrer-when-downgrade</code>";
117056-
"<code data-x="attr-referrerpolicy-same-origin-keyword">same-origin</code>";
117057-
"<code data-x="attr-referrerpolicy-origin-keyword">origin</code>";
117058-
"<code data-x="attr-referrerpolicy-strict-origin-keyword">strict-origin</code>";
117059-
"<code data-x="attr-referrerpolicy-origin-when-cross-origin-keyword">origin-when-cross-origin</code>";
117060-
"<code data-x="attr-referrerpolicy-strict-origin-when-cross-origin-keyword">strict-origin-when-cross-origin</code>";
117061-
"<code data-x="attr-referrerpolicy-unsafe-url-keyword">unsafe-url</code>"
116980+
<td> <span>Referrer policy</span>
117062116981
<tr>
117063116982
<th> <code data-x="">rel</code>
117064116983
<td> <code data-x="attr-hyperlink-rel">a</code>;

0 commit comments

Comments
 (0)