Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Google geeft broncode van Chrome voor iOS vrij

Door , 39 reacties, submitter: JS1982

Google heeft de broncode van de iOS-versie van de Chrome-browser vrijgegeven. Het bedrijf heeft dit gedaan door de samenvoeging met het Chromium-project, dat al open source was. Wegens restricties in iOS was deze versie aanvankelijk los van Chromium ontwikkeld.

ChromiumDe iOS-versie van Chrome is tot op heden gebaseerd op de WebKit-engine, wat een vereiste is om apps op iOS te kunnen draaien. Het Chromium-project, dat de basis is voor de Android- en desktopversies van Chrome, maakt sinds 2013 geen gebruik meer van WebKit, maar van een afsplitsing daarvan met de naam Blink.

Vanwege de verplichting om op WebKit te draaien is de iOS-versie van Chrome losstaand van Chromium ontwikkeld. Ondertussen werd wel gewerkt aan een manier om Chromium zowel WebKit als Blink te laten ondersteunen.

Google zegt dat nu de iOS-versie van Chrome ook deel uitmaakt van het opensourceproject, de ontwikkeling daarvan een stuk sneller moet gaan en er meer mensen kunnen testen op bugs en kwetsbaarheden. Doordat de broncode van de app nu vrijuit te vinden en gebruiken is, kunnen ook andere ontwikkelaars die gebruiken.

Emile Witteman

Freelancer nieuwsredactie

1 februari 2017 13:26

39 reacties

Submitter: JS1982

Linkedin Google+

Reacties (39)

Wijzig sortering
Kan iemand uitleggen waarom Apple niet een browser op basis van Blink wil toestaan? Webkit is altijd, mede door Apple, als open source ontwikkeld. Waarom zou je dan niet een andere doorontwikkeling daarvan toestaan? Ik snap dat Apple hierin redelijk duaal is: iOS is gesloten, webkit is open, beide (mede) ontwikkeld door Apple. Maar waarom deze houding tegenover Blink?
Een browser engine is heden ten dage waardeloos als het geen JIT compilatie kan uitvoeren. JIT compilatie werkt door machinecode te genereren, in het geheugen te plaatsen en als "uitvoerbaar" te markeren. Dit laatste is vanwege sandboxrestricties niet mogelijk. Daarom kan je wel een eigen browserengine implementeren maar zodra je JIT compilatie nodig hebt kan je het vergeten. Dynamische machinecode wordt niet toegestaan omdat je dan uit de sandbox zou kunnen breken.
Ik mag hopen dat webkit van apple zijn JIT-code wel binnen een sandbox draait. Dus waarom zou het met chrome/firefox/etc niet kunnen?
Gezien dat er een paar 'click to jailbreak' hacks zijn geweest met iOS lijkt het erop dat dit inderdaad een limitatie van hun sandbox implementatie is. En zo is het bij Windows Phone destijds ook, daarom zou Firefox niet naar Windows Phone komen.

[Reactie gewijzigd door Sebazzz op 1 februari 2017 14:51]

Chrome (niet voor ios) doet JIT-compilatie en voert de gegenereerde code gewoon binnen zijn sandbox uit.

Het is dus niet zo dat dit in basis onmogelijk is. Het is ofwel onmogelijk vanwege hoe apple zijn sanbox implementeerd ofwel dit is een smoesje. Dat laatste lijkt me om twee redenen de meest waarschijnlijke verklaring:
  • Ik mag hopen dat webkit van apple zijn JIT-code wel binnen een sandbox draait. Dus waarom zou het met chrome/firefox/etc niet kunnen?
  • Apple heeft er baat bij dat mensen native iOS apps bouwen voor de store ipv web-apps. Via de store kunnen ze daar immers geld aan verdienen. Safari loopt tegenwoordig behoorlijk achter de feiten aan waardoor veel dingen native moeten de anders web-based hadden gekund. Dit terwijl safari vroeger juist een van de beste browsers was. Als ze echte alternatieve browsers toe staan zijn wel alle moderne standaarden beschikbaar en kan er ineens veel meer web-based gedaan worden op iOS.

[Reactie gewijzigd door martijnve op 1 februari 2017 14:34]

3rd party apps hebben de rechten niet om geheugen als "uitvoerbaar" te markeren. Alleen code met de juiste digitale handtekening (exclusief Apple's eigen software, dus) krijgt deze rechten.

Daarom kan Safari wel JIT gebruiken maar een andere willekeurige 3rd party browser niet, tenzij ze gebruik maken van de al bestaande libs van WebKit en JavaScriptCore (zoals WebView doet, waar menig andere browser omheen gebouwd is).

Dit is ook een reden waarom in-app scripting onhandig is op iOS, tenzij JavaScriptCore daarvoor gebruikt kan worden.

[Reactie gewijzigd door BoomSmurf op 1 februari 2017 17:04]

Omdat Apple... dit soort beleid is waarom ik geen Apple producten meer koop. Als ik op mijn eigendom een browser met Bling engine wil draaien, dan is dat mijn keuze.

Apple is er schuldig aan dat een hele generatie jongeren nu denkt dat het normaal is dat fabrikanten bepalen wat je met je eigendom mag doen.

[Reactie gewijzigd door Omega Supreme op 1 februari 2017 16:41]

Je eerste alinea is goed.
Apple is er schuldig aan dat een hele generatie jongeren nu denkt dat het normaal is dat fabrikanten bepalen wat je met je eigendom mag doen.
Dit geldt idd voor Apple, maar ik geloof dat de algemene Apple liefhebber het gewoon niet interesseert. Ze weten wat ze krijgen met Apple, door het gesloten systeem is het beperkt, maar wel stabiel en ze kunnen er alles mee doen wat ze willen. Het systeem is ook al 10 jaar hetzelfde, dat zegt genoeg over de gebruikers (in de goede zin van het woord).
Elke leverancier van software probeert zijn eigen producten te beschermen voor de concurrentie. Apple niet meer of minder dan Microsoft of welke andere leverancier ook.
Waar blijft dan de Samsung met iOS?
Wanneer een OS slechts geleverd wordt door één enkele leverancier wil dat nog niet per definitie zeggen dat het 'dus' een gesloten systeem zou zijn. Is het natuurlijk ook niet want grote delen van OSX en het daarvan afgeleide iOS zijn open source.

Hetzelfde geldt bijvoorbeeld voor het Office pakket van Microsoft. Microsoft houdt vast aan eigen bestandsformaten in plaats van de open source formats volledig te ondersteunen. Is het Office pakket van Microsoft om die reden gesloten? Nee natuurlijk.
Bij nieuwere versies krijg je bij de eerste keer sgarten anders wel de vraag of je de standaard van MS wil gebruiken of het OpenDocument Format. Ik snap wat je zegt, maar het is al jaren anders dan dat je beseert.

[Reactie gewijzigd door CH4OS op 3 februari 2017 07:53]

Kan het inderdaad fout hebben hoor. Gebruik MS Office al een heel aantal jaren niet meer. Maar geldt niet alleen voor MS Office maar voor elk pakket wat eigen bestandsformaten heeft. Is om die reden natuurlijk nog geen gesloten stuk software.
Dit is om exploits tegen te gaan waarmee ze het device kunnen rooten, als ik het mij goed herinner. Apps die dit alsnog proberen in te bouwen worden ook tijdens de code review afgewezen.

Er zullen vast wel meer reden voor zijn.
Het is vooral een verkleining van de aanvalsvector - als alle browsers hun eigen render engine en javascript runtime meeleveren zijn er veel meer exploits mogelijk dan wanneer er maar 1 systeembrede HTML rendering engine en 1 systeembrede Javascript runtime is.
Zelfde reden waarom men geen flash wil. Alles wat aan de autonomie dreigt te vreten wordt gefnuikt.

Zonder te willen uitspreken of dit een correcte houding is, maar ik merk op mijn MacBook dat Chromium ook een grotere aanslag pleegt dan Safari.
WebKit is geforkt van khtml en moet daarom (net als vele andere osx componenten) ook open source worden gemaakt...

https://nl.wikipedia.org/wiki/WebKit

[Reactie gewijzigd door Ed Vertijsment op 1 februari 2017 20:13]

Zou mooi zijn als in Chrome voor iOS eindelijk eens extensies gebruikt kunnen worden. Ik zou bijv graag uBlock Origin of Adblock Plus gebruiker hierop. Die losse adblockers in de appstore werken niet optimaal vind ik.
Jawel, firefox focus.
Destijds ook geprobeerd weet niet exact meer wat me niet aanstond. Maar heb hem net even geinstalleerd. De app zelf ziet er leuk uit, maar ik verkies safari. Maar ook dat kan. (Safari>materiaalblokkeringen en dan mozilla focus inschakelen) echter kun je niet een site op de whitelist zetten (die functie ontbreekt) wat wel kan met purify. Wel kun je natuurlijk de reloadknop van Safari indrukken en kiezen dat je -tijdelijk- de pagina laad zonder materiaalblokkeringen.
Die logica is echt heel ver te zoeken. Dit betekend dus dat jij een iPhone koopt, puur op basis van browser? Ik heb een windows pc en heb heel lang Safari gebruikt, of doe ik het nu ook fout? Meer opties = altijd beter!
Vraag me af of je vrijwillig Safari mobile wil, maar zal aan mij liggen :)
Buiten het feit dat zijn reactie nergens op slaat, ik gebruik vrijwillig en enkel Mobile Safari. Heb geen reden om een andere browser te kiezen.
En voor welke ondersteuning specifiek?
Service Workers, Bluetooth Beacon support voor iOS (alleen apps), webRTC (!). Allemaal mooie webfeatures, maar helaas kan ik voor een iPhone geen mooie webapp maken :)

[Reactie gewijzigd door RielN op 2 februari 2017 09:10]

Op een android zit meestal een verouderd chromium in een "internet" app... en dan wil je alsnog chrome los downloaden. Dus...
WebView wordt apart geupdatet nu dus erg verouderd is die niet...
Helaas word het op Android 4.4 niet geupdate, in elk geval niet op de Samsung Galaxy tablet. Volgens browser detection is het nog steeds een zeer oude versie.
Correct, dit gebeurt sinds 5.0 Lollipop en hoger.
(bron)

[Reactie gewijzigd door P1nGu1n op 1 februari 2017 14:07]

De nieuwste techniek is Chrome Custom Tabs. Ik gebruik Chromer om alle links vanuit apps snel te laden. Ik hoop alle developers deze techniek in de toekomst inbouwen in hun apps. De ingebouwde browser in facebook bijvoorbeeld is namelijk echt verschrikkelijk.

Op dit item kan niet meer gereageerd worden.


Nintendo Switch Google Pixel XL 2 LG W7 Samsung Galaxy S8 Google Pixel 2 Sony Bravia A1 OLED Microsoft Xbox One X Apple iPhone 8

© 1998 - 2017 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Hardware.Info de Persgroep Online Services B.V. Hosting door True

*