38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
/* global location, navigator, sessionStorage, window */
|
|
(function () {
|
|
if (!("serviceWorker" in navigator)) return;
|
|
|
|
var version = "docs-v3";
|
|
var workerUrl = "/sw.js?v=" + encodeURIComponent(version);
|
|
if (window.trustedTypes) {
|
|
try {
|
|
workerUrl = window.trustedTypes
|
|
.createPolicy("wrnexus-pwa-recovery", {
|
|
createScriptURL: function (value) {
|
|
return value;
|
|
},
|
|
})
|
|
.createScriptURL(workerUrl);
|
|
} catch {
|
|
// A previously-created policy can make creation fail; the same-origin
|
|
// string remains valid when Trusted Types enforcement is not active.
|
|
}
|
|
}
|
|
|
|
var reloading = false;
|
|
navigator.serviceWorker.addEventListener("controllerchange", function () {
|
|
var key = "wrnexus-pwa-controller-" + version;
|
|
if (reloading || sessionStorage.getItem(key)) return;
|
|
reloading = true;
|
|
sessionStorage.setItem(key, "1");
|
|
location.reload();
|
|
});
|
|
|
|
navigator.serviceWorker
|
|
.register(workerUrl, { updateViaCache: "none" })
|
|
.then(function (registration) {
|
|
return registration.update();
|
|
})
|
|
.catch(function () {});
|
|
})();
|