Macのブラウザをオープンソースで選ぶ|3つのエンジンと限界
Macでオープンソースのブラウザを探す動機は、だいたい2つに分かれる。閲覧の記録を広告事業を持つ会社に渡したくないか、1社の方針でブラウザの見た目や機能が毎年変わるのに付き合いたくないか。どちらも筋が通った理由だ。ただ、検索して出てくる一覧は誤解を招きやすい。中身まで全部公開されているものと、一部だけ公開しているものが同じ行に並び、レンダリングエンジンと出荷されているアプリが同じものとして扱われている。この記事では、Macで実際に選べるものは何か、公開されている代わりに何を諦めているのか、そしてどれを選んでも解けない問題がどこにあるのかを順に見ていく。
「オープンソース」で手に入るものは3つある
まとめて語られやすいが、手に入るものは性質の違う3つに分かれる。自分が欲しいのがどれなのかを先に決めると、選択肢はかなり絞られる。
1つ目は、動いているコードを読めることだ。読めるだけでなく、他の人がすでに読んでいる状態になる。顧客のデータを扱う仕事で、社内のセキュリティ審査に出す必要があるなら、実質これだけが通る根拠になる。
2つ目は、1社の方針から独立できることだ。開発が止まっても、方向性が利用者の望まないほうへ進んでも、フォークが引き継げる。LibreWolfやWaterfoxのようなFirefox派生が存在するのはこの理由で、Chromium系の代替ブラウザもほとんどがフォークだ。
3つ目は、初期設定を自分で決められることだ。利用状況の送信、スポンサー付きのタイル、既定の検索提携、アカウントへのサインイン誘導。設定画面で1つずつ消すのではなく、ソースの側で外した状態のビルドを使える。
一方で、手に入らないものもはっきりしている。macOSでの使い心地が良くなるとは限らないという点だ。署名と配布、WebKitやBlinkのセキュリティ修正への追随、Apple固有の不具合への対応には人手が要る。これができているプロジェクトには資金がついている。ついていないものは更新が遅れがちで、これは思想の問題ではなくセキュリティの問題になる。
ブラウザは何十種類あってもエンジンは3種類
一覧は長いが、エンジンは3つしかない。
Blinkは、Chrome・Edge・Brave・Vivaldi・Operaと、Chromium派生のすべてを動かしている。GeckoはFirefoxとその派生。WebKitはSafariと、macOSではシステムのフレームワークの上に直接作られたいくつかの小さなブラウザを動かしている。
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all Internet users to experience the web. 出典: chromium.org
この整理が効くのは、検索結果を読むときだ。オープンソースかどうかで激しく議論されている2つのブラウザが、表示結果としては同一ということが普通に起きる。ChromeをやめてGoogle連携を外したChromium派生に移ると、利用状況の送り先は変わるが、ページの見え方は変わらない。エンジンそのものを変えたいならFirefox系を選ぶことになり、これは一部の業務系Webアプリやビデオ会議で相性が出る代わりに、Web全体のエンジンの偏りを緩める唯一の選択になる。
WebKitはMacでは少し特殊な位置にいる。エンジンは公開されていてAppleが公開の場で開発している。その上に載っているSafariというアプリは公開されておらず、単体では配布されない。システムのWebKitを使うブラウザは、Appleの省電力やスクロールの挙動をそのまま受け取れる代わりに、エンジンの修正が届く時期もAppleの都合に従うことになる。
Macで実際に使われているもの
| プロジェクト | エンジン | 公開の範囲 | Macで知っておくこと |
|---|---|---|---|
| Firefox | Gecko | 全面公開(MPL 2.0) | コンテナごとにCookieの保管場所が分かれる |
| LibreWolf | Gecko | 全面公開のフォーク | 送信機能や宣伝枠を除去、更新は本家より遅れる |
| Zen Browser | Gecko | 全面公開のフォーク | タブが横並びの縦置き、分割表示、まだ若い |
| Chromium 公式ビルド | Blink | 全面公開 | 自動更新が無く、一部のコーデックを含まない |
| ungoogled-chromium | Blink | 全面公開のフォーク | Google連携を除去、更新の仕組みも無い |
| Brave | Blink | 全面公開 | 遮断機能と独自の同期、企業が開発 |
| Vivaldi | Blink | 中核は公開、画面部分は非公開 | 細かい設定が豊富、UI層は非公開 |
| Safari | WebKit | エンジンは公開、アプリは非公開 | 電力効率が最良、監査するソースは無い |
2行だけ補足がいる。Chromiumの公式ビルドは、利用者向けの製品ではなく開発用の成果物だ。中身は間違いなくオープンソースのChromiumで、更新の仕組みが付いていない。つまり入れたまま放置すると、エンジンが古いまま使い続けることになる。Google連携の無いChromiumが欲しいなら、リリースの面倒を見る人がいるフォークを選んだほうが安全に運用できる。
Vivaldiは扱いが割れる行だ。土台のChromiumは公開されていて、ブラウザ自体は無料で、Vivaldiらしさを作っている画面部分は公開されていない。これを「オープンソース」と呼ぶかは技術ではなく方針の問題で、社内審査で判定される前に自分で決めておいたほうがいい。
Mac版で薄くなるのはどこか
更新と署名
署名や公証のないビルドは初回起動でGatekeeperに止められ、システム設定から手動で許可することになる。これは初回だけの手間だ。本当に効いてくるのは更新の経路のほうで、FirefoxやBraveは自前の更新機構を持っているのに対し、有志のフォークはHomebrewのcaskか手動のダウンロードに頼ることが多い。3月に入れたブラウザが9月まで3月のエンジンのまま動いている、という状態が普通に起きる。ブラウザは仕事用のMacで最も広い攻撃面になるので、古いまま使うと選んだ理由そのものが打ち消される。
動画とDRM
有料の動画配信にはWidevineという非公開の部品が要る。FirefoxとBraveは必要になった時点で取得する。Google連携を外したビルドはこれができないことが多く、有料の映像や一部の音楽サービスが再生できない。同じく、専有コーデックを含まずにビルドされたものは、H.264しか配信していないサイトやビデオ会議で音や映像が出ないことがある。オープンソースのブラウザが1週間で放棄される理由は、たいていこの2つのどちらかだ。
Macらしい挙動
トラックパッドの慣性、Handoff、キーチェーンからの自動入力、ディスプレイへのAirPlay、そしてアクティビティモニタに出る電力の数字。これらはSafariが最も良く、資金のあるChromium系がその次で、個人のフォークは差が開く。思想の話ではなく、1つのプラットフォームに何時間かけたかの差でしかない。
フォークを入れる前に見る4点
この分野で名前が挙がるものの多くは、少人数あるいは1人で保守されているフォークだ。フォークだから危ないわけでも、フォークだから安全なわけでもない。次の4点を見れば、その2つは分かれる。どれもダウンロードする前に確認できる。
1つ目は、上流のセキュリティ修正にどれだけ早く追随しているかだ。FirefoxもChromiumも決まった間隔で修正を出す。健全なフォークは数日で追いつく。リリース履歴を開いて、同じ時期の上流のリリース日と並べてみるといい。前の四半期で数週間遅れていたものは、次の四半期も同じだけ遅れる。
2つ目は、配布物に署名と公証があるかどうか。これは初回起動でGatekeeperに止められるかどうかを決めるだけでなく、配布をどれだけ本気で運用しているかの目安になる。署名が無くても使うことはできる。ただし、Appleの開発者アカウントの年会費を誰も払っていないという意味でもあり、そのプロジェクトがどれくらい続くかの見込みと相関する。
3つ目は、更新がどう届くか。自前で更新するか、プロジェクトが保守しているHomebrewのcaskがあるか、何も無いか。3つ目は珍しくなく、そしてこれが半年後に「安全のために選んだはずのブラウザ」を危険な側へ静かに移す。何も無いなら、入れる日に更新の段取りまで決めておくしかない。
4つ目は、何を外したか、そして外した結果として何が壊れたかだ。フォークは何かを取り除くために存在する。その一覧を読む。利用状況の送信を外すのは代償が無い。Google連携を丸ごと外すと、危険なサイトの警告や、有料配信に必要な部品の取得も一緒に消えることが多い。最初のビデオ会議で音が出ない日に気づくより、入れる前に把握しておくほうが安い。
4点すべてを満たすフォークは常用してよい。更新の項目で落ちるフォークは、常用ではなく用途を絞った2番目のブラウザに置くのが妥当な線になる。1日中ログイン状態を抱えるのは、更新が確実に届くほうにしておく。
ライセンスではアカウントの問題は解けない
Macでオープンソースのブラウザを探している人の多くは、同時に複数のアカウントも抱えている。仕事のGoogleアカウントと個人のもの、会社のSlackと副業のSlack、共有のNotionと自分用のNotion。ブラウザのライセンスは、これらが混ざるかどうかに一切関係しない。
分かれるかどうかを決めているのはCookieの保管場所だ。Firefoxはコンテナ単位で区切り、これが標準機能としては最も強く、しかも無料で使える。Chromium系はプロフィール単位で区切り、こちらも十分に分かれる代わりに、切り替えのたびにウィンドウを移ることになる。ソースが公開されているかどうかで、この結論は変わらない。
アカウントが増えたときに実際に変わるのは、1日の形のほうだ。40個のタブが並んだ1枚の窓は、すべてのアカウントを同じ場所に置いている。だから「別のアカウントに移る」という作業が「正しいタブを探す」という作業に化ける。サービスごとに窓とセッションを分けておくと、この探す作業が頭の外に出る。無料かつ公開されたコードだけで揃えたい場合の近い選択肢と、その限界についてはFerdiumとの比較にまとめてある。
分けたあとに残る手間から選び直す
エンジンの市場は寄っていったが、その上の層、つまりWebアプリを画面のどこにどう並べるかを決める層は寄っていない。そしてオープンソースのプロジェクトが今いちばん強いのもこの層だ。
代表がFerdiumで、サービスごとにセッションを分けたまま1枚の窓のサイドバーに並べる。無料で、コードも公開されている。SlackとGmailが2アカウントずつ、という程度の悩みなら費用ゼロで全部片づく。
限界が見えるのは、サービスの数がサイドバーの高さを超えたときだ。縦に並んだ20個のサービス一覧は、40個のタブと同じ「探す」問題を90度回転させただけになる。ここまで来ると、まとめる単位はサービスではなく案件に移る。1つの取引先に必要な3つのアプリを束ねて、アプリごとに独立したワークスペースを持たせ、再起動しても並びが残り、一覧を読まずに戻れる状態にする。この束ね方はワークスペースで説明している。ブラウザ側に残す機能と窓の中に持ってくる機能の線引きはできることに、無料のまま続けるか道具に払うかの判断材料は料金にまとめてある。
選び方の芯は、アカウントの数ではなく1日に何回またぐかにある。またぐのが週に3回程度なら、Firefoxのコンテナか2つ目のプロフィールで足りる。1日に何十回も往復しているなら、費用はすでに払っている。請求書に載らない形で払っているだけだ。
よくある質問
Safariはオープンソースですか?
Safariというアプリ自体は公開されておらず、macOSに同梱される形でのみ配布されています。エンジンのWebKitは公開されていてAppleが公開の場で開発しているため、同じエンジンを使う小さなブラウザがMacにはいくつかあります。ソースを読める必要がある審査ではSafariは通らない、という整理になります。
ChromeにいちばんOSS的に近いのはどれですか?
Braveとungoogled-chromiumの2つが挙がりますが、違いは表示ではなく保守にあります。Braveは企業が開発していて自前の更新機構を持ち、有料配信に必要な部品も取得できます。ungoogled-chromiumはGoogle連携を完全に外している代わりに更新の経路も無いので、Homebrewなどで自分で新しく保つ運用が要ります。
オープンソースのブラウザで2つのGoogleアカウントを同時に開けますか?
開けます。むしろこの点は無料の選択肢が最も強い領域です。FirefoxのMulti-Account Containersはコンテナごとに別のCookie保管場所を割り当てるため、1枚の窓の中で2つのGoogleアカウントを並べたまま使えます。Chromium系はプロフィールで同じことを実現しますが、アカウントごとに別のウィンドウになります。
一部のオープンソースのビルドで動画が再生できないのはなぜですか?
理由は2つあり、混同されがちです。専有コーデックを含まずにビルドされたものはH.264やAACを再生できず、ビデオ会議や一般的なWeb動画が止まります。Widevineが無いものは保護された配信を再生できず、有料の映像サービスが見られません。片方だけの場合も両方の場合もあるので、導入初日にビデオ会議と配信サービスの両方を試すのが確実です。