From b4fe1f1fa6064162adfa7b6eee5f397f190ae8bf Mon Sep 17 00:00:00 2001 From: ispedals Date: Sat, 18 Jun 2016 19:42:00 -0400 Subject: [PATCH] Add polyfills for Gecko's WebExtension implementation Gecko currently does not support chrome.storage.sync and chrome.runtime.onInstalled. Use chrome.storage.local instead of sync and ignore calls to onInstalled. The implication of not having runtime.onInstalled is that the options page is not shown on first-run. --- ext/bg/background.html | 1 + ext/bg/js/polyfill-gecko.js | 15 +++++++++++++++ ext/bg/options.html | 1 + 3 files changed, 17 insertions(+) create mode 100644 ext/bg/js/polyfill-gecko.js diff --git a/ext/bg/background.html b/ext/bg/background.html index c35e917d..c6a84636 100644 --- a/ext/bg/background.html +++ b/ext/bg/background.html @@ -1,6 +1,7 @@ + diff --git a/ext/bg/js/polyfill-gecko.js b/ext/bg/js/polyfill-gecko.js new file mode 100644 index 00000000..8c7cc403 --- /dev/null +++ b/ext/bg/js/polyfill-gecko.js @@ -0,0 +1,15 @@ +// Gecko does not currently support chrome.storage.sync, use storage.local instead +// https://bugzilla.mozilla.org/show_bug.cgi?id=1220494 +if (!chrome.storage.sync) { + chrome.storage.sync = chrome.storage.local; +} + +// Gecko does not currently support chrome.runtime.onInstalled, just ignore calls to it +// (https://bugzilla.mozilla.org/show_bug.cgi?id=1252871) +if (!chrome.runtime.onInstalled) { + chrome.runtime.onInstalled = { + 'addListener' : function(){}, + 'hasListener' : function(){}, + 'removeListener' : function(){} + }; +} \ No newline at end of file diff --git a/ext/bg/options.html b/ext/bg/options.html index 289a0f60..a2b4a56b 100644 --- a/ext/bg/options.html +++ b/ext/bg/options.html @@ -163,6 +163,7 @@ +