50 lines
1.9 KiB
Markdown
50 lines
1.9 KiB
Markdown
# ECP-0099: NBC Hidden Native Worker Mode Instead of True Headless Chrome
|
|
|
|
Status: Proposed
|
|
|
|
## Decision
|
|
|
|
Do not target true Chrome headless mode for NBC playback in `every.channel`.
|
|
|
|
Instead, add a macOS hidden native-worker mode for the existing `WKWebView` path so NBC playback
|
|
can run without a visible browser window when the session is already authenticated.
|
|
|
|
The desktop app will:
|
|
|
|
- allow the native NBC webview windows to start hidden behind `EVERY_CHANNEL_NBC_HIDE_WINDOWS=1`
|
|
- surface those hidden windows only when the navigation flow reaches an interactive auth page
|
|
- refuse the visible Chrome fallback when hidden native mode is explicitly requested
|
|
|
|
## Motivation
|
|
|
|
On this Mac, local Google Chrome in true headless mode does not expose EME / `requestMediaKeySystemAccess`,
|
|
which makes Widevine-backed NBC playback non-viable in a real headless browser process.
|
|
|
|
That means the practical path to future unattended playback is not “headless Chrome,” but an
|
|
invisible native browser surface with a warm authenticated session and explicit surfacing only
|
|
when auth has expired.
|
|
|
|
## Scope
|
|
|
|
In scope:
|
|
|
|
- macOS hidden-window behavior for the existing NBC `WKWebView` path
|
|
- auth-page detection that reveals the hidden window when user interaction is required
|
|
- blocking visible Chrome fallback when hidden mode is requested
|
|
|
|
Out of scope:
|
|
|
|
- automating Verizon credential entry in this cut
|
|
- making Chrome headless support Widevine / EME
|
|
- guaranteeing unattended runs when the MVPD session has expired
|
|
|
|
## Alternatives Considered
|
|
|
|
- Use true Chrome headless. Rejected because local testing showed no EME path.
|
|
- Keep only the visible native/Chrome flows. Rejected because a warm session should be able to run
|
|
without putting browser chrome on screen.
|
|
|
|
## Rollout / Reversibility
|
|
|
|
- The change is opt-in behind `EVERY_CHANNEL_NBC_HIDE_WINDOWS=1`.
|
|
- Roll back by removing the hidden-window flag and retaining the visible native flow from ECP-0098.
|