On 2/12/25 4:43 PM, 'Dave Risney' via blink-dev wrote:
Contact emails
david.ris...@microsoft.com <mailto:david.ris...@microsoft.com>, hirosh...@chromium.org <mailto:hirosh...@chromium.org>

Explainer
None

Specification
https://www.w3.org/TR/service-workers/#client-url <https://www.w3.org/TR/service-workers/#client-url>

Summary
Modify the service worker Client.url property to ignore document URL changes via history.pushState() and other similar history APIs. The Client.url property is intended to be the creation URL of the HTML document which ignores such changes.


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

TAG review
None: this is a bug fix change to an existing API surface area.

TAG review status
Not applicable

Risks


Interoperability and Compatibility
The service worker spec says that the Client.url property should be the creation URL of the document which ignores changes made via history.pushState and similar, rather than the URL which includes such changes. Firefox and Safari match the standard. Chromium currently uses the document URL. Changing Chromium behavior to match the standard could have compatibility issues for existing web content that expects to see the existing Chromium behavior of history.pushState API changes applying to the Client.url property.
Can you help us estimate the compatibility risk here? One way might be to find sites or apps (maybe via GitHub? HTTP Archive?) that are working around this difference, so we can get a sense of what code paths might or might not be affected.


/Gecko/: Shipped/Shipping (https://results.web-platform-tests.org/results/service-workers/service-worker/clients-matchall-client-types.https.html?label=experimental&label=master&aligned&q=service-workers%2Fservice-worker%2Fclients-matchall-client-types.https <https://results.web-platform-tests.org/results/service-workers/service-worker/clients-matchall-client-types.https.html?label=experimental&label=master&aligned&q=service-workers%2Fservice-worker%2Fclients-matchall-client-types.https>)

/WebKit/: Shipped/Shipping (https://results.web-platform-tests.org/results/service-workers/service-worker/clients-matchall-client-types.https.html?label=experimental&label=master&aligned&q=service-workers%2Fservice-worker%2Fclients-matchall-client-types.https <https://results.web-platform-tests.org/results/service-workers/service-worker/clients-matchall-client-types.https.html?label=experimental&label=master&aligned&q=service-workers%2Fservice-worker%2Fclients-matchall-client-types.https>)

/Web developers/: Positive (https://issues.chromium.org/issues/41405003 <https://issues.chromium.org/issues/41405003>) Web developers have noticed and had to deal with this bug: * https://github.com/w3c/ServiceWorker/issues/1515 <https://github.com/w3c/ServiceWorker/issues/1515> * https://issues.chromium.org/issues/41405003 <https://issues.chromium.org/issues/41405003>

/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
This Web Platform test below validates aspects of the service worker Client API. Currently Chromium is failing this test because the Client.url is the document's URL when it should be the creation URL which ignores document URL changes via the history API. https://results.web-platform-tests.org/results/service-workers/service-worker/clients-matchall-client-types.https.html?label=experimental&label=master&aligned&q=service-workers%2Fservice-worker%2Fclients-matchall-client-types.https <https://results.web-platform-tests.org/results/service-workers/service-worker/clients-matchall-client-types.https.html?label=experimental&label=master&aligned&q=service-workers%2Fservice-worker%2Fclients-matchall-client-types.https>
FWIW, it takes some digging to understand how this matchAll test failure is realted to Client.url. Do we plan to add a more explicit test that reads client.url after pushState() and asserts something useful?


Flag name on about://flags
None

Finch feature name
ServiceWorkerClientUrlIsCreationUrl

Requires code in //chrome?
False

Tracking bug
https://issues.chromium.org/issues/41337436 <https://issues.chromium.org/issues/41337436>

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/feature/4996996949344256?gate=6527947635425280 <https://chromestatus.com/feature/4996996949344256?gate=6527947635425280>

--
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/SA6PR00MB235659A2F02466574F2E65478BFC2%40SA6PR00MB2356.namprd00.prod.outlook.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/SA6PR00MB235659A2F02466574F2E65478BFC2%40SA6PR00MB2356.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/18657c62-249a-4446-87b4-b7ebb8a16402%40chromium.org.

Reply via email to