forked from icd/rentgen
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:
parent
86f5c86f4f
commit
e6f025335a
@ -26,13 +26,6 @@
|
|||||||
"32": "assets/icon-addon.svg",
|
"32": "assets/icon-addon.svg",
|
||||||
"64": "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": [
|
"permissions": [
|
||||||
"proxy",
|
"proxy",
|
||||||
"storage",
|
"storage",
|
||||||
|
|||||||
@ -1,14 +1,36 @@
|
|||||||
// Test library for Marionette-based extension verification
|
// Test library for Marionette-based extension verification
|
||||||
// This JavaScript code runs in the browser context via Marionette
|
// 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
|
* Test that background script performs computation correctly
|
||||||
* @param {number} testValue - Input value for computation
|
* @param {number} testValue - Input value for computation
|
||||||
* @returns {Promise<number|null>} - Computed result or null on failure
|
* @returns {Promise<number|null>} - Computed result or null on failure
|
||||||
*/
|
*/
|
||||||
function testBackgroundComputation(testValue) {
|
async function testBackgroundComputation(testValue) {
|
||||||
// Check if content script loaded
|
// Inject content script first
|
||||||
if (!document.body.getAttribute('data-rentgen-injected')) {
|
const injected = await injectTestContentScript();
|
||||||
|
if (!injected) {
|
||||||
return -1; // Content script not loaded
|
return -1; // Content script not loaded
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user