Web開発
Search – macOS向けの小さく高速なWebKitブラウザ
Search – A small, fast WebKit browser for macOS (github.com)
要約
Searchは、macOS向けの軽量で高速なWebブラウザです。タブ表示やアドレス入力フィールドなど、必要最低限の機能に絞り込み、広告ブロックやリーディングモード、ピクチャーインピクチャーなどの機能を内蔵しています。Chrome拡張機能にも対応しており、プライバシーを重視した設計が特徴です。
全文翻訳
Search macOS向けの小さく、速く、静かなWebブラウザ。Office Commun製。macOS → ダウンロード · macOS 14以降 · 無料 · 約3MB Homebrewでも: brew install --cask driceroland/tap/search これは何かSearchは、邪魔なものが何もないブラウザです。タブの列—上部または左側、お好みで—とページ。ツールバーはなく、スタートページもなく、提案のサイドバーもなく、サインインするアカウントもなく、注意を引きたいものもありません。1つのフィールドにアドレスまたは数語を入力すると、ページにアクセスできます。これは、すべてのMacに既に搭載されているエンジンであるWebKitを使用しています(Safariが動作するのもこれです)。そのため、アプリ全体がディスク上で約3MBで、瞬時に開きます。ダウンロード、更新、メモリ保持が必要なChromiumのコピーはもうありません。ブラウザで一日中過ごし、製品になったブラウザにうんざりしていたデザインスタジオによって構築されました。これはツールです。何をするか1つのフィールド。アドレスを入力するとそこへ移動します。単語を入力すると検索します。自分の履歴からアドレスを補完し、Returnキーを押すまで入力した内容はどこにも送信されません。邪魔にならないタブ。一日中開いているページをピン留めすると、文字またはアイコンに縮小されます。前のセッションのタブは瞬時に戻り、クリックするまでコストはかかりません。⌘Kは開いているタブを名前で一覧表示します。リーディングモード。⇧⌘Rはページを記事だけに剥ぎ取ります。何かを、永久に隠す。⇧⌘Hを押してから、Cookieバナー、ニュースレターオーバーレイ、「関連」のナンセンスなレールをクリックします—それは消え、そのサイトでは次回も消えたままです。ページが1フレームも描画される前です。ページより前に実行される広告ブロッカー。サードパーティのトラッカーと広告ネットワークはネットワークレベルで停止されるため、レンダリングするものはなく、遅延させるものもありません。デフォルトでオン、問題が発生した場合はサイトごとにオフ。あなたを追うビデオ。⇧⌘Pはビデオをページから小さなウィンドウに移動させ、他のアプリも含め、常に前面に表示されます。パスワードはキーチェーンに。Searchはサインインが実際に機能した後に保存するかどうかを提案し、クリックするとフィールドの下に保存されたアカウントを提案します—Safariと同じ方法で、決して自分で入力することはありません。すべてがmacOSキーチェーンに保存され、システムによって暗号化され、Searchのみが読み取ることができます。Chrome、Arc、Dia、Brave、Edgeからワンクリックでインポートできます。Macから何も離れません。ライト、ダーク、またはmacOS標準。フレームとページが追従します。ブックマーク、履歴、ダウンロード—それぞれがパネルになり、それぞれが検索可能で、それぞれが1つのキーストロークでアクセスできます。Chrome拡張機能、Chromeなし。設定›拡張機能にChrome Web Storeのリンクを貼り付けるか、Searchで拡張機能のページを開いて追加を押します。これはWebKit独自の拡張機能エンジン—Safariが使用するもの—で動作します。ChromeにはWebKitにないAPI(ブックマーク、履歴、ダウンロード、サイドパネル、オフスクリーン文書、フォント、通知、音声、OAuthサインイン)がありますが、Searchはそれらを自分で補完します。それらはパズルボタンの後ろにあります。頻繁に使用するものをピン留めします。自分で構築していますか?フォルダーをアンパックされていない拡張機能としてロードし、変更ごとに再読み込みを押します。Chromeの開発者モードと同様です。macOS 15.4以降。静かに更新されます。1日に1回、新しいビルドがないかチェックし、ダウンロードし、Office Communによって署名されていることを確認し、次の起動時に交換します。何も自動的に再起動しません。何をしなかったか意図的に: 自宅にいるように感じるためにインストールする必要のある拡張機能はありません。広告ブロック、 clutterの非表示、リーディングモード、ピクチャーインピクチャー、パスワードは組み込まれています。拡張機能はそれ以外のすべてのためにあります。同期なし、アカウントなし、クラウドなし。あなたのタブ、履歴、パスワードはあなたのMac上にあり、どこにもありません。テレメトリなし、分析なし、クラッシュレポートの送信なし。あなたのMacから離れるのは、あなたが要求したページ、そのアイコン、そして新しいバージョンがあるかどうかを確認するための1日1回の小さなリクエストだけです。1つのウィンドウ。タブは「新しい」ものの唯一の種類です。具体的にプライバシーとは何かどこにあるか誰が読めるかパスワードmacOSログインキーチェーン、通常のキーチェーンアイテムとしてSearchとタグ付けOffice Communによって署名されたSearch。他のアプリはシステムの許可ダイアログをトリガーします。履歴、ブックマーク、開いているタブ、非表示の要素~/Library/Application Support/Search/内の小さなJSONファイルあなた。Cookieとサイトデータアプリ用のWebKit独自のストアそれらを設定したサイト、どのブラウザでも同様。拡張機能~/Library/Application Support/Search/Extensions/内のアンパックされたもの、WebKitの拡張機能ストア内のデータ追加時に許可した権限内の各拡張機能。その他なし。サーバーはありません。— プライベートタブ(⇧⌘N)は独自のCookieジャーを持ち、閉じるときに何も残しません。キーボード⌘Lアドレス · ⌘Kタブ切り替え · ⌘T新規タブ · ⌘W閉じる · ⇧⌘T再開 ⌘[ ⌘]戻る、進む · ⇧⌘[ ⇧⌘]前のタブ、次のタブ · ⌘1–⌘9ジャンプ ⇧⌘Sタブを上部または左側に表示 · ⌘Sサイドバーを折りたたむ · ⇧⌘Bこのページをブックマーク ⇧⌘Rリーディングモード · ⇧⌘Pビデオをフローティング表示 · ⇧⌘H何かを隠す · ⇧⌘Uここで何が隠されているか ⌘F検索 · ⌘Dタブを複製 · ⇧⌘Cアドレスをコピー · ⇧⌘V貼り付けて移動 ⌘Y履歴 · ⇧⌘Jダウンロード · ⌘,設定 · ⌥⌘Lパスワード ⌃Tabと⌃⇧Tabでタブの行を移動します。Tabはフォーム内の移動のためにページのままで、フォーム内の移動に使用されます。escは開いているものを閉じます。開発者向けソースコードがここにある理由パスワードと履歴を処理するブラウザが何をしているかを誰でも正確に読み、自分でビルドし、問題のあるものを修正できるようにするため。コードは実際に読むのに十分小さいです—約12,700行のSwift、AppleがmacOSで出荷しているもの以外の依存関係なし、懸念事項ごとに1つのファイル。ビルドmacOS 14以降、Xcode 16 / Swift 6ツールチェーンswift build — SwiftPMバイナリから直接アプリを実行します。./build.sh — build/に実際のダブルクリック可能なSearch.appをアセンブルします。アドホック署名されているため、自分のMacで実行できます。自分でビルドしたものは、署名もされず、Office CommunのDeveloper IDも付いていないため、最初の起動時には右クリック→開く(またはシステム設定→プライバシーとセキュリティで許可)が必要です。これは、App Storeや署名されたDMG以外のアプリで発生するのと同じことです。また、独自のビルドは、署名されたSearchのものとは別にパスワードを保持します。キーチェーンは、署名によって2つを区別します。./build.sh release dmgはSearch.dmg / Search.zipも作成します。./build.sh release shipは、署名とスタンプも行います—このステップにはDeveloper ID証明書とAppleの認証情報が必要なため、Office Commun自身のリリースにのみ実際に機能します。構築方法描画されるすべてにSwiftUI、macOSでSwiftUIが届かない少数のもの(ウィンドウのタイトルバー、タブ行の空の部分でウィンドウをドラッグ)にAppKit、ページにWKWebView。1ページにつき1つのタブ。そのWebビューは遅延して構築されます—前のセッションから復元されたタブは、切り替えるまでプロセスを消費しません。これが、20個のタブで起動しても瞬時である主な理由です。各ページはSafariと同様にWebKit独自のコンテンツプロセスで実行されます。閉じたタブは本当に消えます。広告ブロッカーは、起動時に一度コンパイルされ、WebKitのネットワーキング内で強制されるWKContentRuleListです。リクエストが行われる前に—JavaScriptブロッカーとは異なり、実行時にコストはかかりません。非表示の要素は、ドキュメント開始時にスタイルシートとして注入されるサイトごとのセレクターリストであり、何も表示されたり消えたりすることはありません。すべての色はDesign.swiftのライト/ダークペアであり、ウィンドウの外観によって解決されます。コードの他の部分はモードを知りません。拡張機能はWKWebExtension(macOS 15.4+)で実行されます。Crx.swiftは、Chrome Web Storeの公開アップデートアドレスから拡張機能をフェッチし、アンパックされる前に拡張機能のIDに対してCRX3署名をチェックします。Extensions.swiftは、ブラウザ側のWebKitの契約—タブ、ウィンドウ、権限、ポップアップ—です。ExtensionShims.swiftは、インストール時に拡張機能のワーカー、ページ、コンテンツスクリプトに小さなスクリプトを追加します。これは、WebKitにないChrome API—userScripts、privacy、browsingData、sessions、古いFileSystem APIなど—をSearchによってネイティブに応答される呼び出しとして定義し、WebKitがChromeと異なる場所を修正します—ページからの応答がd