Make AMPB a bundled browser runtime

This commit is contained in:
jwinterm
2026-07-07 17:05:58 -04:00
parent 8a96957f62
commit e059b134b3
16 changed files with 141 additions and 69 deletions
+2 -2
View File
@@ -23,7 +23,7 @@ class ConfigError(ValueError):
@dataclass(frozen=True)
class AppConfig:
state_dir: str = ".ampb"
default_engine: str = "hardened-firefox"
default_engine: str = "ampb-gecko"
isolate_by_transport: bool = True
transport_modes: dict[str, str] | None = None
@@ -68,7 +68,7 @@ def _parse_config(data: dict[str, Any], path: Path) -> AppConfig:
transports = _table(data, "transports", path)
state_dir = _string(browser, "state_dir", ".ampb", path)
default_engine = _string(browser, "default_engine", "hardened-firefox", path)
default_engine = _string(browser, "default_engine", "ampb-gecko", path)
isolate_by_transport = _bool(profiles, "isolate_by_transport", True, path)
transport_modes = _transport_modes(transports, path)
+24 -24
View File
@@ -80,31 +80,40 @@ TRANSPORT_DEFINITIONS = (
BROWSER_BACKENDS = (
BrowserBackend(
"hardened-firefox",
"primary web runtime",
"ampb-gecko-desktop",
"primary desktop runtime",
"planned",
"desktop, android",
"managed profile, policy, and native transport launcher",
"strong baseline; track Firefox ESR and Tor Browser hardening choices",
"Default AMPB web runtime before a full browser fork.",
"desktop",
"bundled Firefox/Gecko-lineage app with AMPB-owned profiles and transports",
"no system browser dependency; track Firefox ESR, Tor Browser, and Mullvad hardening choices",
"Default desktop runtime; users should not need Firefox installed.",
),
BrowserBackend(
"tor-browser-compatible",
"tor-hardened target",
"ampb-geckoview-android",
"primary android runtime",
"planned",
"desktop, android",
"adopt, launch, or fork after transport contracts are stable",
"highest Tor web target; do not claim equivalence until Tor Browser patches are tracked",
"Path toward real Tor Browser-grade behavior for .onion browsing.",
"android",
"bundled GeckoView/Fenix/Tor Browser Android-lineage app with foreground transports",
"no system browser dependency; app owns profile, proxy policy, and transport lifecycle",
"Default Android runtime for real mobile AMPB.",
),
BrowserBackend(
"webkit-ios-shell",
"ampb-webkit-ios",
"ios runtime",
"planned",
"ios",
"native shell with embedded transports and isolated web views",
"bundled iOS app shell with WebKit views and embedded transport runtimes",
"platform constrained; avoid clearnet fallback and isolate transport state",
"Required for App Store-style iOS builds outside special browser-engine entitlements.",
"Default iOS path unless alternate browser-engine entitlements become practical.",
),
BrowserBackend(
"tor-browser-lineage",
"tor-hardened target",
"planned",
"desktop, android",
"reuse or track Tor Browser patches after AMPB transport contracts are stable",
"highest Tor web target; do not claim equivalence until Tor Browser patches are tracked",
"Path toward real Tor Browser-grade behavior for .onion browsing.",
),
BrowserBackend(
"gemini-native-viewer",
@@ -115,13 +124,4 @@ BROWSER_BACKENDS = (
"no web engine or shared browser storage required",
"Used for Gemini and similar lightweight document transports.",
),
BrowserBackend(
"chromium-cef",
"prototype fallback",
"fallback",
"desktop",
"profile launcher only when Firefox path is blocked",
"not a Tor Browser privacy baseline",
"Allowed for experiments, but not the main privacy-browser strategy.",
),
)
+3 -3
View File
@@ -24,9 +24,9 @@ class PlatformCapability:
PLATFORM_CAPABILITIES = (
PlatformCapability("clearnet", "desktop", "ready", "ready", "unsupported", "unsupported", "Use system browser or isolated desktop profile."),
PlatformCapability("clearnet", "android", "ready", "ready", "unsupported", "unsupported", "Use Android browser shell, WebView, or Custom Tabs."),
PlatformCapability("clearnet", "ios", "ready", "ready", "unsupported", "unsupported", "Use iOS browser shell with platform web constraints."),
PlatformCapability("clearnet", "desktop", "ready", "ready", "unsupported", "unsupported", "Use bundled AMPB Gecko desktop runtime with isolated profile."),
PlatformCapability("clearnet", "android", "ready", "ready", "unsupported", "unsupported", "Use bundled AMPB GeckoView Android runtime with isolated profile."),
PlatformCapability("clearnet", "ios", "ready", "ready", "unsupported", "unsupported", "Use bundled AMPB iOS shell with platform WebKit constraints."),
PlatformCapability("tor", "desktop", "ready", "ready", "planned", "planned", "Adopt local Tor or prompt before managed Arti SOCKS setup."),
PlatformCapability("tor", "android", "planned", "planned", "planned", "planned", "Use an app-owned foreground service; prefer Arti/Tor runtime integration where available."),
PlatformCapability("tor", "ios", "foreground-only", "planned", "foreground-only", "bundled", "Use foreground embedded Arti sessions; do not assume background service or global proxy."),