Skip to content

Commit 2e23cfb

Browse files
committed
Add [Exposed=*] to expose on all globals
This patch adds support in WebIDL for declaring an interface available in all contexts. Closes #468
1 parent 3750d7a commit 2e23cfb

File tree

1 file changed

+38
-5
lines changed

1 file changed

+38
-5
lines changed

index.bs

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6539,6 +6539,17 @@ which form (or forms) it is in:
65396539
<code>[Exposed=(Window,Worker)]</code>
65406540
</td>
65416541
</tr>
6542+
<tr>
6543+
<td>
6544+
<emu-nt><a href="#prod-ExtendedAttributeWildcard">ExtendedAttributeWildcard</a></emu-nt>
6545+
</td>
6546+
<td>
6547+
<dfn id="dfn-xattr-wildcard" for="extended attribute" export>takes a wildcard</dfn>
6548+
</td>
6549+
<td>
6550+
<code>[Exposed=*]</code>
6551+
</td>
6552+
</tr>
65426553

65436554
</table>
65446555

@@ -6600,6 +6611,7 @@ five forms are allowed.
66006611
"="
66016612
"&gt;"
66026613
"?"
6614+
"*"
66036615
"ByteString"
66046616
"DOMString"
66056617
"FrozenArray"
@@ -6659,6 +6671,11 @@ five forms are allowed.
66596671
identifier "=" identifier
66606672
</pre>
66616673

6674+
<pre class="grammar" id="prod-ExtendedAttributeWildcard">
6675+
ExtendedAttributeWildcard :
6676+
identifier "=" "*"
6677+
</pre>
6678+
66626679
<pre class="grammar" id="prod-ExtendedAttributeIdentList">
66636680
ExtendedAttributeIdentList :
66646681
identifier "=" "(" IdentifierList ")"
@@ -8560,14 +8577,30 @@ it indicates that the construct is exposed
85608577
on that particular set of global interfaces.
85618578

85628579
The [{{Exposed}}] [=extended attribute=] must either
8563-
[=takes an identifier|take an identifier=] or
8564-
[=takes an identifier list|take an identifier list=].
8580+
[=takes an identifier|take an identifier=],
8581+
[=takes an identifier list|take an identifier list=] or
8582+
[=takes a wildcard|take a wildcard=].
85658583
Each of the identifiers mentioned must be a [=global name=] and be unique.
8566-
This list of identifiers is known as the construct's
8567-
<dfn>own exposure set</dfn>.
85688584

8569-
<div algorithm>
8585+
The <dfn>own exposure set</dfn> is the set of [=global name=]s which
8586+
[{{Exposed}}] is applied to.
8587+
8588+
If the [{{Exposed}}] [=extended attribute=]
8589+
[=takes an identifier|take an identifier=] or
8590+
[=takes an identifier list|take an identifier list=],
8591+
the [=own exposure set=] is the list of identifiers.
8592+
If the [{{Exposed}}] [=extended attribute=]
8593+
[=takes a wildcard|take a wildcard=], the [=own exposure set=] is the
8594+
set of interfaces which have the [{{Global}}] extended attribute.
85708595

8596+
<p class="advisement">
8597+
<code>[Exposed=*]</code> should be used with care. It is only appropriate
8598+
when an interface does not expose significant new capabilities. If the
8599+
interface may be restricted or disabled in some environments, it is
8600+
recommended to list the globals explicitly.
8601+
</p>
8602+
8603+
<div algorithm>
85718604
To get the <dfn id="dfn-exposure-set" export>exposure set</dfn> of a construct |C|,
85728605
run the following steps:
85738606

0 commit comments

Comments
 (0)