Repository navigation
Detect unsupported WebView engines before extension startup - #107
Conversation
…l native outcomes first
|
Local verification is head-bound to |
|
Verified the actual hosted Android run 41958811486: event |
|
The independent correctness audit at b417d94 found one P2 in test soundness: the synchronous preflight test used unsupported localStorage.getItem, so unsupported-operation rejection could mask a regressed approval guard. Merge remains withheld. I am strengthening it to supported fs.exists on the existing owned fixture, adding the same-engine/operation/arguments approved positive control on API36, and checking a narrowly mutated guard. The other old-head audit was cancelled because this test changes. Production implementation and frozen runtime APK remain unchanged; fresh exact-head independent audits will follow verification. |
|
P2 test-soundness repair is verified at |
|
Root verified actual hosted Android run41962444788 completed/success for exact head |
|
Fresh independent correctness/security audit cleared exact head |
moikdev
left a comment
There was a problem hiding this comment.
Root record of two independent full base-to-head audits at 86f1af0, both actually configured gpt-6.1-sol/high and performed read-only without delegation or companion consultation:
- Correctness/security: no actionable scoped findings. Reviewed ordered parser/API approval, sync/async bridge guards, cancellation/ownership, recovery intent/focus/lifetime, input revocation and committed-handoff acknowledgement. The supported fs.exists preapproval/approved control and same-mutant old-pass/new-intended-failure calibration are verified.
- UX/test provenance: no actionable scoped findings. Viewed all78 actual PNGs with paired receipts and current captions/commit-pinned embeds; distinguished the mutant test-failure app capture from a visible app error banner. Confirmed target/text/Return/settings and documented enlarged-layout limits.
Both independently verified413 checkpoint files, each source manifest at its declared revision, source/APK boundaries,119 parseable XMLs and78 raw CRLF captures. Current candidate credit is29 positives/nine cohorts/133 restoration checks; old-app UI negative, four outer outcomes, mutation checks and retained failures remain separate. They inspected receipts and executed no builds/tests/devices. Private originals/cross-boot and broader Android8 execution, Store, OEM, accessibility and signing/migration remain uncertified.
Root independently verified exact-head hosted Android run41962444788 completed/success on pull_request and local/android58115208341 success, unchanged remote/local head/base, and clean checkout. Earlier in-progress snapshots in the audit reports are historical. The implementation tree is f77f2280ad3d5718293ea06148254da87c4ca45d.
This COMMENT records the independent conclusions under the repository's parity loop; it is not a self-approval. Proceed only through the normal merge API with expected_head_sha=86f1af0cabdb498e18bbe625f1334a0dc734dc23.
|
PR #107 merged as |
Android 8's WebView 58 previously reached
ReferenceError: __tinycast is not definedafter evaluating the bundled runtime. Droidcast now checks syntax and required APIs first, then shows the actual provider/version, update guidance, explicit Engine settings, and Return when the engine cannot run it.Closes #68 within its detection/recovery scope. Android 8 extension execution remains partial under #7; #69, broader accessibility/OEM coverage, #89 and production signing/migration remain open.
The ES5 preflight parses each unchanged runtime asset without invoking it. An ordered, cancellable gate blocks host APIs, render/completion messages and action dispatch until all checks pass. Native recovery uses an OS-derived package intent and current-screen/focus/lifetime guards. Equivalent failures get separate recovery lifetimes. Reviewed input is revoked on failure; the existing bounded command-handoff acknowledgement remains intact.
Verified locally: 29 positive Android executions / nine complete cohorts / 133 successful restoration checks (including freshly rerun 7-case legacy and 5-case modern tablet cohorts); one identical-instrumentation old-app control has zero passes / one intended missing-recovery failure / ten checks. Four outer preservation/release checks remain separate. The matrix covers actual API26/WebView58 rejection at 100%/200%, modern WebView133 List/Grid actions, selected JSON, no-view input release, handoff and explicit paste fallback. All 573 pre-existing modern files/evidence and both original APKs are restored. 343 JVM cases, 124 Python cases per mode, debug/test and benchmark/test builds, lint 0 errors/56 warnings each pass. Existing assets and notices are byte-identical.
The runtime is
fec0a4bf, app SHA256ae03c859…4ec71.The synchronous gate assertion now uses supported
fs.existson the existing owned fixture. It is rejected before startup, then succeeds with the same engine, bridge and arguments after actual API36 approval. A separate single-guard mutant demonstrates the prior test's insensitive pass and the strengthened test's intended failure; both controls restore all original data/APKs with thirty checks. These counterfactual results earn no candidate credit. The two original affected cohorts remain historical, and their unsupported-operation rejection is withdrawn as independent gate proof. Production sources and the frozen candidate APK are unchanged. The strengthened core cohorts use test source29a0a5a1/ APK1e450e76…66f13; unaffected enlarged, caller-regression and common-UI observations retain their earlier APK identities. The current matrix uses four distinct, source-bound instrumentation APKs; no stamp-only equivalence or final-document-head runtime rerun is claimed. The report and checkpoint preserve failed attempts, separate recoveries, 62 original plus sixteen repair capture sets and declared publication transformations. Timeout/settings-launch exceptions remain source-covered without induced device failures. Modern enlarged profiles are functional smoke; this does not certify broad typography, accessibility, security or whole-Store parity.The matched before/after uses the same final common instrumentation and ES5 fixture on the owned API26 ARM64 image revision 1, physical 1080×1920/420 dpi, WebView 58.0.3029.125, 100% text. Old app
2f7a3edf/b0fa0e30…535e54; repaired appfec0a4bf/ae03c859…4ec71.Modern smoke: the dedicated API36 tablet, physical 1920×1200/240 dpi, WebView 133.0.6943.137, 100% text. These owned fixtures update local React state and do not certify Store commands.
Exact-head hosted Android CI and both fresh independent gpt-6.1-sol/high full-change audits are separate pending merge gates. Merge only the reviewed, verified head with an expected-head check.