From 7d989be27ff6b75b2506a390f01525921517dfe6 Mon Sep 17 00:00:00 2001 From: Grzegorz Kucmierz Date: Fri, 27 Feb 2026 06:11:12 +0000 Subject: [PATCH] feat: url cleaner tool and extension update --- extension/background.js | 11 +++++++++++ extension/content.js | 11 +++++++++++ extension/manifest.json | 3 ++- extension/offscreen.js | 14 +++++++++++++- 4 files changed, 37 insertions(+), 2 deletions(-) diff --git a/extension/background.js b/extension/background.js index da4f095..dd03c06 100644 --- a/extension/background.js +++ b/extension/background.js @@ -122,6 +122,17 @@ chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) => { return true; } + if (request.action === 'writeClipboard') { + if (isSniffing) { + chrome.runtime.sendMessage({ + target: 'offscreen', + type: 'write-clipboard', + data: request.content + }).catch(() => {}); + } + return true; + } + if (request.type === 'clipboard-data' && request.target === 'background') { // Received data from offscreen document if (isSniffing && request.data && request.data !== lastClipboardContent) { diff --git a/extension/content.js b/extension/content.js index 1ed2391..d004107 100644 --- a/extension/content.js +++ b/extension/content.js @@ -46,6 +46,17 @@ window.addEventListener('message', (event) => { // ignore } } + + if (event.data.type === 'TOOLS_APP_CLIPBOARD_WRITE') { + try { + chrome.runtime.sendMessage({ + action: 'writeClipboard', + content: event.data.content + }); + } catch (e) { + console.warn('Tools App Extension: Write clipboard failed', e); + } + } }); // Listen for messages from the Extension Background diff --git a/extension/manifest.json b/extension/manifest.json index cc081fd..5067c60 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -1,10 +1,11 @@ { "manifest_version": 3, "name": "Tools App Extension", - "version": "1.0", + "version": "1.1", "description": "Browser extension for Tools App", "permissions": [ "clipboardRead", + "clipboardWrite", "offscreen", "storage", "alarms", diff --git a/extension/offscreen.js b/extension/offscreen.js index 0a46dc9..f531184 100644 --- a/extension/offscreen.js +++ b/extension/offscreen.js @@ -42,12 +42,24 @@ setInterval(async () => { } }, 50); -// Listen for messages from background if we need to change behavior +// Listen for messages from background chrome.runtime.onMessage.addListener((message) => { if (message.target === 'offscreen') { // Handle commands if (message.type === 'play-sound') { playNotificationSound(); + } else if (message.type === 'write-clipboard') { + try { + const text = message.data; + if (text) { + textEl.value = text; + textEl.select(); + document.execCommand('copy'); + lastText = text; // Update internal state to avoid re-triggering update + } + } catch (e) { + console.error('Failed to write clipboard:', e); + } } } });