- From: Anne van Kesteren <notifications@github.com>
- Date: Thu, 01 Feb 2024 04:33:08 -0800
- To: whatwg/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/webidl/pull/841/review/1856361579@github.com>
@annevk commented on this pull request.
> @@ -6353,8 +6353,10 @@ The following extended attributes are <dfn for="extended attributes">applicable
[{{AllowResizable}}],
[{{AllowShared}}],
[{{Clamp}}],
-[{{EnforceRange}}], and
-[{{LegacyNullToEmptyString}}].
+[{{EnforceRange}}],
+[{{LegacyNullToEmptyString}}] and
Please bring back the Oxford comma.
> @@ -7581,6 +7583,13 @@ value when its bit pattern is interpreted as an unsigned 64-bit integer.
A JavaScript value |V| is [=converted to an IDL value|converted=]
to an IDL {{DOMString}} value by running the following algorithm:
+ 1. If the conversion is to an IDL type [=extended attribute associated with|associated with=] the
+ [{{StringContext}}] extended attribute, then set |V| to the result of [=validate the string in context=], passing
validating*
> @@ -10259,6 +10268,41 @@ that does specify [{{SecureContext}}].
</pre>
</div>
+<h4 id="StringContext" extended-attribute lt="StringContext">[StringContext]</h4>
+
+If the [{{StringContext}}] [=extended attribute=] appears on {{DOMString}} or {{USVString}}, it
+modifies how the value is converted to the IDL type, causing additional value validation to
+adhere to the context the string is used in.
+
+The [{{StringContext}}] extended attribute must [=takes an identifier|take an identifier=]. The [=identifier=]
+must be one of "<code>html</code>", "<code>script-url</code>" and "<code>script</code>".
+
+[{{StringContext}}] extended attribute may only annotate a type of a [=regular attribute=] or
+a [=regular operation=] argument. A type annotated with the [{{StringContext}}]
+extended attribute must not appear in a [=read only=] attribute. The [=regular attribute=] or
+a [=regular operation=] argument that the type annotated with the [{{StringContext}}] extended
```suggestion
[=regular operation=] argument that the type annotated with the [{{StringContext}}] extended
```
> + [=this=], |V|, the {{StringContext}} extended attribute [=identifier=], and the [=identifier=]
+ of the [{{StringContext}}] extended attribute [=related construct=].
This has some extreme magic that I don't really understand.
As far as I know when we do type conversion there is no "this" and there is no access to something like a "related construct".
I'd like to hear what @domenic and @Ms2ger think, but it seems to me you have to patch algorithms such as https://webidl.spec.whatwg.org/#dfn-attribute-setter instead.
--
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/webidl/pull/841#pullrequestreview-1856361579
You are receiving this because you are subscribed to this thread.
Message ID: <whatwg/webidl/pull/841/review/1856361579@github.com>
Received on Thursday, 1 February 2024 12:33:15 UTC