- 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