Current status
This work has just begun. We expect to complete the first phase (Android and OS X) in Q1, 2012.
Goals
The main goal is to improve responsiveness. In the longer term, goals include:
- Asynchronous scrolling
- Preventing tearing
- Asynchronous video
- Asynchronous CSS animation
Design
A new thread will handle composition. This thread will receive updates from the content thread, much as the chrome process receives updates from the content process in e10s. Indeed, as much as possible, the shadow layers machinery developed for e10s will be adapted for off-main-thread compositing. The design may need to diverge in some places from the e10s approach: for example, on Android, updates from the content thread to the compositing thread may need to be asynchronous, since compositor may need to block on Gecko under certain circumstances.
Plan
Our highest priority platform for this project is Android. Since we expect that a significant portion of the desktop and mobile implementations will overlap, and since desktop development still proceeds more quickly than mobile development, we will actually develop the OS X implementation first, porting to Android as we go along.
Overview of our current plan:
- Desktop implementation
- Start with OS X.
- Setup compositing thread.
- Get Gfx api working in the new thread.
- Setup ITC protocol, and pass messages.
- Start with OS X.
- Mobile implementation
- Port the desktop implementation to Android.
Tracking bug
The tracking bug is bug 598873.