bearstart: port the native shell's branded start page into the Gecko build#79
Merged
Conversation
…build The WKWebView shim had a real identity — bear wordmark, trust pills, sovereign search with inline federated results, shortcut tiles, green token system. The production Gecko build opened on an anonymous gutted about:newtab. This ports that page in as the new-tab + home page on all three platforms: - settings/start/bearbrowser-start.html: the page, with DM Sans self-hosted (variable woff2, zero network fetches) instead of the mac-only SF Pro stack - packaged into browser omni.ja at browser/bearstart/ via FINAL_TARGET_FILES (same mechanism as bearblocker) -> resource:///bearstart/... works identically on Linux/Windows/macOS, no package-manifest entries needed - new tab: AboutNewTab.newTabURL override via autoconfig JS (there is no pref for this) — appended to bearbrowser.cfg on Linux/Windows by the overlay script; injected as a minimal cfg post-package on macOS. Requires general.config.sandbox_enabled=false (our own baked-in file, same trust as the binary; LibreWolf ships its cfg the same way) - homepage: fixed the DEAD pref value — it pointed at the old native shell's absolute /Applications path (macOS-only, gone). Now the resource URL. Also dropped browser.newtab.url, removed from Firefox years ago - search: sovereign endpoints only (search-api JSON inline w/ receipt line, SearXNG HTML fallback), straight from the shim
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the identity gap: the WKWebView shim opened on a branded page (bear wordmark, trust pills, sovereign search, shortcut tiles, green tokens) while the production Gecko build opened on an anonymous gutted
about:newtab. This ports that page into the real build as new-tab + homepage on all three platforms.Mechanism
settings/start/;bearbrowser-patches.pypackages them into browser omni.ja atbrowser/bearstart/viaFINAL_TARGET_FILES— the proven bearblocker mechanism, soresource:///bearstart/bearbrowser-start.htmlresolves identically everywhere with no package-manifest entries.AboutNewTab.newTabURLfrom privileged autoconfig JS. Appended to the generatedbearbrowser.cfgon Linux/Windows (overlay script); injected as a minimal cfg post-package on macOS (which doesn't emit the cfg — see the nightly-dmg manifest-relax step). Needsgeneral.config.sandbox_enabled=false; the cfg is our own baked-in file, same trust level as the binary (LibreWolf ships identically). Override is try/caught so it can never break startup./Applicationsfile path (macOS-only, no longer exists). Now the resource URL. Also removedbrowser.newtab.url, which Firefox deleted years ago.Verification
Not buildable in PR CI (nightly lanes trigger on main / dispatch). After merge: dispatch nightly-linux or nightly-dmg and check (1) new tab opens the bear page, (2) homepage same, (3) DM Sans renders (no network fetch), (4) search falls back to searx.socioprophet.ai.
Known follow-up (found during this audit)
apply-bearbrowser-branding.shonly copiesbranding/bearbrowser.svgover librewolf SVGs — no .icns/.ico/.png generation — so the packaged apps still wear default LibreWolf/Firefox raster icons. Separate PR.