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