Version 2 (modified by 10 years ago) ( diff ) | ,
---|
Five Year Plan
A collection of thoughts about where we want to take WebKit over the next five years.
DOM Event Loop
High Level:This task would create a DOM event loop construct to be used in WebKit C++ code to provide HTML specification. Lower level: we would use platform run loop representations (ranging from CFRunLoop, to bare threads, to other platform primitives).
- Benefit:
- Fix lots of bugs because we enqueue events in one order, but they get fired in some other order.
- Would potentially help address our lack of micro-task abstraction.
- Potential problems:
- May be difficult to get right.
- Need to understand how this will interact with platform run loop
Render Tree Refcounting
Goal is to manage repaint complexity by moving to a refcount model for the Render Tree. The existing tree of nodes with back-pointers is very difficult to reason about.
- Possibly treat render tree as immutable after layout. Use this read-only tree to answer questions about current layout.
- Downside:
- Potential for ref cycles.
- Slightly larger memory use (additional count)
- Potential cost of copying the trees.
- Benefits:
- Allow layout and painting logic to be split, perhaps run on separate threads.
- Allow us to get rid of some back pointers.
- Allow hit testing or other "read only" operations to be done on the read-only tree.
- Allow web code to query geometry and other questions without triggering layout.
Painting: Display Lists
Goal is to move drawing off of the main thread.
Image Decoding
Layout State Machine
Hackability
- Renaming.
Text Measurement
Compositing
- Downstream
- Incremental
Threading
- Text measurement
Note:
See TracWiki
for help on using the wiki.