I forgot to add, I agree with Mike that it would be valuable to add a more minimal web platform test for this specific behavior.
On Thursday, February 13, 2025 at 1:33:32 PM UTC+9 Domenic Denicola wrote: > LGTM1. > > I think there is a small compat risk here, but in my opinion it's > mitigated by the movement toward interop, i.e. the fact that Firefox and > Safari have been shipping this behavior for years. > > I tried to do some searching along the lines of what Mike suggests. GitHub > wasn't very useful ("client.url" is not a unique-enough string), but some > cases on StackOverflow would prefer the Firefox/Safari behavior, e.g. this > one > <https://stackoverflow.com/questions/45309959/service-worker-offline-support-with-pushstate-and-client-side-routing> > . > > I feel that as long as the team stays vigilant about triaging incoming > bugs to watch out for breakage, and uses Finch to flip this off if such > breakage happens, we should feel comfortable pushing forward with this sort > of bug fix. > > > On Thursday, February 13, 2025 at 10:25:20 AM UTC+9 Mike Taylor wrote: > > > On 2/12/25 4:43 PM, 'Dave Risney' via blink-dev wrote: > > Contact emails > david.ris...@microsoft.com, hirosh...@chromium.org > > Explainer > None > > Specification > 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) > > *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) > > *Web developers*: Positive (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://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 > > 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 > > 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 > > -- > 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/SA6PR00MB235659A2F02466574F2E6 > 5478BFC2%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/e9d48b3e-661e-427a-bd80-bae907f76b06n%40chromium.org.