Index: gc_core/js/helpers.js ================================================================== --- gc_core/js/helpers.js +++ gc_core/js/helpers.js @@ -72,11 +72,10 @@ // conversions objectToMap: function (obj) { let m = new Map(); for (let param in obj) { - //console.log(param + " " + obj[param]); m.set(param, obj[param]); } return m; }, Index: gc_lang/fr/webext/background.js ================================================================== --- gc_lang/fr/webext/background.js +++ gc_lang/fr/webext/background.js @@ -25,11 +25,11 @@ // https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent try { let {sActionDone, result, dInfo} = e.data; switch (sActionDone) { case "init": - browser.storage.local.set({"gc_options": result}); + storeGCOptions(result); break; case "parse": case "parseAndSpellcheck": case "parseAndSpellcheck1": case "getListOfTokens": @@ -51,15 +51,15 @@ case "getOptions": case "getDefaultOptions": case "resetOptions": // send result to panel browser.runtime.sendMessage(e.data); - browser.storage.local.set({"gc_options": result}); + storeGCOptions(result); break; case "setOptions": case "setOption": - browser.storage.local.set({"gc_options": result}); + storeGCOptions(result); break; default: console.log("[background] Unknown command: " + sActionDone); console.log(e.data); } @@ -260,10 +260,23 @@ /* Actions */ + +function storeGCOptions (dOptions) { + if (bChrome) { + // JS crap again. Chrome can’t store Map object. + let obj = {}; + for (let [k, v] of dOptions) { + obj[k] = v; + } + dOptions = obj; + } + browser.storage.local.set({"gc_options": dOptions}); +} + function parseAndSpellcheckSelectedText (iTab, sText) { // send message to the tab let xTabPort = dConnx.get(iTab); xTabPort.postMessage({sActionDone: "openGCPanel", result: null, dInfo: null, bEnd: false, bError: false}); // send command to the worker Index: gc_lang/fr/webext/panel/main.js ================================================================== --- gc_lang/fr/webext/panel/main.js +++ gc_lang/fr/webext/panel/main.js @@ -149,21 +149,20 @@ setGCOptions(dSavedOptions.gc_options); } } function setGCOptions (dOptions) { - console.log(typeof(dOptions)); - console.log(dOptions); - /*for (let [sOpt, bVal] of dOptions) { + if (bChrome) { + // JS crap again. Chrome can’t store Map object. + let m = new Map(); + for (let param in dOptions) { + m.set(param, dOptions[param]); + } + dOptions = m; + } + for (let [sOpt, bVal] of dOptions) { + console.log(sOpt + ": " + bVal); if (document.getElementById("option_"+sOpt)) { document.getElementById("option_"+sOpt).checked = bVal; } - }*/ - // JS bullshit never ends. For some reason, it’s not a Map anymore on Chrome! - for (let xOption of document.getElementsByClassName("gc_option")) { - console.log(xOption.id); - let sOpt = xOption.id.slice(7); - if (dOptions.has(sOpt)) { - xOption.checked = dOptions.get(sOpt); - } } }