Kort geleden rapporteerde The Register dat Google werkt aan een iOS versie van Chromium. Niet lang daarna bleek ook Mozilla te werken aan een iOS versie van Gecko, de browser-engine van Firefox. Dit lijkt te suggereren dat de Apple browser-engine op iOS, WebKit, haar monopolie dreigt te verliezen.
In een serie van blog posts willen we uiteenzetten waarom dit belangrijk nieuws is voor web developers en websites.
In deze post, het eerste gedeelte, geven we de relevante achtergrondinformatie. In de tweede post zullen we meer uitleggen over de stand van zaken wat betreft browsers op Apple iOS. De derde en laatste post zal vertellen wat voor impact dit nieuws kan hebben, op zowel developers als op klanten.
Wat is een browser-engine?
De browser-engine is het hart van een browser. Het zet de ruwe data van HTML, CSS en Javascript om naar de website of web applicatie die je als gebruiker te zien krijgt. De browser is de applicatie waarmee een gebruiker websites kan bezoeken.
Er zijn verschillende browsers, maar deze zijn gebaseerd op een beperkte set van browser-engines. De drie grootste browser-engines zijn WebKit, Blink en Gecko.
- WebKit is de engine van Apple en wordt gebruikt door hun browser, Safari op iOS en MacOS.
- Blink is door Google in het leven geroepen als afsplitsing van de WebKit engine. Google heeft naast hun gepatenteerde browser Chrome ook een open-source browser, Chromium. Beide maken gebruik van de Blink engine. Tegenwoordig zijn veel browsers gebaseerd op Chromium, zoals Brave, Opera en Vivaldi. Recentelijk ook Microsoft, dat daarvoor nog zijn eigen engines voor Internet Explorer en Edge gebruikte.
- De Gecko engine wordt ontwikkeld door Mozilla en gebruikt in de Firefox browser.
De browser-engine bepaalt de mogelijkheden van het web. Zo was het bijvoorbeeld in eerste instantie niet mogelijk om animaties, games of audio/video te tonen in een browser, omdat de engines dit niet ondersteunen. Er waren plugins zoals Flash, Shockwave of Silverlight nodig. Tegenwoordig is deze functionaliteit volledig ingebouwd in iedere browser-engine.
Browser (engine) features
Maar hoe wordt bepaald welke features er in een browser-engine worden ingebouwd? Tegenwoordig zijn de vier grote spelers, Apple, Google, Microsoft en Mozilla, verenigd in een consortium dat werkt aan een levende standaard voor het web. Deze standaard wordt continu doorontwikkeld.
Specificaties van een nieuwe feature worden vaak opgesteld door een van de teams, die een specifieke behoefte van hun gebruikers en/of ontwikkelaars willen vervullen. De specificaties worden overlegd met de andere teams, waar nodig bijgeschaafd en uiteindelijk goed- of afgekeurd.
Door dit proces van overleggen en bijschaven kan het lang duren voordat nieuwe features geïmplementeerd worden. Idealiter is iedereen het met elkaar eens. Maar de browser teams hebben verschillende visies over wat het web wel en niet moet zijn. Zo zien de Chromium teams het web het liefst uitgroeien tot een platform dat kan concurreren met native apps. Het Firefox team lijkt daar minder van overtuigd, ondanks dat zij eerder een poging waagden om een mobile OS te lanceren dat alleen maar webapplicaties (en geen native apps) ondersteunde. Ook het Safari team lijkt dit niet zo te zien zitten.
Wrijving
Deze verschillende visies leiden soms tot wrijving binnen het consortium. Browser teams kiezen er soms voor om een feature op te nemen in hun browser (engine), ondanks dat er geen standaard specificatie voor is overeengekomen. De populariteit van een feature kan er voor zorgen dat de standaard later alsnog volgt. Anders lopen de andere teams het risico dat de feature door veel websites geadopteerd wordt maar niet beschikbaar is voor hun eigen gebruikers. Zo kan er een doorbraak geforceerd worden in een impasse bij het definiëren van de standaard.
Echter, om nieuwe features toe te kunnen voegen, moet het voor browser teams wel mogelijk zijn om de onderliggende browser-engine aan te passen. Maar Apple stelt op iOS alleen de WebKit engine ter beschikking, de engine waar alleen zij wijzigingen in aan kunnen brengen. Dit creëert een technisch monopolie dat de andere leden van het consortium graag willen doorbreken. Lees ook ons volgende blog, waarin we precies uitleggen hoe dit zit.
Heb je vragen over websites of web applicaties? Neem contact met ons op en we helpen je verder!