Apple stops hampering third party browsers in iOS 8

Allows all WebKit browsers, not just Safari, to use an enhanced interface to WebKit, boosting performance

By Caroline Gabriel

The pressures on Apple were clear in the uncharacteristically sober tone of its WWDC developer event this week, and its concessions to opening up iOS 8 - not open by a Google definition, of course, but significantly by Apple standards. An interesting example is the decision to remove brakes on the performance of third party browsers, such as Google Chrome, in the iOS environment.

Specifically, no browser except Apple's own Safari could interface to the iDevice maker's fastest Javascript engine, which prevented browsers like Chrome running at full speed, and also slowed applications which need to open many URLs, like Twitter. In particular, apps harnessing third party browsers could not take advantage of Apple's fast JIT (just in time) Javascript compiler.

This is changing in iOS 8, as reported in Re/code, as any apps using the latest standard WebKit interface - now backed by most mainstream browsers after Opera announced support last year - can now access the Apple Javascript engine. That would provide the ability for users to set their own default browser, though that has not yet been announced and Apple may hold such a counter-cultural concession in reserve for a rainy day.

Apple currently bars anyone from bringing their own browser engine to iOS, which is why developers had to use a separate, slower version of WebKit in order to support non-Safari WebKit browsers.

At least third party apps will be able to run Javascript programs at full speed in iOS, removing the advantage Safari had for itself - an advantage which highlights the increasing gulf between Apple's walled garden approach and the move by the rest of the mobile industry to open web platforms like HTML5.

Apple WebKit engineer Anders Carlsson received a round of applause from WWDC's developer audience when he said Apple had opened up a new, more powerful programming interface, called WKWebView, which was built to allow iOS and OS X to tap into WebKit. "One of the goals we had with this modern API was to take a lot of features that were previously only available to Safari and give you access to them. For example, the full power of the JavaScript Nitro engine," he said, as reported by NetworkWorld.

This is particularly important for Google, which has to use Apple's WebKit on iOS, even though it has its own browser engine, Blink, which Chrome uses on Android, Windows, Linux and OS X. Blink diverged from mainstream WebKit last year.

Apple has made other improvements to its Javascript engine interface, which will be available for all compatible browsers. These include support for a new acceleration technology, FTL JIT; and the integration of some Safari features directly into WebKit - for instance, 60 frames-per-second scrolling using hardware acceleration and CoreAnimation, and some of Safari's gestures, like back/forward swiping and pinch-to-zoom.

Back to blog