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.
This commit is contained in:
ispedals 2016-06-18 19:42:00 -04:00
parent f12660af91
commit b4fe1f1fa6
3 changed files with 17 additions and 0 deletions

View File

@ -1,6 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<body>
<script src="js/polyfill-gecko.js"></script>
<script src="../lib/handlebars.min.js"></script>
<script src="js/templates.js"></script>
<script src="js/dictionary.js"></script>

View File

@ -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(){}
};
}

View File

@ -163,6 +163,7 @@
<script src="../lib/jquery-2.2.2.min.js"></script>
<script src="../lib/bootstrap-3.3.6-dist/js/bootstrap.min.js"></script>
<script src="js/polyfill-gecko.js"></script>
<script src="js/options.js"></script>
<script src="js/options-form.js"></script>
</body>