Also LGTM, thank you for the analysis Yoshisato!

Rick

On Thu, May 7, 2026 at 3:49 PM Mike Taylor <[email protected]> wrote:

> Thank you, LGTM3
> On 5/7/26 11:30 a.m., Vladimir Levin wrote:
>
> LGTM2
>
> On Thu, May 7, 2026 at 11:19 AM 'Chris Harrelson' via blink-dev <
> [email protected]> wrote:
>
>> Thanks for that testing information. I think that's enough testing to
>> support shipping this change.
>>
>> LGTM1
>>
>> On Thu, May 7, 2026 at 3:30 AM 'Yoshisato Yanagisawa' via blink-dev <
>> [email protected]> wrote:
>>
>>> Sorry for the slow reply,
>>>
>>> Regarding the testing for this feature: We identified sites using data
>>> URL Dedicated Workers (
>>> https://chromestatus.com/metrics/feature/timeline/popularity/5568) and
>>> Shared Workers (
>>> https://chromestatus.com/metrics/feature/timeline/popularity/5569).
>>>
>>> I inspected whether these sites use BroadcastChannel, localStorage,
>>> indexedDB, or self.origin.  For 63 sites, no *Workers started for a few
>>> seconds after page load.  For the remaining 119 sites, no issues were
>>> detected. We performed dynamic inspection (injecting a trap) on more than
>>> half of them.
>>>
>>> Debuggability depends on the API the page uses:
>>>
>>>    - If they use the storage API, a SecurityError should occur, which
>>>    is easy to detect.
>>>    - If they use BroadcastChannel, it will silently fail.
>>>    - If they use self.origin, it will return null. This is easy to
>>>    detect, although the change is implicit.
>>>
>>> The good news for BroadcastChannel is that its usage for this specific
>>> case appears to be very small now (
>>> https://chromestatus.com/metrics/feature/timeline/popularity/5856).
>>>
>>> I hope this addresses your concerns regarding the safety of this change
>>> in non-enterprise environments.
>>>
>>> 2026年5月7日(木) 0:16 Vladimir Levin <[email protected]>:
>>>
>>>> To add to Rick's question: do we know of valid cases that would be
>>>> broken by this change? If so, what are the mitigations authors need to take
>>>> to not be broken?
>>>>
>>>> Thanks!
>>>> Vlad
>>>>
>>>> On Wednesday, May 6, 2026 at 10:04:08 AM UTC-4 Rick Byers wrote:
>>>>
>>>>> What's the failure mode? Is there a clear error shown on the console
>>>>> and available to window.onerror which would enable a developer to easily
>>>>> debug and correct this, and locate the enterprise policy via a web search?
>>>>> It does seem like we need to be making this change, and aligning with
>>>>> Firefox and Safari suggests the non-enterprise risk is probably fairly low
>>>>> (though WebView is still a potential concern). But as long as we have done
>>>>> everything reasonable to make debuggability
>>>>> <https://docs.google.com/document/d/1RC-pBBvsazYfCNNUSkPqAVpSpNJ96U8trhNkfV0v9fk/edit?tab=t.0#heading=h.2vhygov7rgj5>
>>>>> high, my sense is we should just go for it. It's not like we have a great
>>>>> other option if we find some sites are broken by it, we need to fix this
>>>>> hole right?
>>>>>
>>>>> On Fri, May 1, 2026 at 8:57 AM Mike Taylor <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> On 4/30/26 4:53 a.m., Chromestatus wrote:
>>>>>>
>>>>>> *Contact emails*
>>>>>> [email protected]
>>>>>>
>>>>>> *Explainer*
>>>>>> *No information provided*
>>>>>>
>>>>>> *Specification*
>>>>>>
>>>>>> https://html.spec.whatwg.org/multipage/workers.html#script-settings-for-workers
>>>>>>
>>>>>> *Summary*
>>>>>> Assigns a unique opaque origin to Dedicated and Shared Workers
>>>>>> created from data: URLs, rather than inheriting the security origin of
>>>>>> their creator. This alignment with the HTML specification enhances 
>>>>>> security
>>>>>> by isolating these workers from the creator's same-origin state, 
>>>>>> preventing
>>>>>> them from accessing sensitive data via mechanisms like BroadcastChannel 
>>>>>> or
>>>>>> same-origin storage. To maintain correct isolation boundaries, these
>>>>>> workers still reside within the same storage partition (e.g., by 
>>>>>> preserving
>>>>>> the top-level site or nonce) as their creator. See:
>>>>>> https://html.spec.whatwg.org/multipage/workers.html#script-settings-for-workers
>>>>>> Step 3.
>>>>>>
>>>>>> *Blink component*
>>>>>> Blink>Workers
>>>>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EWorkers%22>
>>>>>>
>>>>>> *Web Feature ID*
>>>>>> Missing feature
>>>>>>
>>>>>> *Motivation*
>>>>>> Currently, Dedicated and Shared Workers created from data: URLs in
>>>>>> Chrome inherit the security origin of their creator, which deviates from
>>>>>> the HTML specification. This behavior allows these workers to access
>>>>>> sensitive same-origin resources, such as BroadcastChannel, LocalStorage,
>>>>>> and IndexedDB, potentially leading to data leakage where untrusted or
>>>>>> dynamically generated scripts can join a page's same-origin communication
>>>>>> state. This change aligns Chrome with the standard by assigning a unique
>>>>>> opaque origin to such workers, ensuring proper security isolation. It 
>>>>>> also
>>>>>> improves interoperability, as other major browser engines already follow
>>>>>> the specification by not inheriting the origin for data: URL workers. The
>>>>>> implementation maintains necessary isolation boundaries by preserving the
>>>>>> creator's storage partition (e.g., top-level site or nonce).
>>>>>>
>>>>>> *Initial public proposal*
>>>>>> *No information provided*
>>>>>>
>>>>>> *TAG review*
>>>>>> *No information provided*
>>>>>>
>>>>>> *TAG review status*
>>>>>> Pending
>>>>>>
>>>>>> *Goals for experimentation*
>>>>>> None
>>>>>>
>>>>>> *Risks*
>>>>>>
>>>>>>
>>>>>> *Interoperability and Compatibility*
>>>>>> Interoperability Risk: Low. This change actually improves
>>>>>> interoperability by aligning Chrome's behavior with the HTML 
>>>>>> specification
>>>>>> and other major browser engines, such as Firefox and Safari, which 
>>>>>> already
>>>>>> assign opaque origins to data: URL dedicated and shared workers. Chrome 
>>>>>> is
>>>>>> currently the outlier by allowing origin inheritance in this scenario.
>>>>>> Compatibility Risk: Moderate. The primary risk is that data: URL 
>>>>>> dedicated
>>>>>> and shared workers will no longer be same-origin with their creator. This
>>>>>> will break sites that rely on these workers to access same-origin
>>>>>> resources, such as joining a BroadcastChannel associated with the 
>>>>>> creator's
>>>>>> origin or accessing same-origin storage like LocalStorage and IndexedDB.
>>>>>> Use counters indicate that approximately 0.13% of page loads use data: 
>>>>>> URL
>>>>>> dedicated workers (
>>>>>> https://chromestatus.com/metrics/feature/timeline/popularity/5568),
>>>>>> and 0.01% use data: URL shared workers (
>>>>>> https://chromestatus.com/metrics/feature/timeline/popularity/5569).
>>>>>> To mitigate disruption, especially in enterprise environments, the change
>>>>>> is guarded by a feature flag (kDataUrlWorkerOpaqueOrigin) and will be
>>>>>> accompanied by an enterprise policy to serve as an escape hatch.
>>>>>>
>>>>>> Is there any way we can increase our confidence that this is a safe
>>>>>> change for non-enterprise environments? Have you been able to test any
>>>>>> sites with the feature enabled?
>>>>>>
>>>>>>
>>>>>> *Gecko*: Shipped/Shipping
>>>>>>
>>>>>> *WebKit*: Shipped/Shipping
>>>>>>
>>>>>> *Web developers*: No signals There are no specific signals from web
>>>>>> or framework developers at this stage. While the change impacts a small
>>>>>> percentage of page loads (0.13%), it is currently unclear how many
>>>>>> developers intentionally rely on the existing non-standard origin
>>>>>> inheritance behavior.
>>>>>>
>>>>>> *Other signals*:
>>>>>>
>>>>>> *Activation*
>>>>>> There are no activation risks for new users. For existing developers
>>>>>> who intentionally or unintentionally rely on data: URL dedicated and 
>>>>>> shared
>>>>>> workers sharing same-origin state, they will need to migrate to explicit
>>>>>> communication using postMessage() or use regular script URLs to maintain
>>>>>> same-origin access.
>>>>>>
>>>>>> *Security*
>>>>>> The change is a security improvement that prevents data leakage via
>>>>>> BroadcastChannel and storage. A key security consideration in the design
>>>>>> was ensuring that while the origin is made opaque, the worker still 
>>>>>> remains
>>>>>> within the same storage partition (preserving the top_level_site and 
>>>>>> nonce)
>>>>>> as its creator. This ensures that the worker cannot be used to bypass
>>>>>> existing isolation boundaries established by the parent context.
>>>>>>
>>>>>> *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?
>>>>>> *No information provided*
>>>>>>
>>>>>>
>>>>>> *Debuggability*
>>>>>> No new DevTools features are required. The change will be visible to
>>>>>> developers in the console or debugger as the worker's self.origin will
>>>>>> correctly report as "null". Existing debugging tools for workers and
>>>>>> BroadcastChannel remain functional and will reflect the new opaque 
>>>>>> origin.
>>>>>>
>>>>>> *Will this feature be supported on all six Blink platforms (Windows,
>>>>>> Mac, Linux, ChromeOS, Android, and Android WebView)?*
>>>>>> Yes
>>>>>> This feature is implemented in the core Chromium worker
>>>>>> infrastructure (within the content layer), which is shared across all
>>>>>> platforms. The logic for calculating the worker's storage key and 
>>>>>> renderer
>>>>>> origin for data: URLs is applied consistently to all Blink platforms,
>>>>>> ensuring uniform security behavior and specification compliance on 
>>>>>> Windows,
>>>>>> Mac, Linux, ChromeOS, Android, and Android WebView
>>>>>>
>>>>>> *Is this feature fully tested by web-platform-tests
>>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?*
>>>>>> No
>>>>>>
>>>>>> https://wpt.fyi/results/webmessaging/broadcastchannel/opaque-origin.html
>>>>>>
>>>>>> *Flag name on about://flags*
>>>>>> *No information provided*
>>>>>>
>>>>>> *Finch feature name*
>>>>>> kDataUrlWorkerOpaqueOrigin
>>>>>>
>>>>>> *Rollout plan*
>>>>>> Will ship enabled for all users
>>>>>>
>>>>>> *Requires code in //chrome?*
>>>>>> False
>>>>>>
>>>>>> *Tracking bug*
>>>>>> https://crbug.com/40051700
>>>>>>
>>>>>> *Measurement*
>>>>>> https://chromestatus.com/metrics/feature/timeline/popularity/5568
>>>>>> https://chromestatus.com/metrics/feature/timeline/popularity/5569
>>>>>>
>>>>>> *Estimated milestones*
>>>>>> Shipping on desktop 150
>>>>>> Shipping on Android 150
>>>>>> Shipping on WebView 150
>>>>>>
>>>>>> *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).
>>>>>> *No information provided*
>>>>>>
>>>>>> *Link to entry on the Chrome Platform Status*
>>>>>>
>>>>>> https://chromestatus.com/feature/6290352295247872?gate=5325345554300928
>>>>>>
>>>>>> 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 [email protected].
>>>>>> To view this discussion visit
>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69f31888.050a0220.11d88c.0845.GAE%40google.com
>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69f31888.050a0220.11d88c.0845.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 [email protected].
>>>>>>
>>>>> To view this discussion visit
>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/1a2a3cdb-8db5-4c78-adf7-9fe5cd8a17ce%40chromium.org
>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/1a2a3cdb-8db5-4c78-adf7-9fe5cd8a17ce%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 [email protected].
>>> To view this discussion visit
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPNB-6UO95aHWhJngFc4wyyycoEG8wzQkn7wHPapd--0v4Pwdw%40mail.gmail.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPNB-6UO95aHWhJngFc4wyyycoEG8wzQkn7wHPapd--0v4Pwdw%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 [email protected].
>> To view this discussion visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw-MENXKnr4bM4Yt8Gy9F8iVGQcYJ0M%2B%2Bf%3DDbZfSiRVHKQ%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw-MENXKnr4bM4Yt8Gy9F8iVGQcYJ0M%2B%2Bf%3DDbZfSiRVHKQ%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 [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY-9SYi2uXqerM44LUAqAf%3Dtk2zjJ_MCYfvTfehpLGyWrQ%40mail.gmail.com.

Reply via email to