Files
tubestation/browser/extensions/webcompat/webextension/background.js
2018-02-09 18:52:29 +01:00

56 lines
1.5 KiB
JavaScript

/**
* For detailed information on our policies, and a documention on this format
* and its possibilites, please check the Mozilla-Wiki at
*
* https://wiki.mozilla.org/Compatibility/Go_Faster_Addon/Override_Policies_and_Workflows#User_Agent_overrides
*/
const contentScripts = [
{
matches: ["*://webcompat-addon-testcases.schub.io/*"],
css: [{file: "injections/css/bug0000000-dummy-css-injection.css"}],
js: [{file: "injections/js/bug0000000-dummy-js-injection.js"}],
runAt: "document_start"
}
];
/* globals browser */
let port = browser.runtime.connect();
let registeredContentScripts = [];
function registerContentScripts() {
contentScripts.forEach(async (contentScript) => {
try {
let handle = await browser.contentScripts.register(contentScript);
registeredContentScripts.push(handle);
} catch (ex) {
console.error("Registering WebCompat GoFaster content scripts failed: ", ex);
}
});
}
function unregisterContentScripts() {
registeredContentScripts.forEach((contentScript) => {
contentScript.unregister();
});
}
port.onMessage.addListener((message) => {
switch (message.type) {
case "injection-pref-changed":
if (message.prefState) {
registerContentScripts();
} else {
unregisterContentScripts();
}
break;
}
});
/**
* Note that we reset all preferences on extension startup, so the injections will
* never be disabled when this loads up. Because of that, we can simply register
* right away.
*/
registerContentScripts();