wiki:Mobile
Last modified 6 years ago Last modified on 01/21/08 00:36:40

WebKit for Mobile devices

WebKit is well-suited for mobile devices thanks to its small footprint and high performance. The WebKit porting layer makes it easy to adapt the browser engine to integrate tightly into existing mobile platforms.

Supported devices

  • Mac
    • Apple iPhone
  • GTK+
    • Nokia Internet tablets
    • OpenMoko

Other devices using Webkit

Build configurations

LOW_BANDWIDTH_DISPLAY

Details from the bug:12279: When loading some sites on devices that have high latency and low bandwidth (HL/LB), the user may not see content for quite some time. This is due the external javascript references and CSS references. When the parser hits the external JS reference, it blocks - which is the correct behaviour - and waits until the JS is available then executes the JS. Then continues parsing the markup. When using a HL/LB device, the user can be waiting too long, and they press cancel to stop loading thinking that the page is not loading. One way to address this issue is to load the page, but not execute any JS or block on external CSS requests, though, the content is still requested. This way the user sees some content. When all the content is available, the browser needs to reparse the HTML content executing the JS and applying the CSS. This process does result in a FoUC (Flash of Unstyled Content), though, this is preferable to the user pressing cancel. Enabling this flag enables this implementation.

MOBILE

Introduced with this bug fix. This flag was meant to represent a set of changes that would make WebKit work better on mobile devices. Presently, though, this flag is only used in the HTMLTokenizer.cpp. It adjusts the tokenizer chunk size. From the comments in the file:

// The mobile device needs to be responsive, as such the tokenizer chunk size is reduced.
// This value is used to define how many characters the tokenizer will process before 
// yeilding control.
#define TOKENIZER_CHUNK_SIZE  256

Compiler flags

This section needs to be written. -Os etc.

Reducing footprint

This section needs to be written. Put comparative compiler output from disabling SVG here.

Describe how to avoid the ICU dependency.