Index: ext/common.js |
=================================================================== |
--- a/ext/common.js |
+++ b/ext/common.js |
@@ -43,9 +43,39 @@ |
let listeners = this._listeners.slice(); |
for (let listener of listeners) |
results.push(listener(...args)); |
return results; |
} |
}; |
+ |
+ // Workaround since HTMLCollection and NodeList didn't have iterator support |
+ // before Chrome 51. |
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=401699 |
+ let arrayIterator = Array.prototype[Symbol.iterator]; |
+ if (!(Symbol.iterator in HTMLCollection.prototype)) |
+ HTMLCollection.prototype[Symbol.iterator] = arrayIterator; |
+ if (!(Symbol.iterator in NodeList.prototype)) |
+ NodeList.prototype[Symbol.iterator] = arrayIterator; |
+ |
+ /* Message passing */ |
+ |
+ ext.onMessage = new ext._EventTarget(); |
+ |
+ |
+ /* Background page */ |
+ |
+ ext.backgroundPage = { |
+ sendMessage: chrome.runtime.sendMessage, |
+ getWindow() |
+ { |
+ return chrome.extension.getBackgroundPage(); |
+ } |
+ }; |
+ |
+ |
+ /* Utils */ |
+ |
+ ext.getURL = chrome.extension.getURL; |
+ ext.i18n = chrome.i18n; |
}()); |