fix: remove test content script from production manifest

- Removed content_scripts entry that injected test code into all pages
- Modified test-lib.js to dynamically inject content script only during tests
- Test code no longer affects production users

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jacek Wielemborek 2025-10-26 18:13:48 +01:00
parent 86f5c86f4f
commit e6f025335a
2 changed files with 25 additions and 10 deletions

View File

@ -26,13 +26,6 @@
"32": "assets/icon-addon.svg",
"64": "assets/icon-addon.svg"
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["lib/tests/test-content-script.js"],
"run_at": "document_end"
}
],
"permissions": [
"proxy",
"storage",

View File

@ -1,14 +1,36 @@
// Test library for Marionette-based extension verification
// This JavaScript code runs in the browser context via Marionette
/**
* Inject test content script into the page
* @returns {Promise<boolean>} - True if injection successful
*/
async function injectTestContentScript() {
// Read the content script file
const response = await fetch(browser.runtime.getURL('lib/tests/test-content-script.js'));
const scriptCode = await response.text();
// Inject it into the page
const script = document.createElement('script');
script.textContent = scriptCode;
document.documentElement.appendChild(script);
script.remove();
// Wait a bit for script to initialize
await new Promise(resolve => setTimeout(resolve, 100));
return document.body.getAttribute('data-rentgen-injected') === 'true';
}
/**
* Test that background script performs computation correctly
* @param {number} testValue - Input value for computation
* @returns {Promise<number|null>} - Computed result or null on failure
*/
function testBackgroundComputation(testValue) {
// Check if content script loaded
if (!document.body.getAttribute('data-rentgen-injected')) {
async function testBackgroundComputation(testValue) {
// Inject content script first
const injected = await injectTestContentScript();
if (!injected) {
return -1; // Content script not loaded
}