Sounds good - thanks for the explanation.

LGTM1

On 5/21/25 12:35 PM, Liang Zhao (REDMOND) wrote:

Most exception handlers just eat the exception, some output some not supported message. A few try to fallback to data: url, and if that still throws, some just eats the exception (output not support message) and other seems to mark inline service worker as not supported. Don’t see that how that not supported mark was used. It seems to me that the most direct impact of the exception handlers is to allow code after it to continue.

Liang

*From:*Mike Taylor <miketa...@chromium.org>
*Sent:* Wednesday, May 21, 2025 5:51 AM
*To:* Liang Zhao (REDMOND) <liang.z...@microsoft.com>; blink-dev <blink-dev@chromium.org> *Cc:* Philip Jägenstedt <foo...@chromium.org>; lzhao via Chromestatus <admin+lz...@cr-status.appspotmail.com> *Subject:* Re: [EXTERNAL] Re: [blink-dev] Intent to Ship: Fire error event instead of throwing for CSP blocked worker

Thank you for doing this work! One small question below, but this generally seems like it will be safe to land.

On 5/20/25 6:45 PM, 'Liang Zhao (REDMOND)' via blink-dev wrote:

    An update.
    https://chromestatus.com/metrics/feature/timeline/popularity/5356
    now has list of urls. I’ve tested those 110 urls and some sites
    collected by Edge and no change of behavior was observed.

    A few sites closed the connection and could not be tested and some
    sites request login and could only do very limited testing. For
    what I could test, no site behavior change was observed.

    Observations:

     1. Almost all blocked worker urls are blob: urls. Comments on one
        site probably explains why blob: urls are used: only same
        origin worker url is allowed, to workaround this restriction,
        for script libs hosted in their own site including cdn, the
        libs create a blob url for the remote worker script and then
        use that blob to create worker. As the script from the lib
        runs in the host page’s origin, blob is created with the
        hosting page’s origin and worker creation is allowed, except
        when CSP blocks it.
     2. Most blocked worker creation are related to “libs”. For
        example, WordPress’s wpTestEmojiSupports worker accounts for
        40 of the 110 urls, even https://devblogs.microsoft.com/ hits
        this. And crazyegg.com’s script accounts for 7 of the urls.
     3. This is indeed a meaningful behavior change to the scripts.
        Most of scripts has exception handlers, and only a few has
        error event handler or use timeout for message from worker to
        detect error (crazyegg uses timeout). However, most of the
        exception handlers doesn’t really do much.

Could you clarify what "doesn't... do much" means?

    4.
     5. I also loaded 2 sites into Firefox and didn’t see site payload
        different from Edge or Chrome.

    Liang

    *From:*'Liang Zhao' via blink-dev <blink-dev@chromium.org>
    <mailto:blink-dev@chromium.org>
    *Sent:* Friday, May 9, 2025 2:09 PM
    *To:* blink-dev <blink-dev@chromium.org>
    <mailto:blink-dev@chromium.org>
    *Cc:* Philip Jägenstedt <foo...@chromium.org>
    <mailto:foo...@chromium.org>; blin...@chromium.org
    <blink-dev@chromium.org> <mailto:blink-dev@chromium.org>; lzhao
    via Chromestatus <admin+lz...@cr-status.appspotmail.com>
    <mailto:admin+lz...@cr-status.appspotmail.com>
    *Subject:* [EXTERNAL] Re: [blink-dev] Intent to Ship: Fire error
    event instead of throwing for CSP blocked worker

    Thanks for taking another look at this. Will wait for a month to
    see whether we could get a list of URLs that hit the scenario to
    check them.

    The behavior (return a worker object and later firing an error
    event on it) already happen when loading the script failed. That
    is actually what CSP trying to simulate when blocking it, as if we
    failed to fetch the script.

    On Wednesday, May 7, 2025 at 8:21:15 AM UTC-7 Philip Jägenstedt wrote:

        Hi Liang,

        https://chromestatus.com/metrics/feature/timeline/popularity/5356
        is already somewhat high, but it is also an upper bound on the
        risk and probably not reflective of how many sites will be
        broken. Looking at a sample of sites that hit the use counter
        and seeing what the impact of the change is would be very
        helpful. If this isn't urgent, you could wait until there are
        example sites listed on chromestatus.com
        <http://chromestatus.com/>, or get a list of sites from Edge's
        UKM data. With a list of sites, checking ~20 of them at random
        and reporting your findings should be enough to make a call on
        this.

        Also, does the new behavior (returning a Worker object and
        later firing an error event on it) already happen for some
        other kind of error, so that it's likely already handled? That
        would also reduce the risk here.

        Best regards,

        Philip

        On Tue, May 6, 2025 at 1:34 AM lzhao via Chromestatus
        <admin...@cr-status.appspotmail.com> wrote:

            Added telemetry data as siggested for the scenario and
            data can be viewed at
            https://chromestatus.com/metrics/feature/timeline/popularity/5356.
            There are some hits, but no hits for top sites. And Safari
            has also shipped the behavior change.

--
            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 visit
            
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/68194b11.170a0220.4750a.00de.GAE%40google.com
            
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/68194b11.170a0220.4750a.00de.GAE%40google.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 visit
    
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/eacc0c6a-c89f-4eab-8d1f-3d084967db7fn%40chromium.org
    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/eacc0c6a-c89f-4eab-8d1f-3d084967db7fn%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 visit
    
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/SA6PR00MB22949F1B4952977C83E5A3C99E9FA%40SA6PR00MB2294.namprd00.prod.outlook.com
    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/SA6PR00MB22949F1B4952977C83E5A3C99E9FA%40SA6PR00MB2294.namprd00.prod.outlook.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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/62d11d09-5adc-4447-a35e-df01b1c2e288%40chromium.org.

Reply via email to