test(vtt-thumbnail): [PKG-VTT-THUMB-05] verify historical core and fullscreen combinations

This commit is contained in:
Harvey Zhao committed 2026-09-14 09:57:21 +08:00
1 parent 4fa5c68be9
commit 07d5bfef2e
14 files changed
+2984 -10

No files matched your search

@@ -0,0 +1,74 @@
# PKG-VTT-THUMB-05: browser combination checkpoint
Baseline: `4fa5c68be9d2d0d60d725c2a87b8d92a4dc8a85a`. Task05 remains doing;
this checkpoint does not claim physical-device or complete distribution acceptance.
## Inputs and actual coverage
The new 5.1.6 core snapshot verifies the registry SHA-512, archive SHA-256 and
197 archive members. The browser server verifies the actual main entry before
serving it. This is the source-associated core for usable VTT 1.0.1, not a newly
invented minimum-supported version. Existing frozen 5.1.7, 5.3.0 and 5.4.0 inputs
and the current candidate complete the five-core comparison. Npm 5.3.1 was
previously found absent; 5.3.0 is only an adjacent published stable comparison.
`vtt-thumbnail-combinations.spec.js` covers:
- Candidate plugin on all five cores: actual red/blue preview pixels from DOM
screenshots, real pointer positioning, Chapter progress coexistence, native
video play/pause, web and native fullscreen, source switching without refetch,
unchanged control identity and owned UI removal on destroy.
- Actual published 1.0.2/1.0.3/1.1.0 main bundles on candidate core, and 1.0.1
on 5.1.6: historical callable/default exports, previews, control identities,
source switching and a single VTT fetch. The historical compact-arrow input
requirement is explicit; ordinary-arrow parser failures remain separate tests.
- Android user-agent profiles with synthetic DOM touch payloads: the actual core
gesture handlers emit setBar and perform native media seeking, the preview
follows the drag and its real 500ms timer hides it. This is not trusted OS input
or physical Android/iOS evidence.
- Existing native fetch/abort, malformed input/recovery and lifecycle tests remain.
The current source build is the plugin input. This is not an installed tarball,
every old legacy bundle, a browser-device farm or the online editor. Those gates
remain task06/EX-03 and the relevant device/release tasks. No new dependencies,
runtime code, public types or shippable build artifacts change in this checkpoint.
## Findings and failed runs
VTT 1.0.1 registers `thumbnails`. Actual core 5.1.6 creates its built-in control
only when a thumbnail URL is configured, so the plugin can register normally.
Core 5.1.7 reserves the control unconditionally. The resulting duplicate-name
rejection reproduces on 5.1.7, 5.4.0 and candidate cores in all three engines.
The nine explicit failure assertions are historical evidence, not successful
old-plugin/new-core acceptance. Preserve the current reserved control; any
compatibility accommodation must account for its public identity and duplicate
registration behavior. The pairing is recorded as an open release-review issue.
The initial 27-case run had nine passes and eighteen failures. Fifteen failures
came from test-only setBar calls without the event required by newer core hover
handlers; the tests now use real mouse movement. Three exposed the 1.0.1 collision.
Legal and incompatible combinations now have distinct explicit assertions.
The expanded 69-case run passed. Adding native fullscreen then produced fourteen
passes and one Chromium candidate screenshot timeout. Trace showed actual
fullscreen ownership followed by a hidden preview at screenshot time; cleanup
also timed out after the interrupted screenshot. Mouse positioning now first
uses Playwright's stable/actionable progress hover, then computes the desired
position, and verifies visible preview/background before screenshot. The final
69-case run passes. This changes test interaction timing, not player code, and
does not prove a product fix for every prior timeout. Initial reports are retained;
no retry, skip, timeout increase or weaker pixel expectation was introduced.
## Verification and handoff
`../baselines/vtt-thumbnail-combinations.json` records exact browser versions,
input identities, passes/failures, screenshots/report fingerprints and Node/CI/lint
results. Nine passing assertions deliberately confirm historical incompatibility.
The task remains open for physical-device evidence, final candidate revalidation
and disposition of the old reserved-name pairing; controlled HTTP fixtures do
not establish external CDN or every sprite format's behavior.
The package architecture and environment/browser guides describe actual scope.
Revert this checkpoint as one unit to remove the new route, frozen core snapshot,
combination tests and evidence without reverting the earlier VTT implementation.
Local checkpoint commit only; no push or publication.