New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 653741 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug



Sign in to add a comment

CompostiorFrame's DelegatedFrameData should go away

Project Member Reported by fsam...@chromium.org, Oct 7 2016

Issue description

CompositorFrame holds a unique_ptr to DelegatedFrameData but deleted
frame data is now always set after this patch:

https://codereview.chromium.org/2374183006/

Thus, there's no good reason for it to be in a unique pointer.

We can simply move the fields:

  TransferableResourceArray resource_list;
  RenderPassList render_pass_list;

to CompositorFrame directly, and avoid an unnecessary allocation.

There are some places where we check delegated_frame_data to see if we've
received a frame. Perhaps those can be replaced by a bool or base::Optional.



 
deleted frame data => delegated frame data.
Owner: samans@chromium.org
Look at base/optional.h
Here's an example of code that checks if delegated_frame_data is set:

https://cs.chromium.org/chromium/src/cc/surfaces/display.cc?sq=package:chromium&rcl=1476271017&l=216

What this really means is: "Have I received a CompositorFrame"?
Labels: -Pri-3 Pri-1
It turns out this is a bigger problem than I thought. DirectCompositorFrameSink::ForceReclaimResources submits an empty CompositorFrame without a delegated_frame_data. SurfaceFactory::SubmitCompositorFrame checks whether the last frame has a delegated_frame_data as a proxy for "have I received a CompositorFrame". If this check happens after ForceReclaimResoruces, then SurfaceFactory assumes the answer is "no" and tells SurfaceManager that a new Surface has been created.

Mus+Ash, in a CL in review, wants to observe OnSurfaceCreated to send a message to mus-ws to update reference count. This signal can get sent multiple times in this case for the same surface ID which means reference counting (SurfaceSequences currently) will be incorrect, and we may leak surfaces.

I'd like to do this right, so this bug is higher priority. 

Comment 6 by sadrul@chromium.org, Oct 21 2016

Status: Started (was: Untriaged)
Project Member

Comment 7 by bugdroid1@chromium.org, Oct 27 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9641873cb887a3e1179162eef6463f000355f9b1

commit 9641873cb887a3e1179162eef6463f000355f9b1
Author: samans <samans@chromium.org>
Date: Thu Oct 27 21:24:45 2016

Switching to base::Optional<CompositorFrame> in Android's synchronous compositor IPC messages

In an effort to eliminate DelegatedFrameData, we need to get rid of the
dependecy on CompositorFrame::delegated_frame_data for figuring out
whether a frame swap has been performed or not. We now pass
an empty base::Optional<CompositorFrame> when a swap doesn't happen.

BUG= 653741 

Review-Url: https://codereview.chromium.org/2458743002
Cr-Commit-Position: refs/heads/master@{#428142}

[modify] https://crrev.com/9641873cb887a3e1179162eef6463f000355f9b1/content/browser/android/synchronous_compositor_browser_filter.cc
[modify] https://crrev.com/9641873cb887a3e1179162eef6463f000355f9b1/content/browser/android/synchronous_compositor_host.cc
[modify] https://crrev.com/9641873cb887a3e1179162eef6463f000355f9b1/content/common/android/sync_compositor_messages.h
[modify] https://crrev.com/9641873cb887a3e1179162eef6463f000355f9b1/content/renderer/android/synchronous_compositor_proxy.cc
[modify] https://crrev.com/9641873cb887a3e1179162eef6463f000355f9b1/content/renderer/android/synchronous_compositor_proxy.h

Project Member

Comment 8 by bugdroid1@chromium.org, Oct 29 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2

commit 4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2
Author: samans <samans@chromium.org>
Date: Sat Oct 29 02:27:45 2016

Getting rid of DelegatedFrameData

Note: From now on, the concept of "null" compositor frame (a compositor frame with a null delegated frame data) is gone. You should use base::Optional<CompositorFrame> instead.

BUG= 653741 

Review-Url: https://codereview.chromium.org/2449853004
Cr-Commit-Position: refs/heads/master@{#428591}

[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/android_webview/browser/browser_view_renderer.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/android_webview/browser/hardware_renderer.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/android_webview/browser/surfaces_instance.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/android_webview/browser/test/rendering_test.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/blimp/client/core/compositor/blimp_compositor.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/BUILD.gn
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/ipc/cc_param_traits.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/ipc/cc_param_traits.h
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/ipc/cc_param_traits_unittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/ipc/cc_serialization_perftest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/ipc/compositor_frame_struct_traits.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/ipc/compositor_frame_struct_traits.h
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/ipc/struct_traits_unittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/output/compositor_frame.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/output/compositor_frame.h
[delete] https://crrev.com/6c0885e2699ef3aac4f3d8186d0520e6386094b9/cc/output/delegated_frame_data.cc
[delete] https://crrev.com/6c0885e2699ef3aac4f3d8186d0520e6386094b9/cc/output/delegated_frame_data.h
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/direct_compositor_frame_sink.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/direct_compositor_frame_sink_unittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/display.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/display_unittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/surface.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/surface.h
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/surface_aggregator.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/surface_aggregator.h
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/surface_aggregator_perftest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/surface_aggregator_unittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/surface_factory.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/surface_factory_unittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/surface_hittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/surface_hittest_unittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/surfaces/surfaces_pixeltest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/test/fake_compositor_frame_sink.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/test/surface_aggregator_test_helpers.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/test/surface_hittest_test_helpers.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/test/test_compositor_frame_sink.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/trees/layer_tree_host_unittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/cc/trees/layer_tree_host_unittest_context.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/components/exo/surface.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/components/exo/surface_unittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/bad_message.h
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/compositor/mus_browser_compositor_output_surface.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/frame_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/frame_host/render_widget_host_view_guest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/frame_host/render_widget_host_view_guest_unittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/renderer_host/browser_compositor_view_mac.mm
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/renderer_host/delegated_frame_host.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/browser/renderer_host/render_widget_host_view_mac.mm
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/content/renderer/android/synchronous_compositor_frame_sink.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/services/ui/demo/bitmap_uploader.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/services/ui/surfaces/display_compositor_frame_sink.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/services/ui/ws/frame_generator.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/services/ui/ws/platform_display.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/services/ui/ws/server_window_compositor_frame_sink.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/services/ui/ws/window_tree_client_unittest.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/tools/ipc_fuzzer/fuzzer/fuzzer.cc
[modify] https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2/ui/android/delegated_frame_host_android.cc

Comment 9 by samans@chromium.org, Oct 29 2016

Status: Fixed (was: Started)
Project Member

Comment 10 by bugdroid1@chromium.org, Nov 16 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eb9ecefc55d1e3cf8498d0865568097fb9bbf285

commit eb9ecefc55d1e3cf8498d0865568097fb9bbf285
Author: aelias <aelias@chromium.org>
Date: Wed Nov 16 06:27:00 2016

Revert "Getting rid of DelegatedFrameData"

This reverts commit 4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2, which
caused a browser-animation framerate regression on Android.

NOTRY=true
TBR=boliu@chromium.org,danakj@chromium.org,fsamuel@chromium.org,dtrainor@chromium.org,piman@chromium.org,reveman@chromium.org,sky@chromium.org,tsepez@chromium.org
BUG= 663516 , 653741 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2503203002
Cr-Commit-Position: refs/heads/master@{#432390}

[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/android_webview/browser/browser_view_renderer.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/android_webview/browser/hardware_renderer.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/android_webview/browser/surfaces_instance.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/android_webview/browser/test/rendering_test.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/blimp/client/core/compositor/blimp_compositor.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/BUILD.gn
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/ipc/cc_param_traits.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/ipc/cc_param_traits.h
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/ipc/cc_param_traits_unittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/ipc/cc_serialization_perftest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/ipc/compositor_frame_struct_traits.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/ipc/compositor_frame_struct_traits.h
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/ipc/struct_traits_unittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/output/compositor_frame.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/output/compositor_frame.h
[add] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/output/delegated_frame_data.cc
[add] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/output/delegated_frame_data.h
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/direct_compositor_frame_sink.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/direct_compositor_frame_sink_unittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/display.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/display_unittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/surface.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/surface.h
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/surface_aggregator.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/surface_aggregator.h
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/surface_aggregator_perftest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/surface_aggregator_unittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/surface_factory.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/surface_factory_unittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/surface_hittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/surface_hittest_unittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/surfaces/surfaces_pixeltest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/test/fake_compositor_frame_sink.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/test/surface_aggregator_test_helpers.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/test/surface_hittest_test_helpers.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/test/test_compositor_frame_sink.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/trees/layer_tree_host_unittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/cc/trees/layer_tree_host_unittest_context.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/components/exo/surface.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/components/exo/surface_unittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/bad_message.h
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/compositor/mus_browser_compositor_output_surface.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/frame_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/frame_host/render_widget_host_view_guest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/frame_host/render_widget_host_view_guest_unittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/renderer_host/browser_compositor_view_mac.mm
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/renderer_host/delegated_frame_host.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/browser/renderer_host/render_widget_host_view_mac.mm
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/content/renderer/android/synchronous_compositor_frame_sink.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/services/ui/demo/bitmap_uploader.cc
[add] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/services/ui/surfaces/display_compositor_frame_sink.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/services/ui/ws/frame_generator.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/services/ui/ws/gpu_compositor_frame_sink.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/services/ui/ws/platform_display.cc
[add] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/services/ui/ws/server_window_compositor_frame_sink.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/services/ui/ws/window_tree_client_unittest.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/tools/ipc_fuzzer/fuzzer/fuzzer.cc
[modify] https://crrev.com/eb9ecefc55d1e3cf8498d0865568097fb9bbf285/ui/android/delegated_frame_host_android.cc

Status: Assigned (was: Fixed)
Cc: jbau...@chromium.org
+jbauman@ since he's aware of the issue that got this patch reverted.
I've resurrected the CL. My plan is to add an EvictFrame to Surface which basically resets current_frame_ and call it in ForceReclaimResources.
Project Member

Comment 14 by bugdroid1@chromium.org, Nov 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5

commit ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5
Author: samans <samans@chromium.org>
Date: Fri Nov 18 13:47:34 2016

Getting rid of DelegatedFrameData

Note: From now on, the concept of "null" compositor frame (a
compositor frame with a null delegated frame data) is gone. You
should use base::Optional<CompositorFrame> instead.

BUG= 653741 

Committed: https://crrev.com/4ba3a0e9d06bf66b3d900fec44bcf8ee4a2964a2
Review-Url: https://codereview.chromium.org/2449853004
Cr-Original-Commit-Position: refs/heads/master@{#428591}
Cr-Commit-Position: refs/heads/master@{#433186}

[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/android_webview/browser/browser_view_renderer.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/android_webview/browser/hardware_renderer.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/android_webview/browser/surfaces_instance.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/android_webview/browser/test/rendering_test.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/blimp/client/core/compositor/blimp_compositor.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/BUILD.gn
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/ipc/cc_param_traits.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/ipc/cc_param_traits.h
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/ipc/cc_param_traits_unittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/ipc/cc_serialization_perftest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/ipc/compositor_frame_struct_traits.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/ipc/compositor_frame_struct_traits.h
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/ipc/struct_traits_unittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/output/compositor_frame.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/output/compositor_frame.h
[delete] https://crrev.com/4d26f81f199fd258347a90986f10de7ba90a9848/cc/output/delegated_frame_data.cc
[delete] https://crrev.com/4d26f81f199fd258347a90986f10de7ba90a9848/cc/output/delegated_frame_data.h
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/direct_compositor_frame_sink.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/direct_compositor_frame_sink_unittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/display.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/display_unittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/surface.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/surface.h
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/surface_aggregator.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/surface_aggregator.h
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/surface_aggregator_perftest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/surface_aggregator_unittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/surface_factory.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/surface_factory.h
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/surface_factory_unittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/surface_hittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/surface_hittest_unittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/surfaces/surfaces_pixeltest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/test/fake_compositor_frame_sink.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/test/surface_aggregator_test_helpers.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/test/surface_hittest_test_helpers.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/test/test_compositor_frame_sink.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/trees/layer_tree_host_unittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/cc/trees/layer_tree_host_unittest_context.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/components/exo/surface.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/components/exo/surface_unittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/bad_message.h
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/compositor/mus_browser_compositor_output_surface.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/frame_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/frame_host/render_widget_host_view_guest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/frame_host/render_widget_host_view_guest_unittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/renderer_host/browser_compositor_view_mac.mm
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/renderer_host/delegated_frame_host.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/browser/renderer_host/render_widget_host_view_mac.mm
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/content/renderer/android/synchronous_compositor_frame_sink.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/services/ui/demo/bitmap_uploader.cc
[delete] https://crrev.com/4d26f81f199fd258347a90986f10de7ba90a9848/services/ui/surfaces/display_compositor_frame_sink.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/services/ui/ws/frame_generator.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/services/ui/ws/gpu_compositor_frame_sink.cc
[delete] https://crrev.com/4d26f81f199fd258347a90986f10de7ba90a9848/services/ui/ws/server_window_compositor_frame_sink.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/services/ui/ws/window_tree_client_unittest.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/tools/ipc_fuzzer/fuzzer/fuzzer.cc
[modify] https://crrev.com/ce5c3c3facaf0240ab9fdb7bbf05116af9cab5d5/ui/android/delegated_frame_host_android.cc

Status: Fixed (was: Assigned)

Sign in to add a comment