fix(extension): handle browser error pages gracefully
- Treat chrome error page script failures as transient during injection retries. - Return safe fallback values for read-only DOM commands when tabs land on browser error pages. - Improve URL watch handling by checking pending URLs and reporting last seen URL/status on timeout. - Bump package and extension version to 0.9.6 and add regression coverage for error-page behavior.
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
|
||||
def test_extension_retries_error_page_script_injection_before_failing():
|
||||
core = (ROOT / "extension" / "src" / "core.ts").read_text()
|
||||
|
||||
assert "isErrorPageScriptError" in core
|
||||
assert "chrome-error://chromewebdata" in core
|
||||
assert "isTransientScriptError(e)" in core
|
||||
|
||||
def test_read_only_dom_commands_have_error_page_fallbacks():
|
||||
dom = (ROOT / "extension" / "src" / "commands" / "dom.ts").read_text()
|
||||
|
||||
assert "fallbackForErrorPageDomOp" in dom
|
||||
assert 'case "domExists":' in dom
|
||||
assert "return false;" in dom
|
||||
assert 'case "domQuery":' in dom
|
||||
assert 'case "extractText":' in dom
|
||||
assert "isErrorPageScriptError(e)" in dom
|
||||
|
||||
def test_tabs_watch_url_reports_last_seen_url_on_timeout():
|
||||
tabs = (ROOT / "extension" / "src" / "commands" / "tabs.ts").read_text()
|
||||
|
||||
assert "lastUrl" in tabs
|
||||
assert "lastStatus" in tabs
|
||||
assert "showing an error page" in tabs
|
||||
assert "last URL:" in tabs
|
||||
Reference in New Issue
Block a user