On Wed, Mar 20, 2024 at 9:54 AM Philip Jägenstedt <foo...@chromium.org> wrote:
> LGTM1 to remove without deprecation > Cool, ok! If I get two more of those, then I'll go ahead with the removal. I'd still like to take it slowly and carefully, so I think I'd roll it out via Finch over a milestone or two. But if that's what the API owners prefer, that's fine by me. > I looked through all 24 sites listed in > https://chromestatus.com/metrics/feature/timeline/popularity/4455. 23 of > them are the code from client-shim.js minified in various ways, and one > site no longer has includeShadowRoots. > Wow, thanks for doing that work. I'm glad the subsequent 16 sites looked just like the top 8. As a side-note to that, I reached out to someone who is putting up a PR against client-shim.js to move to the new/correct feature detection. It sounded like in the next few days, maybe. Thanks, Mason > On Wed, Mar 20, 2024 at 5:11 PM Mike Taylor <miketa...@chromium.org> > wrote: > >> On 3/19/24 6:51 PM, Mason Freed wrote: >> >> >> >> On Tue, Mar 19, 2024 at 1:44 PM Mike Taylor <miketa...@chromium.org> >> wrote: >> >>> Hi Mason, >>> >>> Would you mind requesting reviews for the various shipping gates >>> (privacy, security, enterprise, etc.) in your chromestatus entry? >>> >> >> Definitely! But I only need to do that before I ship this, right? I.e. >> not required yet, while I’m just deprecating but not yet removing the >> feature? >> >> We discussed this in our owners meeting today, and we think it's probably >> useful to go ahead and do that now - Enterprise in particular would >> probably be very interested in knowing about a deprecation. And for the >> rest if you think they're N/A, it's not much work to request that. >> >> >> >> On 3/15/24 6:49 PM, Mason Freed wrote: >>> >>> Contact emails mas...@chromium.org >>> >>> Explainer None >>> >>> Specification https://github.com/whatwg/html/pull/10139 >>> >>> Summary >>> >>> The includeShadowRoots argument was a never-standardized argument to the >>> DOMParser.parseFromString() function, which was there to allow imperative >>> parsing of HTML content that contains declarative shadow DOM. This was >>> shipped in M90 [1] as part of the initial shipment of declarative shadow >>> DOM. Since the standards discussion rematerialized in 2023, the shape of >>> DSD APIs changed, including this feature for imperative parsing. (See [2] >>> for more context on the standards situation and recent changes, and see [3] >>> and [4] for other related deprecations.) Now that a standardized version of >>> this API, in the form of setHTMLUnsafe() and parseHTMLUnsafe() will ship in >>> M124 ([5]), the non-standard includeShadowRoots argument needs to be >>> deprecated and removed. All usage should shift accordingly: Instead of: >>> (new DOMParser()).parseFromString(html,'text/html',{includeShadowRoots: >>> true}); this can be used instead: document.parseHTMLUnsafe(html); [1] >>> https://chromestatus.com/feature/5191745052606464 [2] >>> https://chromestatus.com/feature/5161240576393216 [3] >>> https://chromestatus.com/feature/5081733588582400 [4] >>> https://chromestatus.com/feature/6239658726391808 [5] >>> https://chromestatus.com/feature/6560361081995264 >>> >>> >>> Blink component Blink>DOM>ShadowDOM >>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EDOM%3EShadowDOM> >>> >>> Motivation >>> >>> Now that there is a standardized version of this API, it makes sense to >>> remove the non-standard, Chrome-only version of the API. >>> >>> >>> Initial public proposal None >>> >>> TAG review None >>> >>> TAG review status Not applicable >>> >>> Risks >>> >>> >>> Interoperability and Compatibility >>> >>> Because this is a removal of an API, there is some compat risk if sites >>> use the API without feature detection. Additionally, feature detection is a >>> bit difficult for this feature directly, and typical usage would instead >>> feature-detect the old `shadowroot` attribute. In that case, there should >>> be no breakage, since that attribute has since been removed. The use >>> counter [1] for this feature has unfortunately had a recent spike in usage, >>> peaking at just over 0.01% of page loads as of March, 2024. However, I >>> analyzed 8 of the top sites, and 8 of 8 are due to the exact same code >>> snippet, from AstroJS/Lit [2]. And that code amounts to feature detection, >>> which as-written will properly detect the lack of `includeShadowRoots` and >>> fall back to other behavior. This, plus the lack of support in other >>> browsers, makes me less concerned about the compat risk here. [1] >>> https://chromestatus.com/metrics/feature/timeline/popularity/4455 [2] >>> https://github.com/withastro/astro/blob/main/packages/integrations/lit/client-shim.js >>> >>> >>> *Gecko*: No signal >>> >>> *WebKit*: No signal >>> >>> *Web developers*: No signals >>> >>> *Other signals*: >>> >>> 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 >>> >>> >>> Is this feature fully tested by web-platform-tests >>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>> ? Yes >>> >>> Tested via this WPT: >>> https://wpt.fyi/results/shadow-dom/declarative/declarative-shadow-dom-opt-in.html >>> which fails because `includeShadowRoots` is non-standard. This is the only >>> test failing within the Interop2024 Declarative Shadow DOM section, due to >>> this deprecation not being completed yet. >>> >>> >>> Flag name on chrome://flags >>> >>> Finch feature name None >>> >>> Non-finch justification None >>> >>> Requires code in //chrome? False >>> >>> Estimated milestones >>> Shipping on desktop 129 >>> DevTrial on desktop 125 >>> Shipping on Android 129 >>> DevTrial on Android 125 >>> Shipping on WebView 129 >>> >>> Link to entry on the Chrome Platform Status >>> https://chromestatus.com/feature/5116094370283520 >>> >>> 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+unsubscr...@chromium.org. >>> To view this discussion on the web visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM%3DNeDhoX1h-FiR6p9tjuOCxhb1iXVciuQ%2BH4%3DHnzdb9M4rGKQ%40mail.gmail.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM%3DNeDhoX1h-FiR6p9tjuOCxhb1iXVciuQ%2BH4%3DHnzdb9M4rGKQ%40mail.gmail.com?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/ed23f647-4779-4a1a-a7d9-5a6447ae099d%40chromium.org >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/ed23f647-4779-4a1a-a7d9-5a6447ae099d%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/CAM%3DNeDgCKeAMnvN20COWT1AMx6YPCwTAtCOJVsnh01BLGjiRHw%40mail.gmail.com.