← Commit history

Delete skills/hydrogen-browser-picker-mac

Kyle Bergstedt ·e84fefc8dc · ·parent 1032146
2 files changed −72
skills/hydrogen-browser-picker-mac/._SKILL.mddeleted
⋯ 1 unchanged line ⋯
skills/hydrogen-browser-picker-mac/SKILL.mddeleted−72
@@ -1,72 +0,0 @@-----name: hydrogen-browser-picker-mac-description: >-  macOS platform companion to hydrogen-browser-picker — the Apple-specific half of how-  Adom Hydrogen intercepts EVERY URL and routes it through the Browser Picker.-  The picker dialog, the 3 branded variants, the 5-second auto-countdown, the-  fresh-window toggle, and the prefs API all live in hydrogen-browser-picker-  (adom/hydrogen-bootstrap); THIS skill carries only what's wired differently on macOS:-  the top frame is a WKWebView served over http://localhost (not WebView2), and the-  native-browser targets are launched via LaunchServices (`open -a`).-  Trigger words — browser picker macos, WKWebView interception, open -a, native-  browser macos, Safari Chrome Arc Edge, localhost top frame, shell.open macos.------# hydrogen-browser-picker (macOS) — WKWebView interception + `open -a`--This is the **macOS half** of `hydrogen-browser-picker`. The user-facing behavior — every-URL routes through the Browser Picker (native browser / Hydrogen tab / Hydrogen window / Pup),-the 3 branded variants, the 5-second auto-timer, the fresh-window toggle, the prefs API-— is **identical on every host** and lives in the generic **hydrogen-browser-picker** skill.-Read that first; this skill only documents what's Apple-specific.--## The top frame is a WKWebView over `http://localhost`--Hydrogen's webview host on macOS is **WKWebView** (via wry), and the Hydrogen frontend is-served over `http://localhost` rather than the Windows `tauri.localhost` / WebView2-origin. The picker's same-origin / external-domain decision (allow localhost·tauri·-data·about, route everything else) is the same contract, but it sits on the WKWebView-navigation surface.--## ⚠️ The interception is wired differently from Windows — not documented here--The generic skill's **6 interception layers** (`on_new_window` / `on_navigation` /-`add_FrameNavigationStarting` / `add_NewWindowRequested` /-`AddScriptToExecuteOnDocumentCreated` / `add_ContextMenuRequested`) are the **WebView2-COM machinery** — that is the *Windows* lineage. On macOS the equivalent interception-runs against WKWebView and is wired differently. **Do NOT assume a macOS COM/CDP-equivalent of those specific APIs** — there is no `ICoreWebView2_11`, no-`AddScriptToExecuteOnDocumentCreated`, no `add_ContextMenuRequested` here. The-Tauri-level wrappers (`on_new_window` / `on_navigation`) are cross-platform; the raw-per-frame COM layers are not. When you need the low-level catch-point, say plainly that-the macOS mechanism is WKWebView-based and wired differently, rather than citing a-WebView2 API that doesn't exist on this host.--## Native browsers launch via LaunchServices (`open -a`)--When the picker routes to a **native desktop browser**, macOS opens it through-LaunchServices, not by resolving an `.exe` path:--- The default/shell-open path uses `open <url>` (`screenshot.rs`, `open_in_browser_profile`).-- A named browser uses `open -a "<App Name>" <url>` — `screenshot.rs` maps-  `chrome→"Google Chrome"`, `edge→"Microsoft Edge"`, `firefox→"Firefox"`,-  `brave→"Brave Browser"`; Safari and Arc are likewise app-name targets. This handles-  user-relocated installs uniformly (no hard-coded path).-- **Fresh window** (`fresh:true`) resolves a concrete browser binary and passes-  `--new-window` (Chromium) / `-new-window` (Firefox) before the URL, instead of plain-  `open` — `open` alone can't force a new window. See `lib.rs` around the-  `open_in_browser_profile` fresh-window branch. The auto-foreground behavior of a-  freshly-launched window holds on macOS just as on Windows.--## `shell:default` still applies--The "open in native browser" path still ultimately calls the Tauri shell plugin, so-both `shell:allow-open` AND `shell:default` must be in both capability files — that-requirement is platform-agnostic and is covered in the generic skill.--## Not applicable on macOS--The WebView2 / `ICoreWebView2` COM detail — the 6 named interception layers, the-`AddScriptToExecuteOnDocumentCreated` cross-origin-iframe script, the-`ICoreWebView2_11` context-menu wiring, the webview2-com 0.38 `.cast()` patterns, and-launching `chrome.exe`/`msedge.exe` by resolved path — is the Windows lineage;. On macOS it's WKWebView + `open -a`, full stop.