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.