On Wednesday, February 19, 2025 at 3:34:23 AM UTC-8 Yoav Weiss (@Shopify) 
wrote:

On Thursday, February 13, 2025 at 5:50:24 AM UTC+1 Domenic Denicola wrote:

I'll refrain from giving formal LGTM to let more discussion settle, but I 
want to provide my API owner perspective that we should approve this 
without requiring the specification work to finish up.

Specifying this is unfortunately very complex. There have been multiple 
attempts (2015 <https://github.com/whatwg/html/pull/322>, 2018 
<https://github.com/whatwg/html/pull/3725>). Each time we have uncovered 
foundational issues in the HTML spec, or the service workers spec, or the 
interaction between them, which have made specifying the behavior 
rigorously difficult.

Over time, we've made significant progress on these foundations, e.g. the 
original 2015 attempt spawned the introduction of the now-foundational 
"environment" concept <https://github.com/whatwg/html/pull/1776>. And 1.5 
years ago we landed the big navigation and session history rewrite 
<https://github.com/whatwg/html/pull/6315>, which let Dom Farolino make a 
series of improvements 
<https://github.com/whatwg/html/pulls?q=is%3Apr+is%3Aclosed+author%3Adomfarolino+about%3A>
 to 
the srcdoc iframe specification in general.

I'm optimistic that we could now specify the behavior described in this 
Intent! ... With significant effort. And Monica, the new service worker 
spec editor, has recently indicated interest 
<https://github.com/whatwg/html/pull/3725#issuecomment-2638146186> in 
taking on that effort!

But I don't think we should block on that. The desired behavior has been 
known since 2015, and Firefox and Safari have mostly aligned on it.

I think we should aim for a good balance of effort and interop, by:

   - Putting extra effort into landing an exhaustive test suite, as part of 
   this intent
   - Updating Chromium to conform to that test suite, by approving this 
   intent
   - And then, asynchronously, focus on getting the spec updated, and 
   getting all browsers to converge on the edge cases that the test suite 
   uncovers.


*Regarding the test suite, can the Intent authors confirm that all the 
cases from this 2017 test suite PR 
<https://github.com/web-platform-tests/wpt/pull/4610> are included?* I want 
to make sure we have at least that much coverage.


Friendly ping on this question! :)

Yes, all the cases of* this 2017 test suite PR 
<https://github.com/web-platform-tests/wpt/pull/4610> *are covered by newly 
added wpt tests, and more. The added tests are 
at 
https://wpt.fyi/results/service-workers/service-worker/srcdoc-iframe.https.html.
 
Also updated chromestatus with the added tests link.

 


On Wednesday, February 12, 2025 at 12:24:24 PM UTC+9 Yoshisato Yanagisawa 
wrote:

Hi Chris,

Thanks for the reply.

2025年2月12日(水) 3:56 Chris Harrelson <chri...@chromium.org>:

Hi, comment below.

On Sun, Feb 9, 2025 at 10:52 PM Chromestatus <ad...@cr-status.appspotmail.c
om> wrote:

Contact emails lz...@microsoft.com, yyana...@chromium.org 

Explainer None 

Specification https://github.com/w3c/ServiceWorker/issues/765


This is an issue and not a specification. Is the srcdoc change in behavior 
here landed in the service worker specification?


That is true.  I found the following:
https://w3c.github.io/ServiceWorker/#control-and-use-window-client
Especially,

Note: Sandboxed 
<https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr-iframe-sandbox>
 iframe 
<https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element>s
 
without the sandboxing directives, allow-same-origin and allow-scripts, 
result in having the active service worker 
<https://html.spec.whatwg.org/multipage/webappapis.html#concept-environment-active-service-worker>
 value 
of null as their origin 
<https://html.spec.whatwg.org/multipage/browsers.html#concept-origin> is an 
opaque 
origin 
<https://html.spec.whatwg.org/multipage/browsers.html#concept-origin-opaque>
.
Will it work?
 

 



Summary 

Srcdoc context documents are currently not service worker clients and not 
covered by their parent’s service worker. That results in some 
discrepancies (e.g. Resource Timing reports the URLs that these document 
load, but service worker doesn’t intercept them). This aims to fix the 
discrepancies by creating service worker clients for srcdoc iframes and 
make them inherit parent's service worker controller.


Blink component Blink>ServiceWorker 
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EServiceWorker%22>
 

TAG review None 

TAG review status Not applicable 

Risks 


Interoperability and Compatibility 

There are basic consensus on spec discussion to make srcdoc iframes inherit 
parent's service worker controller: - https://github.com/w3c/Service
Worker/issues/765 - https://github.com/whatwg/html/pull/2809 - 
https://github.com/whatwg/html/pull/3725 - https://github.com/web-platfor
m-tests/wpt/pull/4610 and Firefox/Safari are already passing basic tests: - 
https://wpt.fyi/results/service-workers/service-worker/
about-blank-replacement.https.html?label=experimental&label=master&aligned 
("Nested about:srcdoc is controlled and ..." subtest). While - The actual 
spec PRs are not yet merged/finalized. - There are minor behevior 
differences regarding to sandbox attribute interaction (
https://chromium-review.googlesource.com/c/chromium/src/+/
6085871/comment/5e2b64cc_e0e5b3f1/) it's still beneficial to make Chromium 
catch up, to provide the basic consistent behavior across browsers.


*Gecko*: Shipped/Shipping (https://wpt.fyi/results/servi
ce-workers/service-worker/about-blank-replacement.https.
html?label=experimental&label=master&aligned) Passing basic WPT tests. 

*WebKit*: Shipped/Shipping (https://wpt.fyi/results/servi
ce-workers/service-worker/about-blank-replacement.https.
html?label=experimental&label=master&aligned) Passing basic WPT tests. 

*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 

With this feature, the srcdoc iframe and service worker interaction can be 
debugged the same way as other iframes. When it is controlled by a service 
worker, all the normal Service Worker APIs like 
navigator.serviceWorker.controller work for the frame the same way as other 
frames, and service worker APIs like clients.matchAll() work the same way 
for this type of clients.


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 

Basic test at https://wpt.fyi/results/service-workers/service-worker/
about-blank-replacement.https.html?label=experimental&label=master&aligned 
As part of the feature work, we are adding a new srcdoc-iframe.https.html 
test in the same folder.


Flag name on about://flags None 

Finch feature name ServiceWorkerSrcdocSupport 

Requires code in //chrome? False 

Tracking bug https://crbug.com/41411856 

Estimated milestones Shipping on desktop 135 Shipping on Android 135 Shipping 
on WebView 135 

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/featu
re/5128675425779712?gate=5164246479142912 

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/ch
romium.org/d/msgid/blink-dev/67a9a231.2b0a0220.2908d.03c1.GAE%40google.com 
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/67a9a231.2b0a0220.2908d.03c1.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/1845551d-cf76-43c8-aaab-121299b1a49bn%40chromium.org.

Reply via email to