diff options
Diffstat (limited to 'background')
-rw-r--r-- | background/policy_smuggler.js | 84 | ||||
-rw-r--r-- | background/reverse_use_info.js | 117 |
2 files changed, 0 insertions, 201 deletions
diff --git a/background/policy_smuggler.js b/background/policy_smuggler.js deleted file mode 100644 index 546d771..0000000 --- a/background/policy_smuggler.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - * Myext smuggling policy to content script through url - * - * Copyright (C) 2021 Wojtek Kosior - * - * This code is dual-licensed under: - * - Asshole license 1.0, - * - GPLv3 or (at your option) any later version - * - * "dual-licensed" means you can choose the license you prefer. - * - * This code is released under a permissive license because I disapprove of - * copyright and wouldn't be willing to sue a violator. Despite not putting - * this code under copyleft (which is also kind of copyright), I do not want - * it to be made proprietary. Hence, the permissive alternative to GPL is the - * Asshole license 1.0 that allows me to call you an asshole if you use it. - * This means you're legally ok regardless of how you utilize this code but if - * you make it into something nonfree, you're an asshole. - * - * You should have received a copy of both GPLv3 and Asshole license 1.0 - * together with this code. If not, please see: - * - https://www.gnu.org/licenses/gpl-3.0.en.html - * - https://koszko.org/asshole-license.txt - */ - -"use strict"; - -(() => { - const TYPE_PREFIX = window.TYPE_PREFIX; - const get_storage = window.get_storage; - const browser = window.browser; - const url_item = window.url_item; - const gen_unique = window.gen_unique; - const get_query_best = window.get_query_best; - - var storage; - var query_best; - - function redirect(request) - { - let url_re = /^([^#]*)((#[^#]*)(#.*)?)?$/; - let match = url_re.exec(request.url); - let base_url = match[1]; - let first_target = match[3]; - let second_target = match[4]; - - let url = url_item(request.url); - let unique = gen_unique(url); - - if (first_target === unique) { - console.log(["not redirecting"]); - return {cancel : false}; - } - - let [pattern, settings] = query_best(url); - if (settings === undefined || !settings.allow) - return {cancel : false}; - - second_target = (first_target || "") + (second_target || ""); - - console.log(["redirecting", request.url, - (base_url + unique + second_target)]); - - return { - redirectUrl : (base_url + unique + second_target) - }; - } - - async function start() { - storage = await get_storage(); - query_best = await get_query_best(); - - chrome.webRequest.onBeforeRequest.addListener( - redirect, - { - urls: ["<all_urls>"], - types: ["main_frame", "sub_frame"] - }, - ["blocking"] - ); - } - - window.start_policy_smuggler = start; -})(); diff --git a/background/reverse_use_info.js b/background/reverse_use_info.js deleted file mode 100644 index f609ebe..0000000 --- a/background/reverse_use_info.js +++ /dev/null @@ -1,117 +0,0 @@ -/** - * Myext scripts and bags usage index - * - * Copyright (C) 2021 Wojtek Kosior - * - * This code is dual-licensed under: - * - Asshole license 1.0, - * - GPLv3 or (at your option) any later version - * - * "dual-licensed" means you can choose the license you prefer. - * - * This code is released under a permissive license because I disapprove of - * copyright and wouldn't be willing to sue a violator. Despite not putting - * this code under copyleft (which is also kind of copyright), I do not want - * it to be made proprietary. Hence, the permissive alternative to GPL is the - * Asshole license 1.0 that allows me to call you an asshole if you use it. - * This means you're legally ok regardless of how you utilize this code but if - * you make it into something nonfree, you're an asshole. - * - * You should have received a copy of both GPLv3 and Asshole license 1.0 - * together with this code. If not, please see: - * - https://www.gnu.org/licenses/gpl-3.0.en.html - * - https://koszko.org/asshole-license.txt - */ - -"use strict"; - -/* - * Warning! - * This script file has not been used for some time and underlying storage - * model has changed since then! Fix required! - */ - -/* - * We want to count referenes to scripts and bags in order to know, - * for example, whether one can be safely deleted. - */ - -(() => { - const TYPE_PREFIX = window.TYPE_PREFIX; - const get_storage = window.get_storage; - const make_once = window.make_once; - - var component_uses = new Map(); - var storage; - - function add_use_info_by_item(prefix, item, components) - { - for (let component of components) { - component = component.join(""); - - let used_by_info = component_uses.get(component); - - if (used_by_info === undefined) { - used_by_info = {}; - component_uses.set(component, used_by_info); - } - - if (used_by_info[prefix] === undefined) - used_by_info[prefix] = new Set(); - - used_by_info[prefix].add(item); - } - } - - function remove_use_info_by_item(prefix, item, components) - { - for (let component of components) { - used_by_info = component_uses.get(component.join("")); - if (used_by_info === undefined || - used_by_info[prefix] === undefined) - return; - - used_by_info[prefix].delete(item); - } - } - - function build_reverse_uses_info(entries_it, type_prefix) - { - for (let [item, components] of storage.get_all_it(type_prefix)) - add_use_info_by_item(type_prefix, item, components); - } - - function handle_change(change) - { - if (change.old_val !== undefined) - remove_use_info_by_item(change.prefix, change.item, change.old_val); - - if (change.new_val !== undefined) - add_use_info_by_item(change.prefix, change.item, change.new_val); - } - - function get_uses(arg1, arg2=undefined) - { - let [prefix, item] = [arg1, arg2]; - - if (arg2 === undefined) - [prefix, item] = arg1; - - return component_uses.get(prefix + item); - } - - async function init() - { - storage = await get_storage(); - - prefixes = [TYPE_PREFIX.PAGE, TYPE_PREFIX.BAG]; - for (let prefix of prefixes) - build_reverse_uses_info(prefix); - - storage.add_change_listener(handle_change, prefixes); - - return get_uses; - } - - window.get_reverse_use_info = make_once(init); -})(); |