Phase 1: Hoist plugin widgets to be children of the top level window,
rework plugin clipping so that it takes accont of opaque Web content
that needs to be visible over plugins, remove use of dedicated native
widgets for scrolling and IFRAMEs. Fixes a bunch of plugin-related and
scrolling-related bugs, plus some bugs related to 16-bit native widget
coordinate limitations, is reputed to make some scrolling snappier.
Leaves us with one native widget per top-level content document. This is
about ready to land.
Phase 2: Restructure the way invalidation and painting works so that
paint runs off a timer instead of queued native paint events. Implement
frame rate control and hooks for animation APIs: an externally visible
JS animation API, plus internal hookups for animated images, CSS
transitions, SMIL, etc. This has not yet begun, but can start as soon as
phase 1 lands.
Phase 3: Stop top-level content documents from necessarily having their
own content widget, so that only the topmost browser or embedding window
has a native widget. This enables easy chrome-over-content effects and
enables massive code simplification.
Phase 4: Remove what's left of the view system.