Tuesday, March 5, 2013

Data Compression in Chrome Beta for Android

Today’s Chrome Beta for Android update brings your saved passwords and autofill entries from your desktop to your phone and tablet. This release also introduces an experimental data compression feature that will yield substantial bandwidth savings. This feature is powered by a connection to a SPDY proxy running on Google’s servers, paired with content optimization performed by our open-source PageSpeed libraries, specifically tuned for Chrome Beta on Android.

By using SPDY, the proxy is able to multiplex multiple request and response streams in parallel over a single TCP connection to your phone or tablet. When this new feature is enabled (enable the “Experimental Data Compression Proxy” under chrome://flags) the browser-to-proxy connection is over SSL, for a more secure browsing experience. In addition, only HTTP traffic is routed through and optimized by the proxy, so secure (HTTPS) requests will bypass the proxy and continue to connect directly to the destination. Furthermore, DNS lookups are performed by the proxy, instead of on the mobile device. Turning on this experimental feature also enables Safe Browsing.

For an average web page, over 60% of the transferred bytes are images. The proxy optimizes and transcodes all images to the WebP format, which requires fewer bytes than other popular formats, such as JPEG and PNG. The proxy also performs intelligent compression and minification of HTML, JavaScript and CSS resources, which removes unnecessary whitespace, comments, and other metadata which are not essential to render the page. These optimizations, combined with mandatory gzip compression for all resources, can result in substantial bandwidth savings.

For a deeper dive into the technical details, check out our whitepaper in Chrome for Android’s developer documentation. The latest version of Chrome Beta for Android is available on Google Play (use the link, you won't find it in search)! We look forward to your early feedback.

Update April 10, 2013: To enable this experimental data compression feature, go to “Bandwidth Management” in Settings and enable “Reduce Data Usage.” From the most recent Chrome Beta for Android release onwards, no need to look under chrome://flags.