Contact emails yyanagis...@chromium.org, sisidov...@chromium.org
Explainer https://github.com/WICG/service-worker-static-routing-api Specification https://github.com/w3c/ServiceWorker/pull/1701 Summary This API allows developers to configure the routing, and allows them to offload simple things ServiceWorkers do. If the condition matches, the navigation happens without starting ServiceWorkers or executing JavaScript, which allows web pages to avoid performance penalties due to ServiceWorker interceptions. Blink component Blink>ServiceWorker <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EServiceWorker> TAG review https://github.com/w3ctag/design-reviews/issues/863 TAG review status Issues addressed Chromium Trial Name ServiceWorkerStaticRouter Link to origin trial feedback summary https://docs.google.com/document/d/1mE3tngHQdz0s66Z_iIGksFxQui3taogP8pDafLUHMEg/edit#heading=h.ia9i7k1ocjnq Origin Trial documentation link https://github.com/WICG/service-worker-static-routing-api?tab=readme-ov-file#origin-trial Risks Interoperability and Compatibility Gecko: Positive (https://github.com/mozilla/standards-positions/issues/828) WebKit: No signal (https://github.com/WebKit/standards-positions/issues/206) Informal positive signals at TPAC, but no official standards position. Web developers: Positive (https://github.com/w3c/ServiceWorker/issues/1373) We see many positive signals and feedback from developers on the Github issue and other places (e.g. https://jakearchibald.com/2019/service-worker-declarative-router/#disqus_thread). Also, we have partners who participated in the OT (feedback <https://docs.google.com/document/d/1mE3tngHQdz0s66Z_iIGksFxQui3taogP8pDafLUHMEg/edit#heading=h.ia9i7k1ocjnq> ). 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? Authors don’t foresee any obvious issue with WebView. WebView supports ServiceWorkers, and any existing applications would not be affected unless they opt-in to the static routing API explicitly. Debuggability The registered router rules are visible via chrome://serviceworker-internals and the DevTools application panel. The matched rule can be seen in the size field of the DevTools network panel. 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 https://wpt.fyi/results/service-workers/service-worker/tentative/static-router?label=master&label=experimental&aligned https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/service-workers/service-worker/tentative/static-router/?q=service-workers%2Fservice-worker%2Ftentative%2Fstatic-router Flag name on chrome://flags #service-worker-static-router Finch feature name ServiceWorkerStaticRouter Requires code in //chrome? False Tracking bug https://bugs.chromium.org/p/chromium/issues/detail?id=1371756 Launch bug https://launch.corp.google.com/launch/4261120 Measurement The number of partners who started to use the API in their production. UKM's LCP and the partner's business metrics. UseCounter: ServiceWorkerStaticRouter_AddRoutes and ServiceWorkerStaticRouter_Evaluate Availability expectation Feature will eventually be available on Web Platform mainline. The URLPattern became the standard, and currently no concerns exist. Adoption expectation Feature is considered as a best practice to mitigate the ServiceWorker performance issue on its cold start. Several internal/external partners have already started trying the feature during the OT, and some of them see performance improvement. They are expected to use the feature within 12 months of launch in Chrome. Adoption plan We have already started the incubation process with several partners. We intend to move them forward to help them launch. By using the results as case studies, we intend to expand usage by helping libraries support the API. Non-OSS dependencies Does the feature depend on any code or APIs outside the Chromium open source repository and its open-source dependencies to function? n/a Estimated milestones Shipping on desktop 123 OriginTrial desktop last 121 OriginTrial desktop first 116 Shipping on Android 123 OriginTrial Android last 121 OriginTrial Android first 116 OriginTrial webView last 121 OriginTrial webView first 116 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). Limit the size of rules. https://github.com/WICG/service-worker-static-routing-api/issues/5 https://github.com/WICG/service-worker-static-routing-api/issues/6 If the limit is large enough to cover the relevant usages, it should not be a source of issues. Timing Info https://github.com/WICG/service-worker-static-routing-api/issues/19 The timing info for the API will be decided in a backward-compatible way. It should not be a source of issues. Making subsequent subresource request uses the navigation request’s source https://github.com/WICG/service-worker-static-routing-api/issues/7 This can be implemented as another condition, and should not break backward compatibility. https://github.com/WICG/service-worker-static-routing-api/blob/main/final-form.md tells conditions and sources that can be added in the future. The time condition and conditional syntaxes are not implemented yet. Also, some sources are considered to have fields. However, they should come as new conditions / sources, it should not break backward compatibility. Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5185352976826368 Links to previous Intent discussions Intent to prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/fyvsde2ay2A/m/RH9E8hB0AgAJ Intent to Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGMyg-abNsH2mfBw3%2BiaJgMn3SKCEzBzw0FuMudbmQ9XhkjEVg%40mail.gmail.com Intent to Extend Experiment: https://groups.google.com/a/chromium.org/g/blink-dev/c/gTy-fpBOXDM Intent to Ship: https://groups.google.com/a/chromium.org/g/blink-dev/c/gTy-fpBOXDM 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 on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPNB-6WZdPweNTAvcG4k3kuB9EzV2AbGVme4Byxzg%2BRKganb2Q%40mail.gmail.com.