Summary
The 0.1.0 release of @wdio/electrobun-service ships macOS-only with several documented feature gaps, all rooted in upstream Electrobun/CEF limitations (see #316 where they surfaced, and the package README's Known limitations). This issue tracks the CEF-side road to 1.0 from our repo: which upstream fix unblocks which service surface, why each is required, and the consumer-side re-fold work to do as each lands.
It is the sibling of #317 (the non-CEF / native-renderer track). The two tracks have independent upstream dependency sets and are both additive — a CEF-app user still needs every fix below even after #317 lands.
Upstream umbrella issue: to be filed against blackboardsh/electrobun post-0.1.0 (one umbrella linking their existing issues, not N duplicates). Link it here once filed: TBD.
Upstream fixes → what each unblocks
| # |
Upstream fix |
Existing upstream refs |
Unblocks in @wdio/electrobun-service |
| 1 |
Profile isolation — make the failed-persist:default fallback ephemeral-per-webview, or expose a per-window partition (BrowserWindow currently forces persist:default, which the CEF chrome-runtime cannot create as a non-global profile) |
blackboardsh/electrobun#380 (open, proper fix), #448 (open, identical Linux error), #278 (closed — the GetGlobalContext() band-aid that is why macOS recovers) |
The big one. Reliable multi-window (switchWindow/listWindows → re-fold the window e2e suite); de-flakes the macOS standard gate (drop specFileRetries: 3); reliable single-window target exposure (today a lone CEF window doesn't reliably appear in /json, so the fixtures open a staggered second window as a workaround); prerequisite for Windows /json |
| 2 |
Linux: enable remote_debugging_port (currently commented out in linux/nativeWrapper.cpp) |
blackboardsh/electrobun#445 (open, but framed macOS-only — Linux is disabled entirely, not opt-in) |
Any Linux CDP at all (together with fix 1) → re-add the Linux build + e2e CI legs |
| 3 |
Per-instance root_cache_path override (env/flag — currently hard-fixed, so ≥2 app processes share one cache root and CEF folds them) |
blackboardsh/electrobun#380 (same custom-cache-path theme) |
multiremote / parallel workers (maxInstances > 1) — a mandatory convergence feature |
| 4 |
Single-instance lock + open-url routing to the running/cloned instance |
none — net-new upstream ask |
Reliable triggerDeeplink → re-fold the deeplink e2e suite |
Windows native-mode support needs fix 1 (its global-context fallback serves no /json, unlike macOS); Linux needs fixes 1 and 2.
Consumer-side re-fold checklist (as each fix lands)
Why a repo-side issue
The upstream umbrella tracks the electrobun changes; this issue tracks both sets of changes from our side — the mapping from upstream fix → service surface, and the re-fold work that is ours regardless of where the fixes land. #317 deliberately scopes these out; this is where they live.
Summary
The
0.1.0release of@wdio/electrobun-serviceships macOS-only with several documented feature gaps, all rooted in upstream Electrobun/CEF limitations (see #316 where they surfaced, and the package README's Known limitations). This issue tracks the CEF-side road to1.0from our repo: which upstream fix unblocks which service surface, why each is required, and the consumer-side re-fold work to do as each lands.It is the sibling of #317 (the non-CEF / native-renderer track). The two tracks have independent upstream dependency sets and are both additive — a CEF-app user still needs every fix below even after #317 lands.
Upstream fixes → what each unblocks
@wdio/electrobun-servicepersist:defaultfallback ephemeral-per-webview, or expose a per-windowpartition(BrowserWindowcurrently forcespersist:default, which the CEF chrome-runtime cannot create as a non-global profile)GetGlobalContext()band-aid that is why macOS recovers)switchWindow/listWindows→ re-fold thewindowe2e suite); de-flakes the macOSstandardgate (dropspecFileRetries: 3); reliable single-window target exposure (today a lone CEF window doesn't reliably appear in/json, so the fixtures open a staggered second window as a workaround); prerequisite for Windows/jsonremote_debugging_port(currently commented out inlinux/nativeWrapper.cpp)root_cache_pathoverride (env/flag — currently hard-fixed, so ≥2 app processes share one cache root and CEF folds them)maxInstances > 1) — a mandatory convergence featureopen-urlrouting to the running/cloned instancetriggerDeeplink→ re-fold thedeeplinke2e suiteWindows native-mode support needs fix 1 (its global-context fallback serves no
/json, unlike macOS); Linux needs fixes 1 and 2.Consumer-side re-fold checklist (as each fix lands)
windowanddeeplinksuites into the CI matrix (currently local-only viaTEST_TYPE=window|deeplink)SevereServiceErrorguard (renderer-framed; seeerrors.ts)maxInstances: 1and validate multiremotespecFileRetries: 3ine2e/wdio.electrobun.conf.tsonce the macOS CEF race is gone0.xline per landed gap1.0.0at full parity (all intended platforms + the full convergent surface)Why a repo-side issue
The upstream umbrella tracks the electrobun changes; this issue tracks both sets of changes from our side — the mapping from upstream fix → service surface, and the re-fold work that is ours regardless of where the fixes land. #317 deliberately scopes these out; this is where they live.