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?

/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/ce7a1921-b25b-4280-8eeb-80c6822a730a%40sarasas.se.

Reply via email to