diff options
Diffstat (limited to 'data/extensions/jsr@javascriptrestrictor/fp_levels.js')
-rw-r--r-- | data/extensions/jsr@javascriptrestrictor/fp_levels.js | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/data/extensions/jsr@javascriptrestrictor/fp_levels.js b/data/extensions/jsr@javascriptrestrictor/fp_levels.js deleted file mode 100644 index 91f9aa9..0000000 --- a/data/extensions/jsr@javascriptrestrictor/fp_levels.js +++ /dev/null @@ -1,112 +0,0 @@ -/** \file - * \brief FPD module initial configuration - * - * \author Copyright (C) 2021 Marek Salon - * \author Copyright (C) 2023 Martin Zmitko - * - * \license SPDX-License-Identifier: GPL-3.0-or-later - */ -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <https://www.gnu.org/licenses/>. -// - -/** \file - * - * \brief This file is part of Fingerprint Detector (FPD) and contains the function for loading configuration files. - * - * \ingroup FPD - */ - -//DEF_FPD_FILES_S -var fp_config_files = ["groups-lvl_0", "groups-lvl_1", "wrappers-lvl_0_1"] -//DEF_FPD_FILES_E - -/** - * Object containing parsed input from JSON configuration files of FPD module. - */ -var fp_levels = {}; - -/// \cond (Exclude this section from the doxygen documentation. If this section is not excluded, it is documented as a separate function.) -{ - // parse input files into fp_levels for each level, generate wrapping code and initialize FPD module - let loadFpdConfig = async () => { - for (let file of fp_config_files) { - try { - let config = JSON.parse(await readFile(browser.runtime.getURL(`fp_config/${file}.json`))); - let file_splitted = file.split("-"); - let file_levels = file_splitted[1].split("_").filter(x => x != 'lvl'); - fp_levels[file_splitted[0]] = fp_levels[file_splitted[0]] || {}; - for (let level of file_levels) { - fp_levels[file_splitted[0]][level] = config; - } - } - catch (e) { - console.error(e); - } - } - - // merge duplicit entries of the same resource to be wrapped only once - let mergeWrappers = (sameResources) => { - let mergeGroups = () => { - let accArray = []; - for (let resource of sameResources) { - accArray.push(...resource.groups); - } - return accArray; - } - - return { - resource: sameResources[0].resource, - type: sameResources[0].type, - groups: mergeGroups() - } - } - - fp_levels.page_wrappers = []; - for (let level in fp_levels.wrappers) { - let tmpWrappers = {}; - for (let wrapper of fp_levels.wrappers[level]) { - if (!Object.keys(tmpWrappers).includes(wrapper.resource)) { - let sameResources = fp_levels.wrappers[level].filter(x => x.resource == wrapper.resource); - tmpWrappers[wrapper.resource] = mergeWrappers(sameResources); - } - } - fp_levels.wrappers[level] = Object.values(tmpWrappers); - - // Save FPD wrappers for page configuration - fp_levels.page_wrappers[level] = fp_levels.wrappers[level].map(w => [ - // Wrapped object name - w.resource, - // Wrapped object type (0 - function, 1 - property) - w.type === "property" ? 1 : 0, - // Array specifying property types to wrap (getter, setter or both) - Array.from(new Set(w.groups.map(x => x.property != undefined ? x.property : "get"))), - // Specify if arguments should be sent for evaulation - w.groups.some(group => "arguments" in group) ? 1 : 0, - ]); - } - - // initialize FPD module (background script and event listeners) - initFpd(); - - fp_levels_initialised = true; - if (levels_initialised) { // Wait for both levels_initialised and fp_levels_initialised - var orig_levels_updated_callbacks = levels_updated_callbacks; - levels_updated_callbacks = []; - orig_levels_updated_callbacks.forEach((it) => it()); - await updateUserScripts(); - } - } - loadFpdConfig(); -} -/// \endcond |