Skip to content

Commit f058fed

Browse files
committed
Address some comments
1 parent b0f1c1c commit f058fed

File tree

1 file changed

+70
-66
lines changed

1 file changed

+70
-66
lines changed

source

Lines changed: 70 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -8798,77 +8798,80 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
87988798

87998799
<h4>Using reflect via IDL extended attributes</h4>
88008800

8801-
<p>To enable improved usage of <span data-x="reflect">reflection</span>, we introduce the <dfn
8802-
extended-attribute data-lt="Reflect" data-x="xattr-Reflect"><code>[Reflect]</code></dfn>, <dfn
8803-
extended-attribute data-lt="ReflectSetter"
8804-
data-x="xattr-ReflectSetter"><code>[ReflectSetter]</code></dfn>, <dfn extended-attribute
8805-
data-lt="ReflectURL" data-x="xattr-ReflectURL"><code>[ReflectURL]</code></dfn>, <dfn
8806-
extended-attribute data-lt="ReflectNonNegative"
8801+
<p>To enable improved usage of <span data-x="reflect">reflection</span>, we introduce multiple new
8802+
IDL <span data-x="extended attribute">extended attributes</span>. <dfn extended-attribute
8803+
data-lt="Reflect" data-x="xattr-Reflect"><code>[Reflect]</code></dfn>, <dfn extended-attribute
8804+
data-lt="ReflectSetter" data-x="xattr-ReflectSetter"><code>[ReflectSetter]</code></dfn>, <dfn
8805+
extended-attribute data-lt="ReflectURL" data-x="xattr-ReflectURL"><code>[ReflectURL]</code></dfn>,
8806+
<dfn extended-attribute data-lt="ReflectNonNegative"
88078807
data-x="xattr-ReflectNonNegative"><code>[ReflectNonNegative]</code></dfn>, <dfn extended-attribute
8808-
data-lt="ReflectPositive" data-x="xattr-ReflectPositive"><code>[ReflectPositive]</code></dfn>,
8808+
data-lt="ReflectPositive" data-x="xattr-ReflectPositive"><code>[ReflectPositive]</code></dfn>, and
88098809
<dfn extended-attribute data-lt="ReflectPositiveWithFallback"
8810-
data-x="xattr-ReflectPositiveWithFallback"><code>[ReflectPositiveWithFallback]</code></dfn>, <dfn
8811-
extended-attribute data-lt="ReflectRange"
8812-
data-x="xattr-ReflectRange"><code>[ReflectRange]</code></dfn>, and <dfn extended-attribute
8813-
data-lt="ReflectDefault" data-x="xattr-ReflectDefault"><code>[ReflectDefault]</code></dfn> IDL
8814-
<span data-x="extended attribute">extended attributes</span>.</p>
8810+
data-x="xattr-ReflectPositiveWithFallback"><code>[ReflectPositiveWithFallback]</code></dfn> all
8811+
trigger <span data-x="reflect">reflection</span>. These must either take no arguments, or take a
8812+
string; they must not appear on anything other than an interface member attribute; and only one of
8813+
these can be used at a time.</p>
88158814

8816-
<p>The <code data-x="xattr-Reflect">[Reflect]</code>, <code
8817-
data-x="xattr-ReflectSetter">[ReflectSetter]</code>, <code
8818-
data-x="xattr-ReflectURL">[ReflectURL]</code>, <code
8819-
data-x="xattr-ReflectNonNegative">[ReflectNonNegative]</code>, <code
8820-
data-x="xattr-ReflectPositive">[ReflectPositive]</code>, <code
8821-
data-x="xattr-ReflectPositiveWithFallback">[ReflectPositiveWithFallback]</code> <span>extended
8822-
attribute</span>s must either take no arguments, or take a string. They must not appear on
8823-
anything other than an interface member attribute.</p>
8815+
<p>For one of these primary reflection <span data-x="extended attribute">extended
8816+
attributes</span>, its <span>reflected content attribute name</span> is the string value it takes,
8817+
if one is provided, or the IDL attribute name otherwise.</p>
88248818

88258819
<p>IDL attributes with the <code data-x="xattr-Reflect">[Reflect]</code> <span>extended
8826-
attribute</span> must <span>reflect</span> the content attribute of the name provided by <code
8827-
data-x="xattr-Reflect">[Reflect]</code> or the IDL attribute name if none is provided.</p>
8820+
attribute</span> must <span>reflect</span> <code data-x="xattr-Reflect">[Reflect]</code>'s
8821+
<span>reflected content attribute name</span>.</p>
88288822

88298823
<p>IDL attributes with the <code data-x="xattr-ReflectSetter">[ReflectSetter]</code>
8830-
<span>extended attribute</span> on setting must <span>reflect</span> the content attribute of the
8831-
name provided by <code data-x="xattr-ReflectSetter">[ReflectSetter]</code> or the IDL attribute
8832-
name if none is provided.</p>
8824+
<span>extended attribute</span> on setting must <span>reflect</span> <code
8825+
data-x="xattr-ReflectSetter">[ReflectSetter]</code>'s <span>reflected content attribute
8826+
name</span>.</p>
8827+
8828+
<p>The <code data-x="xattr-ReflectURL">[ReflectURL]</code> <span>extended attribute</span> must
8829+
only appear on attributes with a type of <code data-x="idl-USVString">USVString</code>.</p>
88338830

88348831
<p>IDL attributes with the <code data-x="xattr-ReflectURL">[ReflectURL]</code> <span>extended
8835-
attribute</span> must <span>reflect</span>, <span data-x="treated as a URL">as a URL</span>, the
8836-
content attribute of the name provided by <code data-x="xattr-ReflectURL">[ReflectURL]</code> or
8837-
the IDL attribute name if none is provided.</p>
8832+
attribute</span> must <span>reflect</span>, <span data-x="treated as a URL">as a URL</span>, <code
8833+
data-x="xattr-ReflectURL">[ReflectURL]</code>'s <span>reflected content attribute name</span>.</p>
88388834

88398835
<p>The <code data-x="xattr-ReflectNonNegative">[ReflectNonNegative]</code> <span>extended
8840-
attribute</span> must only appear on interface member attributes with a type of <code
8836+
attribute</span> must only appear on attributes with a type of <code
88418837
data-x="idl-long">long</code>.</p>
88428838

88438839
<p>IDL attributes with the <code data-x="xattr-ReflectNonNegative">[ReflectNonNegative]</code>
88448840
<span>extended attribute</span> must <span>reflect</span>, <span>limited to only non-negative
8845-
numbers</span>, the content attribute of the name provided by <code
8846-
data-x="xattr-ReflectNonNegative">[ReflectNonNegative]</code> or the IDL attribute name if none is
8847-
provided.</p>
8841+
numbers</span>, <code data-x="xattr-ReflectNonNegative">[ReflectNonNegative]</code>'s
8842+
<span>reflected content attribute name</span>.</p>
88488843

88498844
<p>The <code data-x="xattr-ReflectPositive">[ReflectPositive]</code> and <code
8850-
data-x="xattr-ReflectPositiveWithFallback">[ReflectPositiveWithFallback]</code> <span>extended
8851-
attribute</span>s must only appear on interface member attributes with a type of <code
8852-
data-x="idl-double">double</code> or <code data-x="idl-unsigned-long">unsigned long</code>.</p>
8845+
data-x="xattr-ReflectPositiveWithFallback">[ReflectPositiveWithFallback]</code> <span
8846+
data-x="extended attribute">extended attributes</span> must only appear on attributes with a type
8847+
of <code data-x="idl-double">double</code> or <code data-x="idl-unsigned-long">unsigned
8848+
long</code>.</p>
88538849

88548850
<p>IDL attributes with the <code data-x="xattr-ReflectPositive">[ReflectPositive]</code>
88558851
<span>extended attribute</span> must <span>reflect</span>, <span>limited to only positive
8856-
numbers</span>, the content attribute of the name provided by <code
8857-
data-x="xattr-ReflectPositive">[ReflectPositive]</code> or the IDL attribute name if none is
8858-
provided.</p>
8852+
numbers</span>, <code data-x="xattr-ReflectPositive">[ReflectPositive]</code>'s <span>reflected
8853+
content attribute name</span>.</p>
88598854

88608855
<p>IDL attributes with the <code
88618856
data-x="xattr-ReflectPositiveWithFallback">[ReflectPositiveWithFallback]</code> <span>extended
88628857
attribute</span> must <span>reflect</span>, <span>limited to only positive numbers with
8863-
fallback</span>, the content attribute of the name provided by <code
8864-
data-x="xattr-ReflectPositiveWithFallback">[ReflectPositiveWithFallback]</code> or the IDL
8865-
attribute name if none is provided.</p>
8858+
fallback</span>, <code
8859+
data-x="xattr-ReflectPositiveWithFallback">[ReflectPositiveWithFallback]</code>'s <span>reflected
8860+
content attribute name</span>.</p>
8861+
8862+
<hr>
8863+
8864+
<p>To supplement the above <span data-x="extended attribute">extended attributes</span> we also
8865+
introduce <dfn extended-attribute data-lt="ReflectRange"
8866+
data-x="xattr-ReflectRange"><code>[ReflectRange]</code></dfn>, and <dfn extended-attribute
8867+
data-lt="ReflectDefault" data-x="xattr-ReflectDefault"><code>[ReflectDefault]</code></dfn>. These
8868+
augment how <span data-x="reflect">reflection</span> works and also must only appear on interface
8869+
member attributes.</p>
88668870

88678871
<p>The <code data-x="xattr-ReflectRange">[ReflectRange]</code> <span>extended attribute</span>
8868-
must take an integer list limited to two values. It must not appear on anything other than an
8869-
interface member attribute with a type of <code data-x="idl-unsigned-long">unsigned long</code>.
8870-
Additionally, it must also only appear alongside <code
8871-
data-x="xattr-Reflect">[Reflect]</code>.</p>
8872+
must take an integer list limited to two values. It must only be used on attributes with a type of
8873+
<code data-x="idl-unsigned-long">unsigned long</code>. Additionally, it must also only appear
8874+
alongside <code data-x="xattr-Reflect">[Reflect]</code>.</p>
88728875

88738876
<p>IDL attributes with the <code data-x="xattr-ReflectRange">[ReflectRange]</code> <span>extended
88748877
attribute</span> are <span>clamped to the range</span> [<var>clampedMin</var>,
@@ -8877,18 +8880,18 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
88778880
data-x="xattr-ReflectRange">[ReflectRange]</code>.</p>
88788881

88798882
<p>The <code data-x="xattr-ReflectDefault">[ReflectDefault]</code> <span>extended attribute</span>
8880-
must not appear on anything other than an interface member attribute with a type of <code
8881-
data-x="idl-double">double</code>, <code data-x="idl-long">long</code>, or <code
8882-
data-x="idl-unsigned-long">unsigned long</code>. When used on an attribute of type <code
8883-
data-x="idl-double">double</code>, it must take a decimal, otherwise it must take an integer.
8884-
Additionally, it must also only appear alongside <code data-x="xattr-Reflect">[Reflect]</code>,
8885-
<code data-x="xattr-ReflectNonNegative">[ReflectNonNegative]</code>, <code
8883+
must only be used on attributes with a type of <code data-x="idl-double">double</code>, <code
8884+
data-x="idl-long">long</code>, or <code data-x="idl-unsigned-long">unsigned long</code>. When used
8885+
on an attribute of type <code data-x="idl-double">double</code>, it must take a decimal; otherwise
8886+
it must take an integer. Additionally, it must also only appear alongside <code
8887+
data-x="xattr-Reflect">[Reflect]</code>, <code
8888+
data-x="xattr-ReflectNonNegative">[ReflectNonNegative]</code>, <code
88868889
data-x="xattr-ReflectPositive">[ReflectPositive]</code>, or <code
88878890
data-x="xattr-ReflectPositiveWithFallback">[ReflectPositiveWithFallback]</code>.</p>
88888891

88898892
<p>IDL attributes with the <code data-x="xattr-ReflectDefault">[ReflectDefault]</code>
8890-
<span>extended attribute</span> have a <span>default value</span> provided by <code
8891-
data-x="xattr-ReflectDefault">[ReflectDefault]</code>.</p>
8893+
<span>extended attribute</span> have a <span>default value</span> provided by the argument
8894+
provided to <code data-x="xattr-ReflectDefault">[ReflectDefault]</code>.</p>
88928895

88938896
<h4>Using reflect in specifications</h4>
88948897

@@ -20308,8 +20311,9 @@ interface <dfn interface>HTMLQuoteElement</dfn> : <span>HTMLElement</span> {
2030820311
[<span>HTMLConstructor</span>] constructor();
2030920312

2031020313
[<span>CEReactions</span>, <span data-x="xattr-ReflectURL">ReflectURL</span>] attribute USVString <dfn attribute for="HTMLQuoteElement" data-x="dom-quote-cite">cite</dfn>;
20311-
};</code></pre> <p class="note">The <code>HTMLQuoteElement</code> interface is also used by the
20312-
<code>q</code> element.</p>
20314+
};</code></pre>
20315+
<p class="note">The <code>HTMLQuoteElement</code> interface is also used by the <code>q</code>
20316+
element.</p>
2031320317
</dd>
2031420318
<dd w-dev>Uses <code>HTMLQuoteElement</code>.</dd>
2031520319
</dl>
@@ -20620,7 +20624,7 @@ interface <dfn interface>HTMLOListElement</dfn> : <span>HTMLElement</span> {
2062020624

2062120625
<div w-nodev>
2062220626

20623-
<p class="note">The <span data-x="xattr-ReflectDefault">[ReflectDefault]</span> means that the
20627+
<p class="note">Due to <span data-x="xattr-ReflectDefault">[ReflectDefault]</span> the
2062420628
<code data-x="dom-ol-start">start</code> IDL attribute does not necessarily match the list's <span
2062520629
data-x="concept-ol-start">starting value</span>, in cases where the <code
2062620630
data-x="attr-ol-start">start</code> content attribute is omitted and the <code
@@ -29056,8 +29060,8 @@ interface <dfn interface>HTMLSourceElement</dfn> : <span>HTMLElement</span> {
2905629060
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute USVString <dfn attribute for="HTMLSourceElement" data-x="dom-source-srcset">srcset</dfn>;
2905729061
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <dfn attribute for="HTMLSourceElement" data-x="dom-source-sizes">sizes</dfn>;
2905829062
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <dfn attribute for="HTMLSourceElement" data-x="dom-source-media">media</dfn>;
29059-
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute unsigned long <dfn attribute for="HTMLIFrameElement,HTMLEmbedElement,HTMLObjectElement,HTMLSourceElement,HTMLVideoElement" data-x="dom-dim-width">width</dfn>;
29060-
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute unsigned long <dfn attribute for="HTMLIFrameElement,HTMLEmbedElement,HTMLObjectElement,HTMLSourceElement,HTMLVideoElement" data-x="dom-dim-height">height</dfn>;
29063+
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute unsigned long <dfn attribute for="HTMLSourceElement" data-x="dom-source-width">width</dfn>;
29064+
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute unsigned long <dfn attribute for="HTMLSourceElement" data-x="dom-source-height">height</dfn>;
2906129065
};</code></pre>
2906229066
</dd>
2906329067
<dd w-dev>Uses <code>HTMLSourceElement</code>.</dd>
@@ -33383,8 +33387,8 @@ interface <dfn interface>HTMLIFrameElement</dfn> : <span>HTMLElement</span> {
3338333387
[SameObject, PutForwards=<span data-x="dom-DOMTokenList-value">value</span>, <span data-x="xattr-Reflect">Reflect</span>] readonly attribute <span>DOMTokenList</span> <dfn attribute for="HTMLIFrameElement" data-x="dom-iframe-sandbox">sandbox</dfn>;
3338433388
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <dfn attribute for="HTMLIFrameElement" data-x="dom-iframe-allow">allow</dfn>;
3338533389
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>="<span data-x="attr-iframe-allowfullscreen">allowfullscreen</span>"] attribute boolean <dfn attribute for="HTMLIFrameElement" data-x="dom-iframe-allowFullscreen">allowFullscreen</dfn>;
33386-
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <span data-x="dom-dim-width">width</span>;
33387-
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <span data-x="dom-dim-height">height</span>;
33390+
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <dfn attribute for="HTMLIFrameElement" data-x="dom-dim-width">width</dfn>;
33391+
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <dfn attribute for="HTMLIFrameElement" data-x="dom-dim-height">height</dfn>;
3338833392
[<span>CEReactions</span>] attribute DOMString <span data-x="dom-iframe-referrerPolicy">referrerPolicy</span>;
3338933393
[<span>CEReactions</span>] attribute DOMString <span data-x="dom-iframe-loading">loading</span>;
3339033394
readonly attribute <span>Document</span>? <span data-x="dom-iframe-contentDocument">contentDocument</span>;
@@ -34269,8 +34273,8 @@ interface <dfn interface>HTMLEmbedElement</dfn> : <span>HTMLElement</span> {
3426934273

3427034274
[<span>CEReactions</span>, <span data-x="xattr-ReflectURL">ReflectURL</span>] attribute USVString <dfn attribute for="HTMLEmbedElement" data-x="dom-embed-src">src</dfn>;
3427134275
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <dfn attribute for="HTMLEmbedElement" data-x="dom-embed-type">type</dfn>;
34272-
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <span data-x="dom-dim-width">width</span>;
34273-
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <span data-x="dom-dim-height">height</span>;
34276+
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <dfn attribute for="HTMLEmbedElement" data-x="dom-embed-width">width</dfn>;
34277+
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <dfn attribute for="HTMLEmbedElement" data-x="dom-embed-height">height</dfn>;
3427434278
<span>Document</span>? <span data-x="dom-media-getSVGDocument">getSVGDocument</span>();
3427534279

3427634280
// <a href="#HTMLEmbedElement-partial">also has obsolete members</a>
@@ -34539,8 +34543,8 @@ interface <dfn interface>HTMLObjectElement</dfn> : <span>HTMLElement</span> {
3453934543
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <dfn attribute for="HTMLObjectElement" data-x="dom-object-type">type</dfn>;
3454034544
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <dfn attribute for="HTMLObjectElement" data-x="dom-object-name">name</dfn>;
3454134545
readonly attribute <span>HTMLFormElement</span>? <span data-x="dom-fae-form">form</span>;
34542-
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <span data-x="dom-dim-width">width</span>;
34543-
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <span data-x="dom-dim-height">height</span>;
34546+
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <dfn attribute for="HTMLObjectElement" data-x="dom-object-width">width</dfn>;
34547+
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <dfn attribute for="HTMLObjectElement" data-x="dom-object-height">height</dfn>;
3454434548
readonly attribute <span>Document</span>? <span data-x="dom-object-contentDocument">contentDocument</span>;
3454534549
readonly attribute <span>WindowProxy</span>? <span data-x="dom-object-contentWindow">contentWindow</span>;
3454634550
<span>Document</span>? <span data-x="dom-media-getSVGDocument">getSVGDocument</span>();
@@ -35060,8 +35064,8 @@ interface <dfn interface>HTMLObjectElement</dfn> : <span>HTMLElement</span> {
3506035064
interface <dfn interface>HTMLVideoElement</dfn> : <span>HTMLMediaElement</span> {
3506135065
[<span>HTMLConstructor</span>] constructor();
3506235066

35063-
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute unsigned long <span data-x="dom-dim-width">width</span>;
35064-
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute unsigned long <span data-x="dom-dim-height">height</span>;
35067+
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute unsigned long <dfn attribute for="HTMLVideoElement" data-x="dom-video-width">width</dfn>;
35068+
[<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute unsigned long <dfn attribute for="HTMLVideoElement" data-x="dom-video-height">height</dfn>;
3506535069
readonly attribute unsigned long <span data-x="dom-video-videoWidth">videoWidth</span>;
3506635070
readonly attribute unsigned long <span data-x="dom-video-videoHeight">videoHeight</span>;
3506735071
[<span>CEReactions</span>, <span data-x="xattr-ReflectURL">ReflectURL</span>] attribute USVString <dfn attribute for="HTMLVideoElement" data-x="dom-video-poster">poster</dfn>;

0 commit comments

Comments
 (0)