webextensions/src/scripts/utils/ext.js

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