feat(browser): add optional native title-bar bridge - #64
Conversation
Review: optional native title-bar bridgeThe change is small and purely additive. The ABI dump is regenerated, the version is changed only in the Potential bugs / design issues1. The singleton only works if host and plugin resolve the same
2. 3. Lifecycle leak on plugin unload or hot-swap. 4. API evolution
Code quality (minor)
Test coverageNo tests are added, although the ownership logic is pure and easy to pin. This repo already tests similar contracts (
Security / performanceNo security concerns: it's in-process state with no I/O. Performance is fine. Snapshot maps mean host chrome recomposes on each SummaryPoints 1–3 should be resolved or explicitly documented before release, since this is the first release of the type and later changes need coordinated releases. Point 1 is the one that could make the whole feature silently fail. The rest is polish. The release-ordering note in the description (this lands before the Fluck Browser and BossConsole PRs, targeting 1.0.94) looks right. |
Review: feat(browser): add optional native title-bar bridgeThis is a small, additive change and it follows the repo conventions: version touched only in 1. Constructor-shaped state classes will freeze on the first release (evolution risk)
Adding any field later (a Options, in rough order of preference:
This PR is the cheapest point to decide, because after 1.0.94 ships the shape is permanent. 2.
|
|
Review: optional native title-bar bridge The design holds up. Using owner identity on Worth settling before release (hard to undo later)
Correctness and robustness
Code quality nits
Test coverage
Summary The approach is solid and the change is additive. I recommend resolving points 1-3 before cutting 1.0.94, because after that the shape of this |
Adds an optional browser/title-bar handshake so a host can present navigation, URL editing, autocomplete, and the browser's existing suggestion content in native chrome. The browser retains its in-pane toolbar until its window or handle is explicitly hosted; unhosting restores the fallback.
The new API types are additive and UI-thread scoped. Handle publications use owner identity so disposal of an old composition cannot unregister its replacement.
Validation:
./gradlew buildpassed, includingapiCheckand 120 tests. The committed ABI dump includes the new declarations.Release this before the dependent Fluck Browser and BossConsole PRs.
mainremains version 1.0.93 because the release workflow increments before publishing; this change is intended for 1.0.94. Recheck that version if another API release lands first.Host integration: risa-labs-inc/BossConsole#1736. Merge the API release before the browser and host integrations.