Thanks for the LGTMs! On Wed, May 29, 2024 at 7:54 AM Daniel Bratell <brat...@sarasas.se> wrote:
> Deprecating seems fine, especially since it's a relatively new API and > less likely to be used on non-maintained sites, but removal seems a bit > premature even if done slowly. Would it be better to let it bake a few > milestones and see if a scary deprecation message threatening removal after > the summer drives the usage down? > I'm starting to get the feeling that this would be a good idea. The Enterprise folks on the chromestatus gate also asked for something similar - 3 milestones of warning period before the deprecation. I'm inclined to just do that - it feels safer, and I don't think there's a huge rush to turn this off. Especially with usage going in the right direction, instead of further up. So I've modified the chromestatus <https://chromestatus.com/feature/5081733588582400> to show a shipping milestone of M129. Does that work? And I'll add a big console error starting in M127. On Wed, May 29, 2024 at 1:22 AM Yoav Weiss (@Shopify) < yoavwe...@chromium.org> wrote: > Your questions prompted me to take a closer look at the sample sites still >>> hitting the use counter. I took a close look at the first 10 entries >>> listed, and I think I found perhaps where the big drop came from. Of those >>> ten sites, seven do not use getInnerHTML or getHTML at all. Likely not >>> coincidentally, all seven are Shopify sites. My guess would be that Shopify >>> very recently removed its usage of getInnerHTML? >>> >> > FWIW, internal code search brought up nothing. It's possible that this is > a 3P app > <https://shopify.dev/docs/apps/build/online-store/theme-app-extensions> that > changed their use. (or that I'm simply failing to find the relevant change > :D) > Thanks for checking that! It's always hard to figure out what happened after the fact like this. > The plan to ramp down usage is a good one, although as we previously >> discussed in a different thread, it may cause some debugging challenges for >> developers. It is worthwhile to also reach out to some of the developers >> whose sites you noticed would throw an exception -- just an FYI email that >> this feature is being removed. Given the fairly low usage, readily >> available fixes (via getHTML() or possibly innerHTML) and your commitment >> to monitor for breakages, this looks good to me. >> > I might want to tweak this plan now that we're extending by 2/3 milestones. Maybe now (after console warnings) it makes more sense to just disable in one shot? I'll try to reach out to the sites I noticed. Thanks, Mason > /Daniel > On 2024-05-29 10:22, Yoav Weiss (@Shopify) wrote: > > LGTM2 > > On Tue, May 28, 2024 at 11:10 PM Vladimir Levin <vmp...@chromium.org> > wrote: > >> >> >> On Tue, May 28, 2024 at 12:30 PM Mason Freed <mas...@chromium.org> wrote: >> >>> >>> >>> On Mon, May 27, 2024 at 8:15 AM Vladimir Levin <vmp...@chromium.org> >>> wrote: >>> >>>> Interoperability and Compatibility >>>>> >>>>> The use counter for getInnerHTML() ( >>>>> https://chromestatus.com/metrics/feature/timeline/popularity/3874) >>>>> peaked at 0.05% of page loads using this function as of January 2024, and >>>>> dropped precipitously toward 0.01% in May, 2024. This is presumably due to >>>>> the shipment of its replacement, getHTML(). >>>>> >>>> >>>> It's great to see the numbers reduce significantly. If the numbers are >>>> being migrated to getHTML() though I would have expected >>>> https://chromestatus.com/metrics/feature/timeline/popularity/4781 to >>>> grow by ~0.04 percentage points, but that one is still significantly lower >>>> (although growing). Is it possible that June 1 numbers would show a better >>>> balance? Do you by any chance know when the next data point is expected to >>>> be visible on chromestatus? >>>> >>>> I'm also assume people are using a readily available replacement as >>>> opposed to just not using getInnerHTML, but it would be nice if number >>>> supported that >>>> >>> >>> Great questions. So AFAIK the use counter plot for the current month is >>> a continuous aggregation. I.e. the 0.0168% I see today (May 28) is as of >>> the 28th, and will change tomorrow (slightly). Given that we're almost to >>> the end of the month, I wouldn't expect a ton of shift. So I think you >>> might be right that this isn't actually a shift to getHTML, but just a >>> shift away from getInnerHTML. See more below. >>> >>> Your questions prompted me to take a closer look at the sample sites >>> still hitting the use counter. I took a close look at the first 10 entries >>> listed, and I think I found perhaps where the big drop came from. Of those >>> ten sites, seven do not use getInnerHTML or getHTML at all. Likely not >>> coincidentally, all seven are Shopify sites. My guess would be that Shopify >>> very recently removed its usage of getInnerHTML? >>> >> > FWIW, internal code search brought up nothing. It's possible that this is > a 3P app > <https://shopify.dev/docs/apps/build/online-store/theme-app-extensions> > that changed their use. (or that I'm simply failing to find the relevant > change :D) > > >>> The real issue is that the remaining three sites *do* still use >>> getInnerHTML, and all three throw exceptions when the feature is disabled. >>> I can't perceive anything broken on the site, but the exception isn't a >>> good sign. A few interesting tidbits: one of the three does appear to >>> (properly) feature-detect getInnerHTML() yet an exception is still thrown >>> that might or might not be related. The other two do not feature detect, >>> and the exception is clear: "getInnerHTML is not a function". Very >>> interestingly, none of the three use getInnerHMTL for anything declarative >>> shadow dom related. They seem to just be using it as a way to get the >>> innerHTML value. All three seem to be hand-written JS, so it's possible the >>> sites were developed on Chrome in the last few years and the developer >>> didn't notice that they should have done foo=el.innerHTML instead of >>> foo=el.getInnerHTML(). >>> >>> Given that the use counter is very low (0.01%), I'd still like to push >>> ahead with this deprecation. The above sites likely represent interop >>> problems, since they'll break on other browsers already today. But I'd like >>> to revise my plan: instead of going immediately to 100% removal, I'd like >>> to use a slow ramp down over time, to monitor for reported breakage. >>> >>> Thoughts? >>> >> >> The plan to ramp down usage is a good one, although as we previously >> discussed in a different thread, it may cause some debugging challenges for >> developers. It is worthwhile to also reach out to some of the developers >> whose sites you noticed would throw an exception -- just an FYI email that >> this feature is being removed. Given the fairly low usage, readily >> available fixes (via getHTML() or possibly innerHTML) and your commitment >> to monitor for breakages, this looks good to me. >> >> LGTM1 >> >> >>> >>> Thanks, >>> Mason >>> >>> >>> >>>> >>>> While 0.01% still represents high usage for deprecation, the numbers >>>>> were significantly worse for the deprecation of the old `shadowroot` >>>>> attribute, and the removal of that feature generated zero bug reports. It >>>>> is my strong belief that since this feature is only shipped in Chrome, the >>>>> vast majority of usage is guarded by feature checks. So this deprecation >>>>> should be safer than it would seem from the numbers. I'd like to remove >>>>> this feature in M127 in code, with a killswitch (a re-enable switch >>>>> really) >>>>> in case of problems. >>>>> >>>>> >>>>> *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 >>>>> >>>>> >>>>> 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 >>>>> >>>>> Flag name on chrome://flags ElementGetInnerHTML >>>>> >>>>> Finch feature name ElementGetInnerHTML >>>>> >>>>> Requires code in //chrome? False >>>>> >>>>> Tracking bug https://crbug.com/1519972 >>>>> >>>>> Estimated milestones >>>>> Shipping on desktop 127 >>>>> Shipping on Android 127 >>>>> Shipping on WebView 127 >>>>> >>>>> 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/5081733588582400?gate=5088451454304256 >>>>> >>>>> 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%3DNeDjZJvRAcpSj2cAWi6uW7yYmDV8HdMkqQjFOS3q%3DidB9fQ%40mail.gmail.com >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM%3DNeDjZJvRAcpSj2cAWi6uW7yYmDV8HdMkqQjFOS3q%3DidB9fQ%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/CAM%3DNeDh_myM1eudBh_%3DeY4F9UZN9vZxRa9%2BmV9vKSR9Nh1iHhw%40mail.gmail.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM%3DNeDh_myM1eudBh_%3DeY4F9UZN9vZxRa9%2BmV9vKSR9Nh1iHhw%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/CADsXd2MvNLyYnrF2q%2BhEx8EAoiZsC_ws3Bj3%3DOw7K5m-hRAvDQ%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2MvNLyYnrF2q%2BhEx8EAoiZsC_ws3Bj3%3DOw7K5m-hRAvDQ%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/CAOmohSJ_LsKuzR2FezpC4cxyFsb5nUaG65LeidpyfSmFWVGJaQ%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSJ_LsKuzR2FezpC4cxyFsb5nUaG65LeidpyfSmFWVGJaQ%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/CAM%3DNeDhoYiq3D6HFupxGhQL1SOSKVUFD%3DxQJGXTamyDvPTDr2A%40mail.gmail.com.