Commit ec26a37e authored by Eric Karl's avatar Eric Karl Committed by Commit Bot

Android OOP-D: Populate |current_surface_size_| via RenderFrameMetadata

We currently populate a |current_surface_size_| variable in Render...
WidgetHostViewAndroid via frame sizes in SubmitCompositorFrame. In Viz
mode we don't get SubmitCompositorFrames, so we miss these udpates.

This variable is used for fullscreen transition improvements and
general frame-readiness checks.

This value is present in RenderFrameMetadata, and can be populated from
there in the Viz case.

Bug: 871774
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I6892cbb35590e03e2b8a7d2d822a7b29308f7439
Reviewed-on: https://chromium-review.googlesource.com/1180517Reviewed-by: default avatarKhushal <khushalsagar@chromium.org>
Commit-Queue: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584635}
parent 76b2faa1
......@@ -57,7 +57,8 @@ class CC_EXPORT RenderFrameMetadata {
// The device scale factor used to generate a CompositorFrame.
float device_scale_factor = 1.f;
// The size of the viewport used to generate a CompositorFrame.
// The size of the viewport used to generate a CompositorFrame. Equivalent to
// the size of the root render pass.
gfx::Size viewport_size_in_pixels;
// The last viz::LocalSurfaceId used to submit a CompositorFrame.
......
......@@ -420,6 +420,7 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation(
page_scale_ = metadata.page_scale_factor;
min_page_scale_ = metadata.min_page_scale_factor;
max_page_scale_ = metadata.max_page_scale_factor;
current_surface_size_ = metadata.viewport_size_in_pixels;
}
void RenderWidgetHostViewAndroid::Focus() {
......@@ -1365,6 +1366,9 @@ void RenderWidgetHostViewAndroid::OnDidUpdateVisualPropertiesComplete(
const cc::RenderFrameMetadata& metadata) {
SynchronizeVisualProperties(cc::DeadlinePolicy::UseDefaultDeadline(),
metadata.local_surface_id);
// We've just processed new RenderFrameMetadata and potentially embedded a
// new surface for that data. Check if we need to evict it.
EvictFrameIfNecessary();
}
void RenderWidgetHostViewAndroid::ShowInternal() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment