Index: gc_core/js/helpers.js ================================================================== --- gc_core/js/helpers.js +++ gc_core/js/helpers.js @@ -56,10 +56,11 @@ let { Cc, Ci } = require("chrome"); xRequest = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(); xRequest.QueryInterface(Ci.nsIXMLHttpRequest); } xRequest.open('GET', spf, false); // 3rd arg is false for synchronous, sync is acceptable in workers + xRequest.overrideMimeType('text/json'); xRequest.send(); return xRequest.responseText; } catch (e) { this.logerror(e); Index: gc_lang/fr/modules-js/conj.js ================================================================== --- gc_lang/fr/modules-js/conj.js +++ gc_lang/fr/modules-js/conj.js @@ -3,24 +3,30 @@ "use strict"; ${map} + +if (typeof(require) !== 'undefined') { + var helpers = require("resource://grammalecte/helpers.js"); +} var conj = { _lVtyp: [], _lTags: [], _dPatternConj: {}, _dVerb: {}, + isInit: false, init: function (sJSONData) { try { let _oData = JSON.parse(sJSONData); this._lVtyp = _oData.lVtyp; this._lTags = _oData.lTags; this._dPatternConj = _oData.dPatternConj; this._dVerb = _oData.dVerb; + this.isInit = true; } catch (e) { console.error(e); } }, @@ -476,23 +482,24 @@ } } // Initialization -if (typeof(browser) !== 'undefined') { +if (!conj.isInit && typeof(browser) !== 'undefined') { // WebExtension (but not in Worker) conj.init(helpers.loadFile(browser.extension.getURL("grammalecte/fr/conj_data.json"))); -} else if (typeof(require) !== 'undefined') { +} else if (!conj.isInit && typeof(require) !== 'undefined') { // Add-on SDK and Thunderbird - let helpers = require("resource://grammalecte/helpers.js"); conj.init(helpers.loadFile("resource://grammalecte/fr/conj_data.json")); -} else if (typeof(self) !== 'undefined' && typeof(self.port) !== 'undefined' && typeof(self.port.on) !== "undefined") { +} else if ( !conj.isInit && typeof(self) !== 'undefined' && typeof(self.port) !== 'undefined' && typeof(self.port.on) !== "undefined") { // used within Firefox content script (conjugation panel). // can’t load JSON from here, so we do it in ui.js and send it here. self.port.on("provideConjData", function (sJSONData) { conj.init(sJSONData); }); +} else if (conj.isInit){ + console.log("Module conj déjà initialisé"); } else { console.log("Module conj non initialisé"); } Index: gc_lang/fr/modules-js/mfsp.js ================================================================== --- gc_lang/fr/modules-js/mfsp.js +++ gc_lang/fr/modules-js/mfsp.js @@ -15,17 +15,19 @@ // dictionary of words with uncommon plurals (-x, -ux, english, latin and italian plurals) and tags to generate them _dMiscPlur: new Map(), // dictionary of feminine forms and tags to generate masculine forms (singular and plural) _dMasForm: new Map(), + isInit: false, init: function (sJSONData) { try { let _oData = JSON.parse(sJSONData); this._lTagMiscPlur = _oData.lTagMiscPlur; this._lTagMasForm = _oData.lTagMasForm; this._dMiscPlur = helpers.objectToMap(_oData.dMiscPlur); this._dMasForm = helpers.objectToMap(_oData.dMasForm); + this.isInit = true; } catch (e) { console.error(e); } }, @@ -98,16 +100,18 @@ } }; // Initialization -if (typeof(browser) !== 'undefined') { +if (!mfsp.isInit && typeof(browser) !== 'undefined') { // WebExtension mfsp.init(helpers.loadFile(browser.extension.getURL("grammalecte/fr/mfsp_data.json"))); -} else if (typeof(require) !== 'undefined') { +} else if (!mfsp.isInit && typeof(require) !== 'undefined') { // Add-on SDK and Thunderbird mfsp.init(helpers.loadFile("resource://grammalecte/fr/mfsp_data.json")); +} else if (mfsp.isInit){ + console.log("Module mfsp déjà initialisé"); } else { console.log("Module mfsp non initialisé"); } Index: gc_lang/fr/modules-js/phonet.js ================================================================== --- gc_lang/fr/modules-js/phonet.js +++ gc_lang/fr/modules-js/phonet.js @@ -8,16 +8,18 @@ var phonet = { _dWord: new Map(), _lSet: [], _dMorph: new Map(), + isInit: false, init: function (sJSONData) { try { let _oData = JSON.parse(sJSONData); this._dWord = helpers.objectToMap(_oData.dWord); this._lSet = _oData.lSet; this._dMorph = helpers.objectToMap(_oData.dMorph); + this.isInit = true; } catch (e) { console.error(e); } }, @@ -79,16 +81,18 @@ } }; // Initialization -if (typeof(browser) !== 'undefined') { +if (!phonet.isInit && typeof(browser) !== 'undefined') { // WebExtension phonet.init(helpers.loadFile(browser.extension.getURL("grammalecte/fr/phonet_data.json"))); -} else if (typeof(require) !== 'undefined') { +} else if (!phonet.isInit && typeof(require) !== 'undefined') { // Add-on SDK and Thunderbird phonet.init(helpers.loadFile("resource://grammalecte/fr/phonet_data.json")); +} else if (phonet.isInit){ + console.log("Module phonet déjà initialisé"); } else { console.log("Module phonet non initialisé"); }