Android uses WebKit

Many of you have seen the announcement of the Android Mobile Platform (www.openhandsetalliance.com) followed by today’s release of the SDK (code.google.com/android). We (Android) were happy to highlight the use of the WebKit engine as the rendering core for Android’s browser. We have been working on our mobile implementation of WebKit for quite some time. A few changes that we made to WebKit, which make it more suitable for mobile devices, have been submitted to the Tip Of Tree prior to the release of the SDK. Two features we added are a two pass layout and frame flattening. The two pass layout renders the page without waiting for blocking elements, such as external CSS and external JavaScript, and then renders the page again with those resources have been downloaded to the mobile device. This allows the user to quickly see initial content on slow, low bandwidth networks. This change has already made its way into SVN, check out the WTF_USE_LOW_BANDWIDTH_DISPLAY flag. Frame flattening flattens web pages that use frames into what seems like one view. Presently this code only resides in the Android’s code base, though we plan to roll this into SVN. We have made some minor changes for timers and chunk size, which is clearly identified in SVN with the MOBILE flag.

Another interesting change we made, which is not mobile specific, was to make the canvas tag platform independent. Again we are working on migrating this to SVN.

Most changes made to WebKit are clearly identified with a #ifdef ANDROID_[feature name]. Presently the WebKit code base is published as a tar ball here: http://code.google.com/p/android/downloads/list, though going forward we will work on moving all changes and improvements back to the WebKit SVN code base.

Please take a look at the SDK and let us know what you think. We would love to hear your comments on the browser implementation and/or any other elements of the Android Platform.