搜尋

Refrax – 我從零打造的 Arc 瀏覽器替代品

在兩個瀏覽器視窗中開啟同一個分頁。在 Chrome 或 Safari 中,你會得到兩個互不相連的頁面。在 Arc 中,一個視窗會顯示佔位符。在 Zen 中,它會默默建立重複分頁。而在 Refrax,我打造的瀏覽器裡,兩個視窗會即時同步顯示同一個頁面。同一個網頁,想開多少視窗都可以。這本應是不可能的。WebKit 的 WKWebView 一次只能存在於一個視圖層級中。隨著 macOS 26,Apple 新增了一個 SwiftUI API,將 WebView 與 WebPage 分離,因此你可能會得到多個視圖參照同一個頁面。但如果你嘗試這麼做,你的應用程式會崩潰。WebKit 原始碼中有個前提條件,附帶這段註解:「無論如何,我們不能擁有多個擁有頁面,但我們需要決定這是否為錯誤、能否優雅處理,以及其確定性可能如何...」所以,以下是我的做法。CAPortalLayer 是一個自 macOS 10.12 以來就存在的未公開私有類別。它透過參照相同的 GPU 記憶體(而非複製)來鏡像圖層的合成輸出。每一次滾動、動畫或重繪都會即時反映。這就是 Liquid Glass 效果、iOS 文字選取放大鏡以及拖放時的殘影背後的技術。Apple 將入口用於特效。我則用它來將同一個網頁放入兩個視窗。Refrax 每個分頁保留一個真正的 WKWebView,並在其他地方顯示 CAPortalLayer 鏡像。當你點擊不同視窗時,協調器會將真正的視圖移至該處,而舊視窗則獲得一個入口。你無法分辨哪個是哪個。這聽起來理論上很簡單,但要讓它真正無縫運作,其實費了不少功夫。每個 macOS 視窗都有自己的渲染上下文,且上下文 ID 是非同步更新的,因此立即建立入口會捕獲過時的 ID 而無法渲染任何內容。入口建立需要延遲,但延遲又會造成視覺空隙。我使用一個私有的 CoreGraphics 函數捕獲 GPU 快照,並將其作為備用方案放置在入口後方。另一個困難點是,這些全都沒有文件記載。入口非常善變,如果使用不當,會導致應用程式崩潰。我必須檢查標頭檔,然後反組譯二進位檔,以精確探索其運作方式,從而打造出穩固的產品。在此之前,我從未開發過瀏覽器,我只是個使用者。我從 2022 年開始使用 Arc。我記得當時索取邀請、學習快捷鍵、慢慢習慣它。起初我並不喜歡它,因為對我來說,它含有太多 Google Chrome 的影子,而我當時一直在用 Safari。但它逐漸吸引了我,等到它基本上被放棄並賣給 Atlassian 時,我已經回不去 Safari 了。我嘗試了所有替代品:Zen、SigmaOS、Helium。沒有一個感覺對味,而且我也不想要另一個 Chromium 分支。WebKit 隨作業系統提供,但你得到的只有渲染引擎。分頁、歷史紀錄、書籤、密碼、擴充功能,其他所有東西都必須另行打造。於是,身為一個非常理性的人,我決定從零開始打造自己的 Arc 替代品。而我做到了。Refrax 使用 Swift 和 Objective-C 建構,沒有任何外部依賴。應用程式本身不到 30 MB。我現在開啟了 393 個分頁,使用了 442 MB 的記憶體;而在 Safari 中,150 個分頁就已經超過 1 GB。我已經每天使用它超過一個月,我的一些朋友也是。入口鏡像只是其中一項功能。同樣的方法——找出 Apple 為自己打造的技術,並用它來創造他們未曾想過的東西——貫穿了整個瀏覽器。你可以用可調的混合模式和透明度為玻璃視窗著色。緊湊模式下的側邊欄會取樣頁面並匹配顏色。而且它支援 Firefox 和 Chrome 擴充功能。Alpha 版本已公開。從連結的網站下載,輸入 REFRAX-ALPHA-HACKERNEWS 來啟用。無需帳戶。遙測數據僅包含崩潰報告和每日活躍使用者 ping,別無其他。如果你發現錯誤——這是我獨自打造的,所以我真的會閱讀你的報告。

  • MacOS
  • 整合功能
  • 瀏覽器擴充功能
Mar 22, 2026造訪官網

AI 摘要

Refrax是一款從零打造的macOS瀏覽器,讓使用者能同時在多個視窗中開啟相同網頁,並利用蘋果私有API實現即時鏡像。它提供可自訂視窗透明度及支援Chrome/Firefox擴充功能等特色。

適合誰

適合需要跨多個顯示器查看和互動相同網頁內容的進階使用者, 尋求以WebKit為核心的Arc瀏覽器替代方案的用戶, 對探索未公開macOS功能以應用於軟體開發有興趣的開發者

為何值得關注

Refrax利用macOS私有的CAPortalLayer技術,讓使用者能夠在多個視窗中同時顯示並互動單一網頁。

核心功能

  • 跨多視窗複製分頁,即時同步更新
  • 利用未公開的 CAPortalLayer 實現鏡像內容
  • 支援 Firefox 和 Chrome 擴充功能
  • 可自訂視窗色調,具混合模式與透明度調整

使用場景

  • 開發者在除錯響應式網頁應用時,可以並排開啟兩個Refrax視窗顯示同一頁面,同時檢視並測試其在不同螢幕尺寸下的行為,無需手動重新整理或切換分頁。
  • 內容創作者管理社群媒體時,可在一個Refrax視窗保持直播動態或儀表板開啟,同時在另一個視窗撰寫貼文,確保工作時能隨時看見即時更新。
  • 研究人員比對文件或網頁的兩個版本時,可在不同Refrax視窗分別開啟,實現即時的視覺對比,並在兩個視窗間無縫同步捲動。