On the standards track: Yes
Is Experimental: No
Is Deprecated: No
In Chrome version 45 on 2015-09-01 Note: Starting with Chrome 46, update() returns a promise that resolves with 'undefined' if the operation completed successfully or there was no update, and rejects if update failed. If the new worker ran but installation failed, the promise still resolves. Formerly, it raised an exception. Before Chrome 48, this method always bypassed the browser cache. Starting with Chrome 48, it only bypasses the cache when the previous service worker check was more than twenty-four hours ago.
In Chrome Android version 45 on 2015-09-01 Note: Starting with Chrome Android 46, update() returns a promise that resolves with 'undefined' if the operation completed successfully or there was no update, and rejects if update failed. If the new worker ran but installation failed, the promise still resolves. Formerly, it raised an exception. Before Chrome Android 48, this method always bypassed the browser cache. Starting with Chrome Android 48, it only bypasses the cache when the previous service worker check was more than twenty-four hours ago.
In Edge version 17 on 2018-04-30
In Firefox version 44 on 2016-01-26
In Firefox for Android version 44 on 2016-01-26
Not in Internet Explorer
In Quest Browser version 5.0 on undefined Note: Starting with Quest Browser 5.0, update() returns a promise that resolves with 'undefined' if the operation completed successfully or there was no update, and rejects if update failed. If the new worker ran but installation failed, the promise still resolves. Formerly, it raised an exception. Before Quest Browser 5.0, this method always bypassed the browser cache. Starting with Quest Browser 5.0, it only bypasses the cache when the previous service worker check was more than twenty-four hours ago.
In Opera version 32 on 2015-09-15 Note: Starting with Opera 33, update() returns a promise that resolves with 'undefined' if the operation completed successfully or there was no update, and rejects if update failed. If the new worker ran but installation failed, the promise still resolves. Formerly, it raised an exception. Before Opera 35, this method always bypassed the browser cache. Starting with Opera 35, it only bypasses the cache when the previous service worker check was more than twenty-four hours ago.
In Opera Android version 32 on 2015-09-23 Note: Starting with Opera Android 33, update() returns a promise that resolves with 'undefined' if the operation completed successfully or there was no update, and rejects if update failed. If the new worker ran but installation failed, the promise still resolves. Formerly, it raised an exception. Before Opera Android 35, this method always bypassed the browser cache. Starting with Opera Android 35, it only bypasses the cache when the previous service worker check was more than twenty-four hours ago.
In Safari version 11.1 on 2018-04-12
In Safari on iOS version 11.3 on 2018-03-29
In Samsung Internet version 4.0 on 2016-03-11 Note: Starting with Samsung Internet 5.0, update() returns a promise that resolves with 'undefined' if the operation completed successfully or there was no update, and rejects if update failed. If the new worker ran but installation failed, the promise still resolves. Formerly, it raised an exception. Before Samsung Internet 5.0, this method always bypassed the browser cache. Starting with Samsung Internet 5.0, it only bypasses the cache when the previous service worker check was more than twenty-four hours ago.
In WebView Android version 45 on 2015-09-01 Note: Starting with WebView Android 46, update() returns a promise that resolves with 'undefined' if the operation completed successfully or there was no update, and rejects if update failed. If the new worker ran but installation failed, the promise still resolves. Formerly, it raised an exception. Before WebView Android 48, this method always bypassed the browser cache. Starting with WebView Android 48, it only bypasses the cache when the previous service worker check was more than twenty-four hours ago.
Not in WebView on iOS