Index: gc_lang/fr/webext/background.js ================================================================== --- gc_lang/fr/webext/background.js +++ gc_lang/fr/webext/background.js @@ -50,12 +50,15 @@ break; case "getOptions": case "getDefaultOptions": case "resetOptions": // send result to panel - browser.runtime.sendMessage(e.data); storeGCOptions(result); + if (bChrome) { + e.data.result = helpers.mapToObject(e.data.result); + } + browser.runtime.sendMessage(e.data); break; case "setOptions": case "setOption": storeGCOptions(result); break; @@ -264,15 +267,11 @@ */ 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; + dOptions = helpers.mapToObject(dOptions); } browser.storage.local.set({"gc_options": dOptions}); } function parseAndSpellcheckSelectedText (iTab, sText) { Index: gc_lang/fr/webext/manifest.json ================================================================== --- gc_lang/fr/webext/manifest.json +++ gc_lang/fr/webext/manifest.json @@ -33,10 +33,11 @@ "browser_style": false }, "background": { "scripts": [ + "grammalecte/helpers.js", "background.js" ] }, "content_scripts": [ Index: gc_lang/fr/webext/panel/main.js ================================================================== --- gc_lang/fr/webext/panel/main.js +++ gc_lang/fr/webext/panel/main.js @@ -149,20 +149,20 @@ setGCOptions(dSavedOptions.gc_options); } } function setGCOptions (dOptions) { + // dOptions is supposed to be a Map if (bChrome) { - // JS crap again. Chrome can’t store Map object. + // JS crap again. Chrome can’t store/send 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; } } }