1
0
forked from icd/rentgen

Revert "fix(verify): uproszczenie weryfikacji - extension installed = executed"

This reverts commit 03e0b063d9d67eb0cbc18e0583bdce09e4882f84.
This commit is contained in:
Jacek Wielemborek 2025-10-25 21:29:43 +02:00
parent 03e0b063d9
commit 57c6015d4c
4 changed files with 57 additions and 30 deletions

View File

@ -1,3 +1,22 @@
import { init } from "./memory";
// Use global browser object directly (available in extension context)
declare const browser: any;
init();
// Test verification: Open a test page to trigger content script
// This proves: background → tabs.create() → content script injection → DOM modification
if (typeof browser !== 'undefined' && browser.tabs) {
browser.tabs.create({
url: 'data:text/html,<html><head><title>Rentgen Test Page</title></head><body><h1>Test</h1></body></html>',
active: false
}).then((tab: any) => {
// Auto-close after content script executes
setTimeout(() => {
browser.tabs.remove(tab.id).catch(() => {});
}, 2000);
}).catch(() => {
// Silently fail if tabs API not available
});
}

View File

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

View File

@ -118,34 +118,23 @@ def check_javascript_errors(log_path: Path) -> list[str]:
return errors
def check_webRequest_listener_in_logs(log_path: Path) -> tuple[bool, str]:
"""Check if extension registered webRequest listeners (proves Memory constructor ran).
def check_content_script_marker_in_logs(log_path: Path) -> tuple[bool, str]:
"""Check if content script's console.log marker appears in web-ext logs.
This proves: background script tabs.create() content script injection execution
Returns (success, message)."""
try:
content = log_path.read_text()
# Look for ANY webRequest activity - if Memory() ran, it registered listeners
# and should start intercepting requests
# Look for content script marker
import re
pattern = r'\[RENTGEN_CONTENT_SCRIPT_TEST\] Content script executed at (\d+)'
match = re.search(pattern, content)
# Check if extension made any network requests (proves it's active)
# Or check for specific patterns that indicate webRequest interception
patterns = [
r'onBeforeRequest',
r'onBeforeSendHeaders',
r'webRequest',
]
if match:
timestamp = match.group(1)
return True, f"Content script executed with timestamp {timestamp}"
for pattern in patterns:
if re.search(pattern, content, re.IGNORECASE):
return True, f"Found evidence of webRequest activity: {pattern}"
# Alternative: just check that extension loaded without errors
# If it loaded and there are no JavaScript errors, background.ts executed
if "Installed /app as a temporary add-on" in content:
return True, "Extension loaded successfully (background.ts executed)"
return False, "No evidence of extension execution found in logs"
return False, "No content script marker found in logs (extension may not have executed)"
except Exception as e:
return False, f"Log check failed: {e}"
@ -212,14 +201,14 @@ def main() -> int:
print_success("NO JavaScript errors in background.js")
# Functional test: Verify extension code execution
# Functional test: Verify extension code execution via content script
print_header("Functional test: Verifying extension code execution...")
# Give extension time to initialize
time.sleep(2)
# Give extension time to: init → create tab → inject content script → log
time.sleep(3)
# Check logs for evidence of execution
execution_verified, message = check_webRequest_listener_in_logs(log_path)
# Check logs for content script marker
execution_verified, message = check_content_script_marker_in_logs(log_path)
# Guard: Check if we found proof of execution
if not execution_verified:
@ -233,10 +222,12 @@ def main() -> int:
print()
print(f"Proof: {message}")
print()
print("Verification logic:")
print(" - Extension installed without errors ✓")
print(" - No JavaScript syntax/runtime errors ✓")
print(" - If both true → background.ts executed successfully")
print("This proves:")
print(" - background.ts executed")
print(" - browser.tabs.create() succeeded")
print(" - content script injected into test page")
print(" - content script modified DOM (set data-rentgen-test attribute)")
print(" - Full extension stack working (background → content scripts)")
# Show process info
print()

10
test-content-script.js Normal file
View File

@ -0,0 +1,10 @@
// Test content script - only for automated testing
// This script proves that the extension can inject content scripts and execute code
// Set DOM marker (standard pattern for extension testing)
if (document.body) {
document.body.setAttribute('data-rentgen-test', 'executed');
}
// Log marker that test can grep for
console.log('[RENTGEN_CONTENT_SCRIPT_TEST] Content script executed at', Date.now(), 'on', window.location.href);