Chromiumの機能でBraveでは除外されているものについて フォローする
注:このページは以下のwikiの記事を日本語訳したものですが、こちらのヘルプページは更新が遅れる場合があります。最新の情報についてはwikiをご覧ください。
https://github.com/brave/brave-browser/wiki/Deviations-from-Chromium-(features-we-disable-or-remove)
Brave デスクトップ版はオープンソースのChromiumプロジェクトをベースに開発されています。私たちは既存の機能に加えて新機能を追加し、また一部の機能やコードを削除しています。Chromium のコアコードに関わるこれらの変更は、パッチを適用することで行われています。
ChromiumはGoogle Chromeと同じものではありません。その違いは以下に紹介されています。 https://chromium.googlesource.com/chromium/src/+/master/docs/chromium_browser_vs_google_chrome.md.
一連の流れ
もしコードの監査を行いたい場合は、まずbrave-browserリポジトリからご確認ください。ソースをクローンした後にビルドを実行するために必要な手順については、Wikiに説明があります。
Chromiumソース
(depot toolsの一部である)gclientユーティリティは、公式のChromiumソースコードを取得します。取得されるタグはpackage.jsonに記録されています(例:70.0.3538.35
)。すべてのソースコードは./src/
フォルダにダウンロードされます。
Braveコード
セットアッププロセスの一環として、独自のコードも取得します。brave-coreリポジトリには、ブラウザをBraveたらしめるコードが含まれています。チェックアウトすべきブランチもpackage.jsonに含まれています。また、brave-coreにはDEPSファイルがあり、サブ依存関係(brave-extensionなど)を取り込みます。
フック
gclient syncが実行されてすべてのコード(brave-coreを含む)を取得した後、フックが実行されます。実行されるフックの一つは、brave-coreに含まれるパッチを適用します。パッチ適用の仕組みについてさらに詳しく知りたい場合は、パッチ適用に関するWikiページをご覧ください。
プライバシーやセキュリティの理由で削除されたChromium機能
完全に無効化されたサービスや機能
- Google accounts integration ("GAIA") is disabled
- All features that send data to Google are removed from settings
- DNS prefetching is disabled
- Chrome Google URL Tracker is disabled
- Domain service reliability is disabled
- Inline extensions are disabled
- Background sync is disabled
- Hyperlink
ping
attribute is disabled - Disable Battery API
- Disable WebBluetooth API
- WebRTC debug log uploading is disabled
- Uploading settings after resetting profile is disabled
- Retrieving OEM default settings after resetting profile is disabled
- Tracing crash log uploading is disabled
- Google Cloud Messaging is disabled
- Firebase Cloud Messaging is disabled
- Push client channel updates are disabled
- Network time tracker is disabled
- Google-assisted address normalization is disabled
-
Specific features are disabled on startup via the CLI (search for
disabled_features
) - Remove dl.google.com repository from Linux packages
- Disable metrics reporting
- Disable Lookalike URLs Navigation Suggestions
- Disable Reporting Observers and Reporting API
- Disable Scroll To Text Fragment
- Disable Motion Sensors
- Disable navigator.credentials
- Disable Android OTP integration
- Disable SXG
- Disable NFC
- Disable WebBundles
- Disable Client Hints (lang)
- Disable Direct / Raw Sockets
- Disable Idle Detection
- Disable Notification Triggers
- Disable File System API
- Disable Digital Goods API
- Disable Serial API
- Disable Federated Learning of Cohorts (FLoC)
- Disable Network Information API
Braveのサーバを通じてプロキシされるサービス
以下のリクエストについては(IPアドレスを含めて)いかなる情報もGoogleは受信しません。
- SafeBrowsing requests are proxied
- Geolocation requests are proxied
- Plugin updates are proxied
- Certificate revocation requests are proxied
- Requests for CRLSets are proxied
- Requests for component updates are proxied
- Requests for spellcheck dictionaries are proxied
- Requests in devtools are proxied
プロキシされるエンドポイント
https://dl.google.com/release2/chrome_component/*crl-set*
https://*.gvt1.com/edgedl/release2/chrome_component/*
https://*.gvt1.com/edgedl/chrome/dict/*.bdic
https://storage.googleapis.com/update-delta/hfnkpimlhhgieaddgfemjhofmfblmnib/.+crxd
https://safebrowsing.googleapis.com/
https://sb-ssl.google.com/
https://safebrowsing.google.com
https://ssl.gstatic.com
https://gstatic.com
https://update.googleapis.com
https://chrome-devtools-frontend.appspot.com
https://clients2.googleusercontent.com
https://clients2.google.com
https://clients4.google.com
https://chrome-devtools-frontend.appspot.com
https://accounts.google.com
https://*.infura.io
https://*.gvt1.com/edgel/chromewebstore/*/*
https://*.gvt1.com/edgedl/release2/*/*
http://dl.google.com/release2/*/*
変更が加えられる機能
- JavaScriptを通して設定されたCookieの最大有効期間は7日間、HTTPを通して設定されたCookieの最大有効期間は6ヶ月間です
- リファラーの値は
strict-origin-when-cross-origin
に制限されており、リファラーポリシーによって厳しくすることはできますが、緩めることはできません。さらに、.onion
サービスからのクロスオリジンリクエストは、Torブラウザと同様に、空のReferer
ヘッダーとnull
Origin
ヘッダーを持ちます。 - メディアルーター(Chromecast)はデスクトップ版ではデフォルトで無効になっています。brave://settings でスイッチを切り替えることで有効にすることができます。
- ダウンロード保護のリモート検索では、URLとファイル名は省略されます(https://github.com/brave/brave-core/pull/6763).
- StorageManager.estimate は固定値を報告するよう設定されています( issue #11543)
- フィンガープリンティングに対する防御として、多くの機能にランダム性が追加されたり、値が一般化されたりしています。これには以下が含まれます:
- CA証明書がピン留めされているホスト名のリストは、Brave独自のものに置き換えられています。
- 非同期クリップボード書き込みアクセスに対するジェスチャー要件が復元されています
コメント
上記のうちのいくつかはこちらで対応管理がされています: https://github.com/brave/brave-browser/issues/13.
何点かGoogleドメインへのリクエストに気づくかもしれません。clients*.google.com
やupdate.googleapis.com
などは拡張機能使用時に必要となるケースがあります。
Braveとungoogled-chromiumの違い
GitHubページungoogled-chromiumでは以下のように説明があります。
ungoogled-chromiumは、Googleとの統合機能を除いたGoogle Chromiumです。また、プライバシー、制御、透明性を向上させるためのいくつかの調整機能も備えています(そのほぼ全てが手動での有効化または設定が必要です)。
ungoogled-chromium
プロジェクトから関連するパッチを取り込むためのissueを作成しています。ungoogled-chromium
プロジェクト側でも同様に、Braveからパッチを取り込むことについて言及したissueが作成されています。