Was entfernt Brave aus der Chromium-Engine? Folgen
(Beachte, dass diese Seite noch in Arbeit ist und häufig aktualisiert werden kann)
Brave für den Desktop baut auf dem Open-Source-Projekt Chromium auf. Wir fügen Funktionen zu dem hinzu, was bereits vorhanden ist, und wir entfernen auch Funktionen oder Teile des Codes. Die Abweichungen, die wir vornehmen und die den Kerncode von Chromium berühren, werden über Patches vorgenommen.
Chromium ist nicht dasselbe wie Google Chrome. Für einige Unterschiede siehe https://chromium.googlesource.com/chromium/src/+/master/docs/chromium_browser_vs_google_chrome.md.
Wie es funktioniert
Wenn du den Code überprüfen möchtest, würdest du mit dem brave-browser Repository beginnen. Unser Wiki enthält Anweisungen darüber, welche Schritte nach dem Klonen des Quellcodes durchgeführt werden müssen, um einen Build durchzuführen
Chromium-Quelle wird geholt
Das Dienstprogramm gclient (Teil der Depot-Tools) holt den offiziellen Chromium-Quellcode. Das Tag, das abgeholt wird, ist in unserer package.json erfasst (zum Beispiel 70.0.3538.35). Der gesamte Quellcode wird in den Ordner ./src/ heruntergeladen
Brave Code wird geholt
Als Teil des Einrichtungsprozesses holen wir uns auch unseren eigenen Code. Das brave-core Repository enthält den Code, der den Browser Brave macht. Der Zweig, der ausgecheckt werden soll, ist ebenfalls in dieser package.json enthalten. Es gibt auch eine DEPS-Datei in brave-core, die Sub-Abhängigkeiten (wie die brave-extension) einbezieht
Haken werden ausgeführt
Nachdem der gclient sync gelaufen ist und den gesamten Code geholt hat (einschließlich brave-core), werden die Hooks ausgeführt. Einer der Hooks, der läuft, wendet die Patches an(die du hier sehen kannst), die in brave-core enthalten sind. Wenn du mehr darüber wissen möchtest, WIE das Patchen funktioniert, kannst du unsere Patching-Wiki-Seite ansehen.
Welche Chromium-Funktionen werden aus Datenschutz-/Sicherheitsgründen entfernt?
Dienste & Funktionen, die wir komplett deaktivieren
- Chrome Privacy Sandbox. Es gibt mehrere APIs, die in Privacy Sandbox zusammengefasst sind, und wir zielen darauf ab, alle aufgrund unserer Bedenken zu deaktivieren.
- Die Integration von Google-Konten ("GAIA") ist deaktiviert
- Alle Funktionen, die Daten an Google senden, werden aus den Einstellungen entfernt
- DNS Prefetching ist deaktiviert
- Chrome Google URL Tracker ist deaktiviert
- Die Zuverlässigkeit des Domänendienstes ist deaktiviert
- Inline-Erweiterungen sind deaktiviert
- Die Hintergrundsynchronisation ist deaktiviert
- Hyperlink
pingAttribut ist deaktiviert - Batterie-API deaktivieren
- WebBluetooth API deaktivieren
- Hochladen des WebRTC-Debug-Logs ist deaktiviert
- Hochladen der Einstellungen nach dem Zurücksetzen des Profils ist deaktiviert
- Das Abrufen der OEM-Standardeinstellungen nach dem Zurücksetzen des Profils ist deaktiviert
- Hochladen des Absturzprotokolls ist deaktiviert
- Google Cloud Messaging ist deaktiviert
- Firebase Cloud Messaging ist deaktiviert
- Push Client Channel Updates sind deaktiviert
- Der Netzwerkzeit-Tracker ist deaktiviert
- Die Google-gestützte Adressnormalisierung ist deaktiviert
-
Bestimmte Funktionen werden beim Start über die CLI deaktiviert (suche nach
disabled_features) - dl.google.com Repository aus Linux-Paketen entfernen
- Metrik-Berichterstattung deaktivieren
- Lookalike URLs Navigationsvorschläge deaktivieren
- Meldebeobachter und Melde-API deaktivieren
- Scrollen zum Textfragment deaktivieren
- Bewegungssensoren deaktivieren
- Deaktiviere navigator.credentials
- Android OTP-Integration deaktivieren
- SXG deaktivieren
- NFC deaktivieren
- WebBundles deaktivieren
- Client-Hinweise deaktivieren (lang)
- Direct / Raw Sockets deaktivieren
- Leerlauferkennung deaktivieren
- Auslöser für Benachrichtigungen deaktivieren
- Dateisystem-API deaktivieren
- Digital Goods API deaktivieren
- Serielle API deaktivieren
- Federated Learning of Cohorts (FLoC) deaktivieren
- Netzwerkinformations-API deaktivieren
- SCT-Auditing
- Website-Zugehörigkeits-Abrufer (Teil des Passwort-Managers)
- Deaktiviert kOptimizationGuideFetchingForSRP
- Web Environment Integrity deaktivieren
- Beliebte Websites deaktivieren (AKA Top Sites)
- Trust Tokens / Private State Tokens deaktivieren
Dienste, die wir über Brave Servers vermitteln
Google erhält keine Informationen darüber, welcher Client diese Anfragen durchführt (nicht einmal deine IP-Adresse).
- SafeBrowsing-Anfragen werden über einen Proxy geleitet
- Geolokalisierungsanfragen werden weitergeleitet
- Plugin-Updates werden über einen Proxy übertragen
- Zertifikatswiderrufsanfragen werden weitergeleitet
- Anfragen für CRLSets werden stellvertretend bearbeitet
- Anfragen für Komponentenaktualisierungen werden weitergeleitet
- Anfragen für Rechtschreibprüfungs-Wörterbücher werden stellvertretend bearbeitet
- Anfragen in devtools sind proxied
- Anfragen für Favicon der Suchmaschine (Android) werden über Proxy gesendet
Proxierte Endpunkte
https://dl.google.com/release2/chrome_component/*crl-set*https://*.gvt1.com/edgedl/release2/chrome_component/*https://*.gvt1.com/edgedl/chrome/dict/*.bdichttps://storage.googleapis.com/update-delta/hfnkpimlhhgieaddgfemjhofmfblmnib/.+crxdhttps://safebrowsing.googleapis.com/https://sb-ssl.google.com/https://safebrowsing.google.comhttps://ssl.gstatic.comhttps://gstatic.comhttps://update.googleapis.comhttps://chrome-devtools-frontend.appspot.comhttps://clients2.googleusercontent.comhttps://clients2.google.comhttps://clients4.google.comhttps://chrome-devtools-frontend.appspot.comhttps://accounts.google.comhttps://*.infura.iohttps://*.gvt1.com/edgel/chromewebstore/*/*https://*.gvt1.com/edgedl/release2/*/*http://dl.google.com/release2/*/*
Geänderte Merkmale und Funktionen
-
Cookies:
- Cookies erhalten eine maximale Lebensdauer von 7 Tagen für Cookies, die über JavaScript gesetzt werden, und 6 Monaten für Cookies, die über HTTP gesetzt werden
- Session-Cookies werden beim Neustart bereinigt, wenn der Modus "Dort fortfahren, wo du aufgehört hast" aktiviert ist (was in Brave Standard ist).
- Third-Party-Cookies werden immer auf HTTP-Header-Ebene blockiert, aber wir geben JavaScript Zugriff auf partitionierten ephemeren Speicher zu Seiten (erfahre mehr über partitionierten ephemeren Speicher).
- Die Battery API gibt immer einen festen Wert zurück.
- Referrer-Werte sind auf
strict-origin-when-cross-originbegrenzt und können durch die Verweis-Policy nur verschärft, nicht abgeschwächt werden. Außerdem haben Cross-Origin-Anfragen von einem.onionDienst einen leerenRefererHeader und einennull OriginHeader, genau wie der Tor Browser. -
.onionEinträge werden durch"null"indocument.location.ancestorOrigins()ersetzt, es sei denn, solche Einträge haben dieselbe Herkunft wie der innerste Frame. - Die Hangouts-Erweiterung ist standardmäßig deaktiviert. Wir deaktivieren auch das Hochladen von Protokollen auf die Server von Google: https://github.com/brave/brave-browser/issues/1993.
- Der Media Router (Chromecast) ist auf dem Desktop standardmäßig deaktiviert. Du kannst sie einschalten, indem du den Schalter in brave://settings umlegst.
- Bei den Fernabfragen zum Downloadschutz werden URLs und Dateinamen ausgelassen(https://github.com/brave/brave-core/pull/6763).
- StorageManager.estimate soll einen festen Wert melden (Problem #11543)
- Bei vielen Merkmalen wurden Zufälligkeiten hinzugefügt oder Werte verallgemeinert, um sie vor Fingerabdrücken zu schützen, z. B:
- Canvas Rücklesemethoden
- User Agent, Follow-ups in Ausgaben #12097, #12638, #14740
- enumerateDevices
- Web Audio Serialisierung
- WebGL-Debug
- Plugins
- hardwareConcurrency
- deviceMemory
- Die Liste der Hostnamen mit gepinnten CA-Zertifikaten wird durch eine Brave-spezifische Liste ersetzt.
- Gestenanforderung für asynchronen Schreibzugriff auf die Zwischenablage wiederherstellen
- Warnung vor gefährlichen Downloads wird immer angezeigt, wenn Safe Browsing deaktiviert ist, aber ein Flag zum Deaktivieren der Warnungen ist für fortgeschrittene Benutzer verfügbar.
- Funktionalität aus dem Chromium-Seitenpanel wurde in die Brave-Seitenleiste integriert.
- Web Serial API ist deaktiviert, aber ein Flag zum Aktivieren ist für fortgeschrittene Benutzer verfügbar.
- Der Dialog für Standortfreigabe wurde erweitert, um den Benutzer darüber zu informieren, ob die Website, die er besucht, Standortdaten mit der Option
enableHighAccuracyangefordert hat. - Reporting Observers sind aktiviert, funktionieren aber nicht (der Aufruf hat keine Auswirkung). Siehe hier, wo es deaktiviert wurde, und siehe hier, wo es wieder aktiviert, aber so konfiguriert wurde, dass es nichts tut.
- Open Search zum Hinzufügen von Suchmaschinen hat einen Schalter (
Andere Suchmaschinen indizieren) und ist standardmäßig deaktiviert. - Der Zugriff auf Storage Access API ist in Brave deaktiviert, indem die Berechtigung immer abgelehnt wird.
- Wenn eine Grupprichtlinie vorhanden ist, deaktiviert Brave sicheres DNS NICHT. Chrome/Chromium werden sicheres DNS in der Benutzeroberfläche deaktivieren und den Administrator dazu zwingen, eine Richtlinie zu definieren, wenn er einen anderen Wert als
Offmöchte. Siehe hier und hier.
Kommentare
Einige der oben genannten (und andere) Probleme wurden bereits in https://github.com/brave/brave-browser/issues/13 behandelt.
Du wirst vielleicht einige Anfragen an Google-Domains bemerken. Einige davon, wie clients*.google.com und update.googleapis.com, werden benötigt, um nach Erweiterungs-Updates zu suchen, wenn du Erweiterungen installiert hast.
Wie schneidet Brave im Vergleich zu ungoogled-chromium ab?
Beschreibung von ungoogled-chromium laut ihrer GitHub-Seite:
ungoogled-chromium ist Google Chromium, ohne die Integration mit Google. Außerdem gibt es einige Optimierungen, um die Privatsphäre, die Kontrolle und die Transparenz zu verbessern (fast alle davon müssen manuell aktiviert oder freigeschaltet werden).
Wir haben ein Problem erfasst , um relevante Patches aus dem ungoogled-chromium Projekt einzubinden. Das ungoogled-chromium Projekt hat ebenfalls ein Problem erfasst , wo sie erwähnen, dass sie Patches von Brave einspielen.