From 653b09636f2dd24e4fe41d1621b52a1e26a05892 Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Fri, 13 Jan 2017 17:14:34 +0000 Subject: [PATCH] svg.js: fix crash for firefox private mode (Forum #64541) git-svn-id: https://svn.fhem.de/fhem/trunk@13058 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/www/pgm2/svg.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/fhem/www/pgm2/svg.js b/fhem/www/pgm2/svg.js index fa7bd84dd..c5803b3a0 100644 --- a/fhem/www/pgm2/svg.js +++ b/fhem/www/pgm2/svg.js @@ -1,16 +1,24 @@ "use strict"; -var svgNS = "http://www.w3.org/2000/svg"; -var svg_initialized={}, lastHidden; -var svg_db, svg_dbtbl = "SVG_KEYVALUE", svg_pastedata; + +if(!svgNS) { + var svgNS = "http://www.w3.org/2000/svg"; + var svg_initialized={}, lastHidden; + var svg_db, svg_dbtbl = "SVG_KEYVALUE", svg_pastedata, svgCounter=0; +} function svg_initDb(nextFn) { if(window.indexedDB == undefined) return; - var dbreq = indexedDB.open("FHEM", 1) + var dbreq = indexedDB.open("FHEM", 1); dbreq.onsuccess = function(op) { svg_db = op.target.result; nextFn() } - dbreq.onerror = function(op) { log("indexedDB.open Error: " + op.message); } + dbreq.onerror = function(op) { + var oldfn = window.onerror; + window.onerror = undefined; // stupid FireFox private mode (Forum #64541) + log("indexedDB.open Error: " + op.message); + setTimeout(function(){window.onerror = oldfn;}, 100); + } dbreq.onupgradeneeded = function(op) { svg_db = op.target.result; svg_db.createObjectStore(svg_dbtbl, { keyPath:"key" }); @@ -353,6 +361,8 @@ svg_init(par) // also called directly from perl, in race condition } $(document).ready(function(){ + if(svgCounter++ > 0) // if svg.js is included twice, e.g. by Dashboard + return; svg_init(); // svg_initDb(function(){ svg_load("svg_pastedata", function(val) {svg_pastedata = val} );