67 lines
1.0 KiB
JavaScript
67 lines
1.0 KiB
JavaScript
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();
|