SW registration control via GET and cookies
This commit is contained in:
parent
9f0aeae52a
commit
e3cd470b55
|
@ -747,6 +747,19 @@ function init_class($enableDebugger=true, $headers=true)
|
|||
}
|
||||
bdump(get_included_files());
|
||||
bdump($translations->loaded_translations);
|
||||
|
||||
if(isset($_GET["disableSW"])){
|
||||
setcookie("disableServiceWorkerInstallation", true);
|
||||
$tools->redirect("?");
|
||||
} else if(isset($_GET["enableSW"])){
|
||||
setcookie("disableServiceWorkerInstallation", false, time() - 3600);
|
||||
setcookie("forceServiceWorkerInstallation", false, time() - 3600);
|
||||
$tools->redirect("?");
|
||||
} else if(isset($_GET["forceSW"])){
|
||||
setcookie("disableServiceWorkerInstallation", false, time() - 3600);
|
||||
setcookie("forceServiceWorkerInstallation", true);
|
||||
$tools->redirect("?");
|
||||
}
|
||||
}
|
||||
|
||||
function t($string, $echo=true)
|
||||
|
|
|
@ -14,7 +14,7 @@ import 'jquery-pjax';
|
|||
console.log("Commit: "+process.env.GIT_VERSION);
|
||||
console.log("Date: "+process.env.GIT_AUTHOR_DATE);
|
||||
console.log("Bundle mode: "+process.env.BUNDLE_MODE);
|
||||
console.log("Bundle date: "+process.env.BUNDLE_DATE);
|
||||
console.log("Bundle date: "+new Date(process.env.BUNDLE_DATE).toISOString());
|
||||
|
||||
$(document).pjax('a:not(.pjax_disable)', '#content', {timeout: 100000});
|
||||
$(document).on('pjax:start', function() {
|
||||
|
@ -54,14 +54,21 @@ $( document ).ajaxError(function(event, xhr, settings, error) {
|
|||
console.log(settings);
|
||||
});
|
||||
|
||||
var installServiceWorker = true;
|
||||
if (getCookie("authenticated")) {
|
||||
var installServiceWorker = true;
|
||||
if(window.skipServiceWorkerInstallation !== undefined){ //if you want to disable SW for ex via greasyfork userscript
|
||||
installServiceWorker = false;
|
||||
}
|
||||
if(getCookie("disableServiceWorkerInstallation")){
|
||||
console.log("Skipping ServiceWorker installation because cookie 'disableServiceWorkerInstallation' exists");
|
||||
installServiceWorker = false;
|
||||
}
|
||||
if ('serviceWorker' in navigator) {
|
||||
if ('connection' in navigator && navigator.connection.saveData && !getCookie("forceServiceWorkerInstall")) {
|
||||
if ('connection' in navigator && navigator.connection.saveData && !getCookie("forceServiceWorkerInstallation")) {
|
||||
console.log("Skipping ServiceWorker installation because saveData is enabled");
|
||||
installServiceWorker = false;
|
||||
}
|
||||
if ('storage' in navigator && 'estimate' in navigator.storage && !getCookie("forceServiceWorkerInstall")){
|
||||
if ('storage' in navigator && 'estimate' in navigator.storage && !getCookie("forceServiceWorkerInstallation")){
|
||||
navigator.storage.estimate().then(quota => {
|
||||
const requiredMemory = 3 * 1e+6;
|
||||
if (quota < requiredMemory) {
|
||||
|
|
|
@ -8,6 +8,44 @@
|
|||
<meta name="google" content="notranslate">
|
||||
<meta name="robots" content="none">
|
||||
<link rel="manifest" href="manifest.webmanifest">
|
||||
{% if delete_caches %}
|
||||
<script>
|
||||
//from https://stackoverflow.com/a/57149239
|
||||
if ('caches' in window) {
|
||||
console.log("Deleting caches...");
|
||||
caches.keys()
|
||||
.then(function(keyList) {
|
||||
Promise.all(keyList.map(function(key) {
|
||||
caches.delete(key);
|
||||
console.log("deleted cache: "+key);
|
||||
}));
|
||||
});
|
||||
}
|
||||
/*{% if not delete_service_workers %}*/
|
||||
location.href="?";
|
||||
/*{% endif %}*/
|
||||
</script>
|
||||
{% endif %}
|
||||
{% if delete_service_workers %}
|
||||
<script>
|
||||
//from https://stackoverflow.com/a/47515250
|
||||
if(window.navigator && navigator.serviceWorker) {
|
||||
console.log("UnRegistering service workers...");
|
||||
navigator.serviceWorker.getRegistrations()
|
||||
.then(function(registrations) {
|
||||
for(let registration of registrations) {
|
||||
console.log("deleted service worker:");
|
||||
console.log(registration);
|
||||
registration.unregister();
|
||||
}
|
||||
});
|
||||
location.href="?";
|
||||
}
|
||||
/*{% if delete_service_workers_and_disable %}*/
|
||||
document.cookie = "disableServiceWorkerInstallation=1";
|
||||
/*{% endif %}*/
|
||||
</script>
|
||||
{% endif %}
|
||||
<script src="{{ urlsoftware }}/resources/dist/{{ resource('main.js') }}"></script>
|
||||
{% if enable_technical_support and technical_support_open %}
|
||||
<!-- Smartsupp Live Chat script -->
|
||||
|
|
|
@ -55,6 +55,9 @@ function loadtemplate($templatename, $data, $requirelogin=true)
|
|||
if($requirelogin) {
|
||||
$user->requirelogin();
|
||||
}
|
||||
$data['delete_caches'] = isset($_GET["deleteCache"]) || isset($_GET["unregisterSW"]) || isset($_GET["unregisterSWandDisable"]);
|
||||
$data['delete_service_workers'] = isset($_GET["unregisterSW"]) || isset($_GET["unregisterSWandDisable"]);
|
||||
$data['delete_service_workers_and_disable'] = isset($_GET["unregisterSWandDisable"]);
|
||||
$data['owner'] = $database->getOption("owner");
|
||||
$data['urlsoftware'] = $database->getOption("web_url");
|
||||
$data['user'] = $user->info();
|
||||
|
|
Loading…
Reference in New Issue