84 lines
2.8 KiB
JavaScript
84 lines
2.8 KiB
JavaScript
var core = {};
|
|
|
|
core.toggle = function () {
|
|
var tmp = config.addon.state === "ON" ? "OFF" : "ON";
|
|
config.addon.state = tmp;
|
|
};
|
|
|
|
core.storage = {
|
|
"data": function () {
|
|
return {
|
|
"state": config.addon.state,
|
|
/* */
|
|
"h_svg": config.options.hide.svg,
|
|
"h_image": config.options.hide.image,
|
|
"h_flash": config.options.hide.flash,
|
|
"h_video": config.options.hide.video,
|
|
"h_canvas": config.options.hide.canvas,
|
|
"h_iframe": config.options.hide.iframe,
|
|
"h_background": config.options.hide.background,
|
|
/* */
|
|
"b_svg": config.options.block.svg,
|
|
"b_image": config.options.block.image,
|
|
"b_flash": config.options.block.flash,
|
|
"b_video": config.options.block.video,
|
|
"b_canvas": config.options.block.canvas,
|
|
"b_iframe": config.options.block.iframe,
|
|
"b_background": config.options.block.background
|
|
}
|
|
}
|
|
};
|
|
|
|
core.webrequest = {
|
|
"blocking": {"types": []},
|
|
"block": function (e) {
|
|
|
|
// if(e.url.startsWith("https://video-")) {
|
|
// return {"cancel": true};
|
|
// };
|
|
|
|
for(var u of ["https://video-", "https://txvid.vod"]) {
|
|
if(e.url.startsWith(u)) {
|
|
return {"cancel": true};
|
|
};
|
|
}
|
|
|
|
var ftp = e.url.indexOf("ftp") === 0;
|
|
var http = e.url.indexOf("http") === 0;
|
|
if (http || ftp) {
|
|
return {"cancel": true};
|
|
}
|
|
},
|
|
"update": function () {
|
|
app.button.icon(config.addon.state);
|
|
app.content_script.send("storage", core.storage.data());
|
|
chrome.webRequest.onBeforeRequest.removeListener(core.webrequest.block);
|
|
/* */
|
|
if (config.addon.state === "ON") {
|
|
core.webrequest.blocking.types = [];
|
|
if (config.options.block.image) core.webrequest.blocking.types.push("image");
|
|
if (config.options.block.iframe) core.webrequest.blocking.types.push("sub_frame");
|
|
if (core.webrequest.blocking.types.length > 0) {
|
|
var options = {"urls": ["*://*/*"], "types": core.webrequest.blocking.types};
|
|
chrome.webRequest.onBeforeRequest.addListener(core.webrequest.block, options, ["blocking"]);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
app.options.receive("store", function (e) {
|
|
var value = e.value;
|
|
var name = e.id.replace("b_", '').replace("h_", '');
|
|
var type = e.id.indexOf("b_") !== -1 ? "block" : "hide";
|
|
/* */
|
|
config.options[type][name] = value;
|
|
});
|
|
|
|
app.button.clicked(core.toggle);
|
|
app.storage.changed(core.webrequest.update);
|
|
window.setTimeout(core.webrequest.update, 300);
|
|
app.options.receive("support", function () {app.tab.open(app.homepage())});
|
|
app.options.receive("load", function () {app.options.send("storage", core.storage.data())});
|
|
app.options.receive("donation", function () {app.tab.open(app.homepage() + "?reason=support")});
|
|
app.content_script.receive("load", function () {app.content_script.send("storage", core.storage.data())});
|