Terug naar blog

Wat Chromium is: de basis van de browser en zijn grenzen

Chromium is een opensource-browserproject en tegelijk de gemeenschappelijke basis van browsers als Chrome, Edge, Brave en Opera, maar zelf geen kant-en-klaar product voor gewone gebruikers. Het artikel legt de verhouding tussen project en distributie uit, en wat de uitspraak gebaseerd op Chromium wel en niet vastlegt.

Bij het installeren van een browser beseffen maar weinig mensen dat Edge, Brave, Opera, Vivaldi en Chrome dezelfde onderliggende code gebruiken. Die code heet Chromium, en bepaalt hoe pagina's worden gerenderd, hoe scripts worden uitgevoerd en welke interfaces extensies kunnen aanroepen.

Een project, geen product

Lagen van de browserbuild van het Chromium-project tot het product voor de eindgebruiker

Chromium is een opensourceproject dat in 2008 samen met Chrome open source werd gemaakt, met de rendering-engine Blink, de JavaScript-engine V8 en de volledige code van de browserinterface. Google leidt het onderhoud, maar de code is openbaar en iedereen kan er zijn eigen distributie mee bouwen.

Het beslissende verschil is dit: Chromium zelf is geen kant-en-klaar product voor gewone gebruikers. Officieel krijg je continu gebouwde snapshots, zonder automatische updater, zonder accountsysteem en zonder merk- of serviceondersteuning. Dat verklaart ook waarom veel mensen na het downloaden van Chromium ontdekken dat ze updates zelf moeten regelen.

Waarom iedereen het gebruikt

Het onderhoud van een browser-engine is buitensporig duur. Webstandaarden bijhouden, beveiligingslekken dichten en je aanpassen aan allerlei besturingssystemen en nieuwe hardware vragen een team dat zich op lange termijn inzet. Zelf vanaf nul beginnen is onrealistisch; vertakken vanaf Chromium en aanpassen kost veel minder en je erft direct het ecosysteem van extensies en de foutopsporingshulpmiddelen.

Zo gingen de wegen uiteen. Chrome is het eigen product van Google; Edge liet in 2020 zijn eigen engine vallen en stapte over op Chromium; Opera zette die stap eerder; Brave, Vivaldi en Samsung Internet maken op dezelfde basis het verschil. WebView in Android en Electron-apps op de desktop gebruiken eveneens Chromium. Firefox gebruikt daarentegen Gecko en Safari WebKit, een andere technische route.

Het verschil met Chrome

Dezelfde herkomst betekent niet hetzelfde ding. Chrome voegt aan Chromium een automatische updater, crash- en gebruiksstatistieken en synchronisatie met het Google-account toe, en kocht licenties om propriëtaire codecs zoals H.264 en AAC plus Widevine DRM in te bouwen, waardoor streamingwebsites normaal afspelen. Officiële Chromium-builds bevatten die meestal niet; een videopagina opent misschien wel maar speelt niet af, en inloggen of synchroniseren is nergens te vinden.

De privacystandaarden verschillen ook. Chromium stuurt geen telemetrie terug, maar biedt ook niet de privacyschakelaars van Chrome; de afgeleide browsers maken elk hun eigen afwegingen, waarbij Brave standaard advertenties en trackingscripts blokkeert en Edge het accountsysteem vervangt door dat van Microsoft. Geen van die verschillen zit in de engine.

Een ander vaak over het hoofd gezien verschil is de versievoortgang. Tussen afgeleide leveranciers en de upstream zit een tijdverschil, en sommige versienummers lijken strak mee te lopen terwijl de patches in werkelijkheid apart worden samengevoegd. Stuit je op een probleem dat alleen in één browser optreedt, controleer dan eerst de versie en verdenk daarna pas de engine.

Waarom compatibiliteit en automatisering erom geven

Als frontendontwikkeling een pagina tegenkomt die in Chrome werkt en in andere browsers fouten geeft, is de eerste stap bepalen of het een enginekwestie is of een wijziging van de leverancier. Zolang alles op Chromium draait, is het gedrag van CSS en JavaScript grotendeels voorspelbaar, en komen verschillen vooral van de leeftijd van de versie en van leverancierspatches.

Automatisering profiteert ook. Een gedeeld foutopsporingsprotocol betekent dat een script dat voor Chromium is geschreven vaak direct op een afgeleide browser draait; ook de DevTools-interfaces en de manier waarop de headless modus wordt aangeroepen zijn gelijk. De moeilijkheid zit in de versies: afgeleide leveranciers volgen de upstream in verschillend tempo, sommige lopen meerdere versies achter, en hetzelfde script werkt op een oude versie maar geeft een fout op een nieuwe, of werkt in browser A maar niet in browser B, dus een versie vastzetten is belangrijker dan het najagen van de nieuwste.

Automatiseringstaken die langdurig parallel moeten lopen, zetten meestal een Chromium-versie vast en gebruiken die met een geïsoleerde runtime-omgeving. De meeste tools voor het scheiden van meerdere accounts gebruiken Chromium ook als basis, omdat het open source is, de versie kan worden vastgezet en de extensie- en automatiseringsinterfaces compleet zijn. PurpleMark is zo'n tool: elke account krijgt een eigen, onafhankelijke browseromgeving, met gescheiden profielen, netwerkuitgangen en apparaatkenmerken.

Wat deze uitspraak wel en niet vastlegt

Zeggen dat een browser op Chromium is gebaseerd, legt vast dat de rendering-engine en de scriptengine gelijk zijn, dat webpagina's zich vergelijkbaar gedragen, dat extensie-interfaces en het foutopsporingsprotocol grotendeels uitwisselbaar zijn en dat het risico voor webcompatibiliteit laag is.

Wat het niet vastlegt is een lange lijst: privacystandaarden, of telemetrie wordt verzameld, synchronisatiemogelijkheden, updatekanalen, of er extra blokkerings- of versnellingsfuncties zijn toegevoegd, en hoeveel versies het achterloopt op de upstream. Nog minder kun je eruit afleiden of het veilig is, want wat Chromium openstelt is de code, niet de standaardconfiguratie.

Een browser op Chromium aanzien voor hetzelfde product is de meest voorkomende misvatting. Wat de dagelijkse ervaring echt bepaalt, is wat elke leverancier op deze basis toevoegt, wat er wordt weggelaten en hoe vaak er met de upstream wordt gesynchroniseerd.