const apis = [ 'alarms', 'bookmarks', 'browserAction', 'commands', 'contextMenus', 'cookies', 'downloads', 'events', 'extension', 'extensionTypes', 'history', 'i18n', 'idle', 'notifications', 'pageAction', 'runtime', 'storage', 'tabs', 'webNavigation', 'webRequest', 'windows', ] function Extension () { const _this = this apis.forEach(function (api) { _this[api] = null try { if (chrome[api]) { _this[api] = chrome[api] } } catch (e) {} try { if (window[api]) { _this[api] = window[api] } } catch (e) {} try { if (browser[api]) { _this[api] = browser[api] } } catch (e) {} try { _this.api = browser.extension[api] } catch (e) {} }) try { if (browser && browser.runtime) { this.runtime = browser.runtime } } catch (e) {} try { if (browser && browser.browserAction) { this.browserAction = browser.browserAction } } catch (e) {} } module.exports = new Extension();