Service Workers

From MozillaWiki
Jump to: navigation, search
Ambox outdated.png THIS PAGE MAY BE OUTDATED
This article is in parts, or in its entirety, outdated. Hence, the information presented on this page may be incorrect, and should be treated with due caution until this flag has been lifted. Help by editing the article, or discuss its contents on the talk page.

Service Workers are presently being implemented in Gecko. Biweekly calls (2015-08-12 is the next one) are held on Wednesdays at 8 AM Pacific in the WebAPI Vidyo room to discuss status and blockers for consumers. Email Andrew Overholt [:overholt] if you want to be added to the meeting invite or just show up.

Most people working on the implementation hang out in #content on IRC.

Implementation status

Lots of code has been written and much functionality exists. There are a variety of prefs you can flip in about:config to turn them on: dom.serviceWorkers.enabled, dom.serviceWorkers.interception.enabled, etc.

Filing bugs (in Core :: DOM: Service Workers) describing problems you have is highly appreciated.

An audit of call sites where existing networking security functionality can be affected by a Service Worker's interception is underway. The results of this are filtering into Bugzilla and the remaining blockers are tracked as below.

Shipping on Desktop (planned for 44) (bug 1059784)

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Bugs we should fix to be compatible with the specification (bug 1226983)

Full Query
ID Summary Status Assigned to Resolution
1170795 Calling FetchEvent.respondWith() with a malformed synthesized redirected response causes us to hit the network NEW
1183625 support fetch window option NEW
1187300 Verify if interception occurs for channels created by Downloads.jsm when possible NEW
1187328 service workers should not be able to make http requests when there is no browsing context NEW
1201160 Service workers violate SOP for "no-cors" CSS REOPENED
1203747 Performance timing API should record on Service Workers NEW
1209102 fetch() should not allow redirects to data URIs NEW
1228149 Return the same ServiceWorkerRegistration object from service worker APIs on workers NEW
1229061 Implement the correct window focusing behaviour when the user clicks a notification NEW
1248417 test and implement relative redirects behavior during service worker interception NEW
1255275 Return the same ServiceWorkerRegistration object from service worker APIs exposed from ServiceWorkerContainer on workers NEW
1263670 Consider reloading when a document restored from bfcache gets controlled by a different service worker NEW
1264180 Implement Client.ancestorOrigins REOPENED
1268323 service workers should not control https iframes nested under insecure documents NEW
1282426 fetch spec requires lower case headers, but UA added headers are mixed case NEW
1290950 intercept notification icon loads when opened from a service worker NEW
1291893 basic authorization header is not added to service worker fetch() network request NEW
1304382 unregister service workers if cookies are blocked for an origin NEW
1330319 Headers in Headers object not lexicographically sorted NEW
1330943 showNotification() promise fulfills too soon NEW
1339434 match spec change to remove skip-service-worker flag NEW
1340659 XHR in Worker scripts does not use correct referrer-policy NEW
1341301 Resending form post data is broken if a service worker is registered NEW
1342484 [meta] Support Fetch keepalive flag and enforce limit on inflight keepalive bytes NEW
1349589 Enable fetch cancellation by default on nightly NEW
1360870 Implement "module" service workers NEW
1362769 Private window shows notifications from the site in normal window UNCONFIRMED
1362824 A blob created from a fetch response does not correctly get type set UNCONFIRMED
1369476 PushEvent is not fired in e10s mode when there are no content processes running NEW
1378587 Default value for dom.serviceWorker.idle_timeout too agressive NEW
1384006 What's the right JSContext state to pass to cache::PutAll() in Cache::FetchHandler::ResolvedCallback ? NEW
1388774 Track total synthesized body size better during service worker interception NEW
1394102 FetchEvent.request.signal should be correctly aborted NEW
1402785 Require a user gesture for Notification.requestPermission() NEW
1409007 service worker update does not trigger if loading is blocked with X-Frame-Options:Deny NEW
1413615 consider allowing service workers when cookie policy is "keep until I close firefox" NEW
1415003 pass through SW should propagate outer network channel priority to the fetch() channel NEW
1417338 fetch sets wrong Content-Type header on redirects UNCONFIRMED
1418457 propagate the internal error code from Response to the outer intercepted channel NEW
1418489 observing a window is gone via Clients API should evict it from bfcache NEW
1426401 Consider persisting waiting worker state to disk and triggering an activate event on/after next browser start NEW
1428130 remove cookie permission preload after service worker code checks storage access in parent process. NEW
1430999 Service Workers can navigate uncontrolled clients UNCONFIRMED
1444944 Fetch API Body readers to not propagate underlying errors to Promise rejection NEW
1448979 service worker interception should propagate redirect count to enforce redirect limits NEW
1455077 investigate where service worker code should call NS_CheckContentLoadPolicy() NEW
1456105 Fetch: Content-Encoding decoding failure should be a TypeError NEW
1456479 Implement Request.isReloadNavigation NEW
1459781 service worker fetch event not happen when html generated from document.write NEW
1464739 Implement isHistoryNavigation attribute on Request UNCONFIRMED
1465074 Allow range requests to pass through a service worker NEW
1466438 Service Workers and uBlock/uMatrix shows the offline page NEW
1466499 Inline replies to web notifications should be supported UNCONFIRMED
1467454 cross-origin stylesheet load without "crossorigin" attribute treats service worker synthesized CORS response as opaque NEW
1467998 <script> element without "cross-origin" attribute treats service worker synthesized CORS response as opaque REOPENED
1487534 Implement FetchEvent.replacesClientId the "resulting" clientId (previously dubbed targetClientId) NEW

56 Total; 56 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Shipping on Fennec (aka Firefox for Android) (bug 1207262)

Full Query
ID Summary Status Assigned to Resolution
1210282 Intermittent android debug failures NEW

1 Total; 1 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Refactoring for n content processes (bug 1231208)

Full Query
ID Summary Status Assigned to Resolution
1314658 Update the security check in NeckoParent::GetValidatedAppInfo NEW
1355899 Stop eagerly transmitting the cookie permission to the content process for service workers NEW
1360255 Add a test for loading a service-worker managed document in a new process NEW
1429805 display service worker console messages on related windows in different child processes NEW
1432311 fetch() requests initiated by a serviceworker are missing in the network panel NEW
1472303 ServiceWorkerRegistration::Update() should block self-update during evaluation regardless of Inner implementation NEW
1514916 Decide what to do with currently-failing console monitoring tests in parent-intercept mode NEW
1604543 ServiceWorkerManager::ReportToAllClients needs to be updated for sw-e10s [syntax errors in script evaluation receive the reported-to-content MSG_SW_INSTALL_ERROR but not the syntax errors] NEW

8 Total; 8 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Shipping for web content on Boot2Gecko (aka Firefox OS) (bug 1207265)

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Shipping for Gaia (bug 1131322)

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Things we likely won't get to in the first release supporting Service Workers (bug 1173500)

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Demos/examples