Nested compositor contexts used the same vsync scheduling path as top-level contexts. That made iframe presents depend on a context's own timer instead of the display refresh rate, and screenshots needed a separate descendant flush to avoid stale child surfaces. Keep top-level contexts on vsync, but make nested contexts dirty their containing context instead of scheduling themselves. When a composited child surface is resolved, synchronously rasterize the child if it has a pending frame, using a separate display-list player so recursive replay does not reuse the active player state. This lets screenshots and normal presentation share the same child-surface update path. |
||
|---|---|---|
| .. | ||
| Compositor | ||
| ImageDecoder | ||
| RequestServer | ||
| WebContent | ||
| WebDriver | ||
| WebWorker | ||
| CMakeLists.txt | ||
| RendererSandbox.h | ||
| RendererSandboxLinux.cpp | ||
| RendererSandboxMacOS.cpp | ||
| RendererSandboxUnimplemented.cpp | ||