diff options
author | Mark H Weaver <mhw@netris.org> | 2023-09-27 00:53:30 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2023-09-27 14:34:35 -0400 |
commit | fa5c0b073214191e6996ba0b5bc8e61560ff822c (patch) | |
tree | 38e7133195616f4a4da6c8fe46ab2c77c5a6e9e2 /data/extensions/jsr@javascriptrestrictor/document_start.js | |
parent | d167f676a167b1392a4e29f14ddf25613468680b (diff) |
Update the JShelter extension to 0.15.2.
Diffstat (limited to 'data/extensions/jsr@javascriptrestrictor/document_start.js')
-rw-r--r-- | data/extensions/jsr@javascriptrestrictor/document_start.js | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/data/extensions/jsr@javascriptrestrictor/document_start.js b/data/extensions/jsr@javascriptrestrictor/document_start.js index 71d3119..62e4a64 100644 --- a/data/extensions/jsr@javascriptrestrictor/document_start.js +++ b/data/extensions/jsr@javascriptrestrictor/document_start.js @@ -5,6 +5,7 @@ * \author Copyright (C) 2021 Matus Svancar * \author Copyright (C) 2021 Giorgio Maone * \author Copyright (C) 2021 Marek Salon + * \author Copyright (C) 2023 Martin Zmitko * * \license SPDX-License-Identifier: GPL-3.0-or-later */ @@ -25,10 +26,9 @@ var wrappersPort; var pageConfiguration = null; -function configureInjection({currentLevel, code, wrappers, domainHash, sessionHash}) { +function configureInjection({currentLevel, fpdWrappers, domainHash}) { if (pageConfiguration) return; // one shot pageConfiguration = {currentLevel}; - if (!code) return true; // nothing to wrap, bail out! if(browser.extension.inIncognitoContext){ // Redefine the domainHash for incognito context: // Compute the SHA256 hash of the original hash so that the incognito hash is: @@ -39,6 +39,24 @@ function configureInjection({currentLevel, code, wrappers, domainHash, sessionHa hash.update(JSON.stringify(domainHash)); domainHash = hash.hex(); } + // Append argument reporting setting to JSS wrapper definitions + fp_append_reporting_to_jss_wrappers(fpdWrappers); + // Generate wrapping code + var code = wrap_code(currentLevel.wrappers); + // Generate FPD wrapping code + if (fpdWrappers) { + if (!code) { + code = fp_generate_wrapping_code(fpdWrappers); + } + else { + code = fp_update_wrapping_code(code, currentLevel.wrappers, fpdWrappers); + } + } + // Insert farbling WASM module into wrapped code if enabled, only when farbling is actually used + if (currentLevel.wasm && (currentLevel.audiobuffer === 1 || currentLevel.htmlcanvaselement === 1)) { + code = insert_wasm_code(code); + } + var aleaCode = `(() => { var domainHash = ${JSON.stringify(domainHash)}; ${crc16} @@ -67,6 +85,12 @@ function configureInjection({currentLevel, code, wrappers, domainHash, sessionHa return false; } +/** + * See https://pagure.io/JShelter/paper2022/c/a7e7e88edecfa19c3a52542b553bf1dc9b4388a9?branch=cnil, + * https://pagure.io/JShelter/webextension/issue/70 and + * https://pagure.io/JShelter/webextension/issue/46#comment-793783 + * for more information on the early injection mechanism. + */ if ("configuration" in window) { configureInjection(configuration); } else { |