From a9370a08517668b3e98cc1d0bd42df407a76c220 Mon Sep 17 00:00:00 2001 From: awy Date: Fri, 15 Aug 2025 03:01:21 +0300 Subject: ubo + private browsing patch --- .../uBlock0@raymondhill.net/js/dom-inspector.js | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 data/extensions/uBlock0@raymondhill.net/js/dom-inspector.js (limited to 'data/extensions/uBlock0@raymondhill.net/js/dom-inspector.js') diff --git a/data/extensions/uBlock0@raymondhill.net/js/dom-inspector.js b/data/extensions/uBlock0@raymondhill.net/js/dom-inspector.js new file mode 100644 index 0000000..a6ef775 --- /dev/null +++ b/data/extensions/uBlock0@raymondhill.net/js/dom-inspector.js @@ -0,0 +1,65 @@ +/******************************************************************************* + + uBlock Origin - a comprehensive, efficient content blocker + Copyright (C) 2014-present Raymond Hill + + 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 {http://www.gnu.org/licenses/}. + + Home: https://github.com/gorhill/uBlock +*/ + +/******************************************************************************/ + +const svgRoot = document.querySelector('svg'); +let inspectorContentPort; + +const shutdown = ( ) => { + inspectorContentPort.close(); + inspectorContentPort.onmessage = inspectorContentPort.onmessageerror = null; + inspectorContentPort = undefined; +}; + +const contentInspectorChannel = ev => { + const msg = ev.data || {}; + switch ( msg.what ) { + case 'quitInspector': { + shutdown(); + break; + } + case 'svgPaths': { + const paths = svgRoot.children; + paths[0].setAttribute('d', msg.paths[0]); + paths[1].setAttribute('d', msg.paths[1]); + paths[2].setAttribute('d', msg.paths[2]); + paths[3].setAttribute('d', msg.paths[3]); + break; + } + default: + break; + } +}; + +// Wait for the content script to establish communication +globalThis.addEventListener('message', ev => { + const msg = ev.data || {}; + if ( msg.what !== 'startInspector' ) { return; } + if ( Array.isArray(ev.ports) === false ) { return; } + if ( ev.ports.length === 0 ) { return; } + inspectorContentPort = ev.ports[0]; + inspectorContentPort.onmessage = contentInspectorChannel; + inspectorContentPort.onmessageerror = shutdown; + inspectorContentPort.postMessage({ what: 'startInspector' }); +}, { once: true }); + +/******************************************************************************/ -- cgit v1.2.3