> Like other JS language changes, I'm guessing we expect developers to use UA sniffing to know where it's safe to ship this syntax?
Yes -- given that this is about new syntax it's difficult to perform runtime feature detection: you would have to use a dynamic imports with data URLs, but that's async and doesn't play well with CSP. On Wednesday, January 10, 2024 at 3:57:39 PM UTC+1 Yoav Weiss wrote: > On Tue, Jan 9, 2024 at 7:14 PM Nicolò Ribaudo <nrib...@igalia.com> wrote: > >> We would like to ship this together with >> https://groups.google.com/a/chromium.org/g/blink-dev/c/8BbZ_NUVZ5Q/m/HBv8RHNXAAAJ >> >> (reflecting the updates to the proposal on the HTML/Fetch side), so that >> the new syntax already has the final semantics. >> >> Also, we are in parallel trying to remove the old 'assert' syntax of the >> proposal ( >> https://groups.google.com/a/chromium.org/g/blink-dev/c/ZHvzLaJZRvo/m/FgNDBjrtBQAJ >> ). >> >> On Tuesday, January 9, 2024 at 7:11:47 PM UTC+1 Nicolò Ribaudo wrote: >> >>> Contact emails nrib...@igalia.com, s...@chromium.org >>> >>> Explainer None >>> >>> Specification https://github.com/tc39/proposal-import-attributes >>> >>> Summary >>> >>> Import attributes[^1] are a JavaScript feature to allow annotating >>> import declarations, for example `import xxx from "mod" with { type: "json" >>> }'. Chrome originally shipped a previous version of the proposal (in M91) >>> using 'assert' as the keyword. This version has then been updated to use >>> 'with' due to some changes needed while integrating it with HTML for JSON >>> and CSS modules[^2]. [^1]: >>> https://github.com/tc39/proposal-import-attributes/ [^2]: >>> https://github.com/whatwg/html/issues/7233 >>> >>> >>> Blink component Blink>JavaScript>Language >>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EJavaScript%3ELanguage> >>> >>> >>> TAG review None >>> >>> TAG review status Not applicable >>> >>> Risks >>> >>> >>> Interoperability and Compatibility >>> >>> Other browsers either already implemented or are implementing this >>> feature, so we can expect wide compatibility. Chrome ships an older >>> deprecated version of the proposal, and we need to ship this new version to >>> be compatible with other browsers. >>> >>> > Like other JS language changes, I'm guessing we expect developers to use > UA sniffing to know where it's safe to ship this syntax? > > >> >>> *Gecko*: No signal >>> >>> *WebKit*: Shipped/Shipping ( >>> https://developer.apple.com/documentation/safari-release-notes/safari-17_2-release-notes#JavaScript) >>> >>> Shipped in Safari 17.2 >>> >>> *Web developers*: No signals >>> >>> *Other signals*: >>> >>> Security >>> >>> This feature addresses the security concerns raised in >>> https://github.com/WICG/webcomponents/issues/839 Other than that, there >>> are no security concerns related to this feature: >>> https://github.com/tc39/proposal-import-attributes/blob/master/tag-security-and-privacy.md >>> >>> >>> WebView application risks >>> >>> Does this intent deprecate or change behavior of existing APIs, such >>> that it has potentially high risk for Android WebView-based applications? >>> >>> None >>> >>> >>> Debuggability >>> >>> None >>> >>> >>> Will this feature be supported on all six Blink platforms (Windows, Mac, >>> Linux, ChromeOS, Android, and Android WebView)? Yes >>> >>> Is this feature fully tested by web-platform-tests >>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>> ? Yes >>> >>> This is an ECMAScript feature, and as such it's mostly tested in >>> Test262: - >>> https://github.com/tc39/test262/tree/main/test/language/module-code/import-attributes >>> >>> - >>> https://github.com/tc39/test262/tree/main/test/language/expressions/dynamic-import/import-attributes >>> >>> There are also WPT tests: - >>> https://github.com/web-platform-tests/wpt/tree/master/html/semantics/scripting-1/the-script-element/import-attributes >>> >>> >>> Flag name on chrome://flags --js-flags=--harmony-import-attributes >>> >>> Finch feature name kJavaScriptImportAttributes >>> >>> Requires code in //chrome? False >>> >>> Estimated milestones >>> >>> No milestones specified >>> >>> >>> Anticipated spec changes >>> >>> Open questions about a feature may be a source of future web compat or >>> interop issues. Please list open issues (e.g. links to known github issues >>> in the project for the feature specification) whose resolution may >>> introduce web compat/interop risk (e.g., changing to naming or structure of >>> the API in a non-backward-compatible way). >>> None >>> >>> Link to entry on the Chrome Platform Status >>> https://chromestatus.com/feature/5205869105250304 >>> >>> This intent message was generated by Chrome Platform Status >>> <https://chromestatus.com>. >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "blink-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to blink-dev+...@chromium.org. >> To view this discussion on the web visit >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/3eebfc80-19d1-4fd5-a638-fb0ec394574en%40chromium.org >> >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/3eebfc80-19d1-4fd5-a638-fb0ec394574en%40chromium.org?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4869fc01-1a16-47fe-920d-b9f76766cfb4n%40chromium.org.