diff options
author | Alex Yatskov <alex@foosoft.net> | 2017-04-29 12:35:43 -0700 |
---|---|---|
committer | Alex Yatskov <alex@foosoft.net> | 2017-04-29 12:35:43 -0700 |
commit | 1cdf496824709b4e4579d700c333e832d790925e (patch) | |
tree | fd50754905ee3319e3fa9738932bab23daa741c6 | |
parent | a209228c311a13328ecdda4056a9302885639195 (diff) | |
parent | abdb5e68beca1e9105b998defcc37015bf735119 (diff) |
Merge branch 'master' into firefox-amo
-rw-r--r-- | ext/bg/js/yomichan.js | 12 | ||||
-rw-r--r-- | ext/manifest.json | 2 |
2 files changed, 9 insertions, 5 deletions
diff --git a/ext/bg/js/yomichan.js b/ext/bg/js/yomichan.js index 172bb1d3..7be67d01 100644 --- a/ext/bg/js/yomichan.js +++ b/ext/bg/js/yomichan.js @@ -35,19 +35,23 @@ window.yomichan = new class { } optionsSet(options) { - this.options = options; + // In Firefox, setting options from the options UI somehow carries references + // to the DOM across to the background page, causing the options object to + // become a "DeadObject" after the options page is closed. The workaround used + // here is to create a deep copy of the options object. + this.options = JSON.parse(JSON.stringify(options)); - if (!options.general.enable) { + if (!this.options.general.enable) { chrome.browserAction.setBadgeBackgroundColor({color: '#d9534f'}); chrome.browserAction.setBadgeText({text: 'off'}); - } else if (!dictConfigured(options)) { + } else if (!dictConfigured(this.options)) { chrome.browserAction.setBadgeBackgroundColor({color: '#f0ad4e'}); chrome.browserAction.setBadgeText({text: '!'}); } else { chrome.browserAction.setBadgeText({text: ''}); } - if (options.anki.enable) { + if (this.options.anki.enable) { this.anki = new AnkiConnect(this.options.anki.server); } else { this.anki = new AnkiNull(); diff --git a/ext/manifest.json b/ext/manifest.json index 5882f684..e6c709dd 100644 --- a/ext/manifest.json +++ b/ext/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "Yomichan", - "version": "1.1.14", + "version": "1.1.15", "description": "Japanese dictionary with Anki integration", "icons": {"16": "mixed/img/icon16.png", "48": "mixed/img/icon48.png", "128": "mixed/img/icon128.png"}, |