1.9 KiB
1.9 KiB
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
WKWebViewpath - 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.