mirror of
https://github.com/filebrowser/filebrowser.git
synced 2024-06-07 23:00:43 +00:00
02e22f4017
Former-commit-id: f1539e92838e1140679ef920b6371b9d391af69c [formerly c84baa55075fee51ebb721d6b6696370d3abbeb8] [formerly 9ed81811e74619df1adb92c12a50d37915eadb92 [formerly 98a92a3da0
]]
Former-commit-id: d84ec2952d31bd0bd1242be89487dd7b58db2749 [formerly 4cadf618b95922326d41a20d565d7e063afc1045]
Former-commit-id: 8bdba61ef5e95c8662ca27c0964ad9d91b3e8e8c
56 lines
2.3 KiB
JavaScript
56 lines
2.3 KiB
JavaScript
(function() {
|
|
'use strict';
|
|
|
|
// Check to make sure service workers are supported in the current browser,
|
|
// and that the current page is accessed from a secure origin. Using a
|
|
// service worker from an insecure origin will trigger JS console errors.
|
|
const isLocalhost = Boolean(window.location.hostname === 'localhost' ||
|
|
// [::1] is the IPv6 localhost address.
|
|
window.location.hostname === '[::1]' ||
|
|
// 127.0.0.1/8 is considered localhost for IPv4.
|
|
window.location.hostname.match(
|
|
/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
|
|
)
|
|
);
|
|
|
|
window.addEventListener('load', function() {
|
|
if ('serviceWorker' in navigator &&
|
|
(window.location.protocol === 'https:' || isLocalhost)) {
|
|
navigator.serviceWorker.register('{{ .BaseURL }}/_/service-worker.js')
|
|
.then(function(registration) {
|
|
// updatefound is fired if service-worker.js changes.
|
|
registration.onupdatefound = function() {
|
|
// updatefound is also fired the very first time the SW is installed,
|
|
// and there's no need to prompt for a reload at that point.
|
|
// So check here to see if the page is already controlled,
|
|
// i.e. whether there's an existing service worker.
|
|
if (navigator.serviceWorker.controller) {
|
|
// The updatefound event implies that registration.installing is set
|
|
const installingWorker = registration.installing;
|
|
|
|
installingWorker.onstatechange = function() {
|
|
switch (installingWorker.state) {
|
|
case 'installed':
|
|
// At this point, the old content will have been purged and the
|
|
// fresh content will have been added to the cache.
|
|
// It's the perfect time to display a "New content is
|
|
// available; please refresh." message in the page's interface.
|
|
break;
|
|
|
|
case 'redundant':
|
|
throw new Error('The installing ' +
|
|
'service worker became redundant.');
|
|
|
|
default:
|
|
// Ignore
|
|
}
|
|
};
|
|
}
|
|
};
|
|
}).catch(function(e) {
|
|
console.error('Error during service worker registration:', e);
|
|
});
|
|
}
|
|
});
|
|
})();
|