On Tue, Nov 26, 2024 at 4:20 PM Yoshisato Yanagisawa <yyanagis...@google.com>
wrote:

> Thanks for the response,
> Let me reply inline.
>
> 2024年11月19日(火) 15:56 Domenic Denicola <dome...@chromium.org>:
>
>>
>>
>> On Tue, Nov 19, 2024 at 2:15 PM Yoshisato Yanagisawa <
>> yyanagis...@google.com> wrote:
>>
>>>
>>>
>>> 2024年11月18日(月) 17:02 Domenic Denicola <dome...@chromium.org>:
>>>
>>>>
>>>>
>>>> On Friday, November 15, 2024 at 9:14:09 AM UTC+9 Chromestatus wrote:
>>>>
>>>> Contact emails yyanagis...@google.com
>>>>
>>>> Explainer None
>>>>
>>>> Specification https://w3c.github.io/ServiceWorker/#control-and-
>>>> use-worker-client
>>>>
>>>> Summary
>>>>
>>>> According to https://w3c.github.io/ServiceWorker/#control-and-
>>>> use-worker-client, workers should inherit controllers for the blob
>>>> URL. However, existing code allows only dedicated workers to inherit the
>>>> controller, and shared workers do not inherit the controller. This is the
>>>> fix to make Chromium behavior adjust to the specification. An enterprise
>>>> policy SharedWorkerBlobURLFixEnabled is available to control this feature.
>>>>
>>>>
>>>> Blink component Blink>Workers
>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EWorkers>
>>>>
>>>> TAG review None
>>>>
>>>> TAG review status Not applicable
>>>>
>>>> Risks
>>>>
>>>>
>>>> Interoperability and Compatibility
>>>>
>>>> This is a change to make the Chromium behavior aligned with the
>>>> specification, there should not be an interoperability issue. However,
>>>> there is a compatibility issue from the past Chromium. If a blob URL is
>>>> used for a SharedWorker script and a controller for the URL is mattered,
>>>> there is a behavior change because this change makes a controller
>>>> inherited. An enterprise policy was added to allow enterprise customers to
>>>> preserve the past Chromium behavior.
>>>>
>>>> Do you have any metrics on how many page loads this change might
>>>> impact? An enterprise policy seems like a good idea, but if the number of
>>>> page loads is high, we might want to consider a deprecation trial or
>>>> similar mechanism.
>>>>
>>>>
>>>
>>> Yes.  The I2S was proposed as the web facing change PSA (
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/hClP93e4MLk/m/SGXfxOZfAQAJ)
>>> before, and I gave up to go with the PSA due to the amount of the case that
>>> the blob URL is used as a SharedWorker script URL is too large.
>>> I revisited the metrics and saw 10-40% SharedWorker script URLs are blob
>>> URL depending on platform.
>>> Is it better to go with a deprecation trial?
>>>
>>
>> 10-40% is very high, so yes, we need to consider ways to find an upper
>> limit on the danger.
>>
>> My guess is that most pages will not have their behavior changed,
>> because, for example, their service worker JavaScript ignores non-https:
>> fetches. The fact that these pages probably work fine in Safari is also
>> helpful evidence.
>>
>> I would suggest two strategies:
>>
>>    - Use UKM or HTTP Archive to examine the top-N sites that trigger
>>    this UseCounter (maybe N = 20 or so is good). Confirm via code inspection
>>    or running with the flag flipped or similar techniques that there is no
>>    compat impact. Publish this data for the API owners to see.
>>
>>
> Sure.
> https://chromium-review.googlesource.com/c/chromium/src/+/6049677 to add
> UKM and UseCounter.
> Let's see the statistics after it is shipped.
>

Oh, my suggestion was to get data sooner, by using the existing use counter
with HTTP archive analysis
<https://www.chromium.org/blink/platform-predictability/compat-tools/>.
Then you don't have to wait for any code to roll out to stable.

>
>>    - Also do a deprecation trial to allow opting in to the old behavior.
>>    The UKM/HTTP archive analysis can increase our confidence that the 
>> breakage
>>    is low (like, if 0 or 1 out of 20 pages are broken, then the breakage is
>>    probably <1%). But it cannot give us enough precision to be confident, so
>>    having the escape hatch of the deprecation trial seems important.
>>
>> Just let me confirm if my understanding is correct.
> Does the deprecation trial mean the origin trial to preserve the legacy
> behavior?
> We enable the flag by default while starting the origin trial.  The site
> with the origin trial token can preserve the legacy behavior, right?
>

Yes, that's the idea! See this link
<https://www.chromium.org/blink/launching-features/#deprecation-trial>. I
guess the wording there is a bit confusing since you aren't "removing" a
feature, but instead changing how an existing feature works. I think it
should not matter much though. It is still closer to a deprecation trial
than an origin trial. For example, you do not need to write a specification
for the behavior that the trial enables, like you would with an origin
trial.


>
>
>> I'm sorry that this adds so much process for what is basically a bug fix.
>> It is possible there would be other ways to avoid it, for example by
>> creating a more precise use counter that detects "changed behavior". (But,
>> it is hard to imagine how to write the code for such a use counter... maybe
>> something about comparing response bytes??) However my guess is that the
>> time and effort of writing that precise use counter is probably more than
>> the effort in setting up a deprecation trial. So my advice is to pursue the
>> above approach.
>>
>>
>>>
>>>
>>>>
>>>>
>>>> *Gecko*: No signal
>>>>
>>>>
>>>> Can you ask Gecko for signals? I am especially curious why they haven't
>>>> updated to match the specification.
>>>>
>>>>
>>>
>>> Sure.  I have filed the mozilla's standard position for it.
>>> https://github.com/mozilla/standards-positions/issues/1113
>>>
>>>
>>>>
>>>>
>>>> *WebKit*: Shipped/Shipping
>>>>
>>>> *Web developers*: No signals
>>>>
>>>> *Other signals*:
>>>>
>>>> Ergonomics
>>>>
>>>> n/a
>>>>
>>>>
>>>> Security
>>>>
>>>> Since this is adjusting Chromium behavior to specification, there
>>>> should not be a security risk from a specification perspective. From the
>>>> implementation perspective, this change simply inherits existing
>>>> controller. There should not be any additional security risks with this
>>>> change.
>>>>
>>>>
>>>> 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?
>>>>
>>>> Since SharedWorker is not supported on Android yet, there is no risk on
>>>> Android WebView.
>>>>
>>>>
>>>> Debuggability
>>>>
>>>> n/a
>>>>
>>>>
>>>> Will this feature be supported on all six Blink platforms (Windows,
>>>> Mac, Linux, ChromeOS, Android, and Android WebView)? No
>>>>
>>>> Since SharedWorker is not supported in Android yet, the feature also
>>>> does not affect to Android.
>>>>
>>>>
>>>> Is this feature fully tested by web-platform-tests
>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>>> ? Yes
>>>>
>>>> https://wpt.fyi/results/service-workers/service-
>>>> worker/local-url-inherit-controller.https.html Same-origin blob URL
>>>> sharedworker should inherit service worker controller. Same-origin blob URL
>>>> sharedworker should intercept fetch(). The tests ensure a
>>>> ServiceWorkerController is inherited. Due to crbug.com/40364838,
>>>> Chromium does not pass the former test.
>>>>
>>>>
>>>> Flag name on about://flags None
>>>>
>>>> Finch feature name SharedWorkerBlobURLFix
>>>>
>>>> Requires code in //chrome? False
>>>>
>>>> Tracking bug https://crbug.com/324939068
>>>>
>>>> Estimated milestones Shipping on desktop 133
>>>>
>>>> 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/5137897664806912?gate=5147843735322624
>>>>
>>>> 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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra9fn%2B7i8%3DOh72j43C7nVeG4%3D850zaqZShgiaAhhTVBCpA%40mail.gmail.com.

Reply via email to