Apply pinch zoom deltas to the compositor's visual viewport transform so the currently presented display list can respond without waiting for the WebContent main thread. Keep the normal WebContent pinch event path so the real VisualViewport state and DOM-visible events catch up after. Only take the compositor path when async scrolling is enabled and there are no blocking wheel listeners, since pinch zoom dispatches a synthetic wheel event that script may cancel. Coalesce queued pinch events in WebContent so main-thread catch-up can adopt multiple gesture deltas together. Use the compositor visual viewport transform for wheel hit testing and consume wheel deltas as visual viewport pan while zoomed. Scale the handoff to layout viewport scrolling by the inverse visual viewport scale, so touchpad momentum does not jump when the visual viewport hits an edge. |
||
|---|---|---|
| .. | ||
| Compositor | ||
| ImageDecoder | ||
| RequestServer | ||
| WebContent | ||
| WebDriver | ||
| WebWorker | ||
| CMakeLists.txt | ||
| RendererSandbox.h | ||
| RendererSandboxLinux.cpp | ||
| RendererSandboxMacOS.cpp | ||
| RendererSandboxUnimplemented.cpp | ||