CompositorFrameMetadata contains a lot of information that is not directly related to compositing, and are not generic compositing concepts such as:
root_scroll_offset
page_scale_factor
scrollable_viewport_size;
root_layer_size;
min_page_scale_factor
max_page_scale_factor
root_overflow_x_hidden
root_overflow_y_hidden
may_contain_video
top_controls_height
top_controls_shown_ratio
bottom_controls_height
bottom_controls_shown_ratio
selection
etc.
This fields are bundled with CompositorFrames so that they're synchronized with CompositorFrames. Let's solve this synchronization problem in general so that browser-specific or app-specific fields aren't special cased in mus/viz
Comment 1 by fsam...@chromium.org
, Apr 30 2017RenderWidgetHostImpl::SubmitCompositorFrame has the following block of code: bool is_mobile_optimized = IsMobileOptimizedFrame(frame.metadata); input_router_->NotifySiteIsMobileOptimized(is_mobile_optimized); if (touch_emulator_) touch_emulator_->SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); This seems a bit inappropriate to place in viz. Perhaps this code can be moved to a separate IPC and we can use the frame token for synchronization. I believe that would eliminate a number of fields in CompositorFrameMetadata...