diff --git a/chrome/extension/lib/dom.js b/chrome/extension/lib/dom.js index 18a1e52f..bc19bf54 100644 --- a/chrome/extension/lib/dom.js +++ b/chrome/extension/lib/dom.js @@ -1,4 +1,4 @@ -const dom = { +window.dom = { create: { elem(elemType, attrs = {}) { const elem = document.createElement(elemType) @@ -31,6 +31,4 @@ const dom = { }) targetNode.prepend(starsDivsContainer) } -} - -window.dom = dom; +}; diff --git a/chrome/extension/lib/settings.js b/chrome/extension/lib/settings.js index 408a9d58..0fc25314 100644 --- a/chrome/extension/lib/settings.js +++ b/chrome/extension/lib/settings.js @@ -1,53 +1,51 @@ -const config = {} -const settings = { +window.config = {} +window.settings = { controls: { // displays top-to-bottom in toolbar menu get infinityMode() { return { type: 'toggle', - label: settings.getMsg('menuLabel_infinityMode') }}, + label: window.settings.getMsg('menuLabel_infinityMode') }}, get autoStart() { return { type: 'toggle', - label: settings.getMsg('menuLabel_autoStart'), - helptip: settings.getMsg('helptip_autoStart') }}, + label: window.settings.getMsg('menuLabel_autoStart'), + helptip: window.settings.getMsg('helptip_autoStart') }}, get toggleHidden() { return { type: 'toggle', - label: settings.getMsg('menuLabel_toggleVis'), - helptip: settings.getMsg('helptip_toggleVis') }}, + label: window.settings.getMsg('menuLabel_toggleVis'), + helptip: window.settings.getMsg('helptip_toggleVis') }}, get autoScrollDisabled() { return { type: 'toggle', - label: settings.getMsg('menuLabel_autoScroll'), - helptip: settings.getMsg('helptip_autoScroll') }}, + label: window.settings.getMsg('menuLabel_autoScroll'), + helptip: window.settings.getMsg('helptip_autoScroll') }}, get replyLanguage() { return { type: 'prompt', symbol: '🌐', - label: settings.getMsg('menuLabel_replyLang'), - helptip: settings.getMsg('prompt_updateReplyLang') }}, + label: window.settings.getMsg('menuLabel_replyLang'), + helptip: window.settings.getMsg('prompt_updateReplyLang') }}, get replyTopic() { return { type: 'prompt', symbol: '🧠', - label: settings.getMsg('menuLabel_replyTopic'), - helptip: settings.getMsg('prompt_updateReplyTopic') }}, + label: window.settings.getMsg('menuLabel_replyTopic'), + helptip: window.settings.getMsg('prompt_updateReplyTopic') }}, get replyInterval() { return { type: 'prompt', symbol: '⌚', - label: settings.getMsg('menuLabel_replyInt'), - helptip: settings.getMsg('prompt_updateReplyInt') }} + label: window.settings.getMsg('menuLabel_replyInt'), + helptip: window.settings.getMsg('prompt_updateReplyInt') }} }, getMsg(key) { return typeof chrome != 'undefined' && chrome.runtime ? chrome.i18n.getMessage(key) - : settings.appProps.msgs[key] // assigned from app.msgs in userscript + : this.appProps.msgs[key] // assigned from app.msgs in userscript }, load() { const keys = ( // original array if array, else new array from multiple args Array.isArray(arguments[0]) ? arguments[0] : Array.from(arguments)) - if (typeof chrome != 'undefined' && chrome.runtime) // asynchronously load from Chrome storage + if (typeof chrome != 'undefined' && chrome.runtime) // asynchronously load from browser extension storage return Promise.all(keys.map(key => // resolve promise when all keys load new Promise(resolve => // resolve promise when single key value loads chrome.storage.sync.get(key, result => { - config[key] = result[key] || false ; resolve() + window.config[key] = result[key] || false ; resolve() })))) ; else // synchronously load from userscript manager storage - keys.forEach(key => config[key] = GM_getValue(settings.appProps.configKeyPrefix + '_' + key, false)) + keys.forEach(key => window.config[key] = GM_getValue(this.appProps.configKeyPrefix + '_' + key, false)) }, save(key, val) { - if (typeof chrome != 'undefined' && chrome.runtime) // save to Chrome storage + if (typeof chrome != 'undefined' && chrome.runtime) // save to browser extension storage chrome.storage.sync.set({ [key]: val }) else // save to userscript manager storage - GM_setValue(settings.appProps.configKeyPrefix + '_' + key, val) - config[key] = val // save to memory + GM_setValue(this.appProps.configKeyPrefix + '_' + key, val) + window.config[key] = val // save to memory } -} - -window.config = config ; window.settings = settings; +}; diff --git a/firefox/extension/lib/dom.js b/firefox/extension/lib/dom.js index 18a1e52f..bc19bf54 100644 --- a/firefox/extension/lib/dom.js +++ b/firefox/extension/lib/dom.js @@ -1,4 +1,4 @@ -const dom = { +window.dom = { create: { elem(elemType, attrs = {}) { const elem = document.createElement(elemType) @@ -31,6 +31,4 @@ const dom = { }) targetNode.prepend(starsDivsContainer) } -} - -window.dom = dom; +}; diff --git a/firefox/extension/lib/settings.js b/firefox/extension/lib/settings.js index a6fe3a5b..e8db5cd4 100644 --- a/firefox/extension/lib/settings.js +++ b/firefox/extension/lib/settings.js @@ -1,5 +1,5 @@ -const config = {} -const settings = { +window.config = {} +window.settings = { controls: { // displays top-to-bottom in toolbar menu infinityMode: { type: 'toggle', @@ -29,14 +29,12 @@ const settings = { Array.isArray(arguments[0]) ? arguments[0] : Array.from(arguments)) return Promise.all(keys.map(key => // resolve promise when all keys load new Promise(resolve => // resolve promise when single key value loads - chrome.storage.sync.get(key, result => { // load from Chrome - config[key] = result[key] || false ; resolve() + chrome.storage.sync.get(key, result => { // load from browser extension storage + window.config[key] = result[key] || false ; resolve() }))))}, save(key, val) { - chrome.storage.sync.set({ [key]: val }) // save to Chrome - config[key] = val // save to memory + chrome.storage.sync.set({ [key]: val }) // save to browser extension storage + window.config[key] = val // save to memory } -} - -window.config = config ; window.settings = settings; +};