informa
/
3 min read
article

Chrome For iOS As Your Default Browser?

Apple does not provide users with the ability to select their default browser on iOS devices, but iOS developers can provide that option from within their apps. Will developers engage in such widespread civil disobedience?
New Chromebook: A Visual Tour
New Chromebook: A Visual Tour
(click image for larger view and for slideshow)
Google built its Chrome browser for speed but Chrome can't compete on iOS. Apple won't allow it. As a consequence of its security model, Apple restricts access to the Just-In-Time (JIT) compiler in its Nitro JavaScript engine--vital for speed--to mobile Safari and Web apps saved to the iOS home screen. As a result, Chrome for iOS runs JavaScript-heavy webpages more slowly than mobile Safari does.

Google acknowledges this limitation. "Chrome for iOS has some pretty major technical restrictions imposed by the App Store, such as the requirement to use the built-in UIWebView for rendering, no V8, and a single-process model," explained Google engineer Mike Pinkerton in a Chromium forum post last month.

Eventually, development of WebKit2, the open-source webpage layout engine that debuted in Safari 5.1, might extend JIT access to all iOS apps, but that hasn't happened yet.

However, another Apple-imposed limitation on Chrome for iOS can be overcome, at least in part. Apple does not allow iOS users to choose their default browser. This means that any Web link accessed from within an app opens mobile Safari, even if the user might prefer for Chrome to be launched.

[Read Apple's OS X Mountain Lion Released To Developers.]

iOS users who have chosen to jailbreak their devices can set their default browser using BrowserChooser. But there's also an option for iOS users living under Apple's rules, if iOS developers are willing to help out.

Developer Raphael Caixeta has posted sample Objective-C code that will open Chrome for iOS rather than mobile Safari when a link is selected from within an app. His approach doesn't make Chrome for iOS the default browser system-wide; it's limited to apps that incorporate the custom URL code.

"The one thing that really kills Chrome [for iOS] is the fact that all apps will launch in Safari by default," he wrote in a blog post on Monday. "But there's a way to prevent this. It takes cooperation from all of the major developers, but if implemented, could be really, really cool."

If every iOS developer did so, it would be a remarkable act of civil disobedience. But Caixeta notes that not everyone responding to his post likes the idea of overriding Safari in all cases in an app. A more flexible implementation would allow users to select their mobile iOS browser as an app-specific setting, but Caixeta doubts most developers would bother building the interface to present that choice unless they had access to a free module that made it easy to do so. He suggests he might actually write such a library just to see if people would use it.

In an email, he downplayed the significance of his code as a simple hack "to get around Apple's existing lack of options to set default apps like Android."

Caixeta says that this technique, using what's known as a custom URL scheme, has been around for a long time in iOS, and could be implemented to, for example, open an email client from within an app that isn't Apple's Mail app.

At this year's InformationWeek 500 Conference, C-level execs will gather to discuss how they're rewriting the old IT rulebook and accelerating business execution. At the St. Regis Monarch Beach, Dana Point, Calif., Sept. 9-11.