You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.0 KiB
68 lines
1.0 KiB
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 = Extension
|
|
|