Chromium Code Reviews| Index: android_webview/browser/browser_view_renderer.cc |
| diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc |
| index f897b0ce0642732e3a7549b2d5924830ab153523..6342c72e6a2fe0557f7c944ebd8975a8b543bb7d 100644 |
| --- a/android_webview/browser/browser_view_renderer.cc |
| +++ b/android_webview/browser/browser_view_renderer.cc |
| @@ -306,18 +306,6 @@ void BrowserViewRenderer::UpdateParentDrawConstraints() { |
| } |
| } |
| -void BrowserViewRenderer::ReturnUnusedResource( |
| - scoped_ptr<cc::CompositorFrame> frame) { |
| - if (!frame.get()) |
| - return; |
| - |
| - cc::CompositorFrameAck frame_ack; |
| - cc::TransferableResource::ReturnResources( |
| - frame->delegated_frame_data->resource_list, &frame_ack.resources); |
| - if (compositor_ && !frame_ack.resources.empty()) |
| - compositor_->ReturnResources(frame_ack); |
| -} |
| - |
| void BrowserViewRenderer::ReturnResourceFromParent() { |
| cc::CompositorFrameAck frame_ack; |
| shared_renderer_state_.SwapReturnedResourcesOnUI(&frame_ack.resources); |
| @@ -453,11 +441,8 @@ void BrowserViewRenderer::OnDetachedFromWindow() { |
| void BrowserViewRenderer::ReleaseHardware() { |
| DCHECK(hardware_enabled_); |
| - // TODO(hush): do this in somewhere else. Either in hardware render or in |
| - // shared renderer state. |
| - ReturnUnusedResource(shared_renderer_state_.PassCompositorFrame()); |
| ReturnResourceFromParent(); |
| - DCHECK(shared_renderer_state_.ReturnedResourcesEmpty()); |
| + DCHECK(shared_renderer_state_.ReturnedResourcesEmptyOnUI()); |
| if (compositor_) { |
| compositor_->ReleaseHwDraw(); |
| @@ -469,6 +454,10 @@ void BrowserViewRenderer::ReleaseHardware() { |
| GlobalTileManager::GetInstance()->Remove(tile_manager_key_); |
| } |
| +void BrowserViewRenderer::InvalidateOnFunctorDestroy() { |
| + client_->InvalidateOnFunctorDestroy(); |
| +} |
| + |
| bool BrowserViewRenderer::IsVisible() const { |
| // Ignore |window_visible_| if |attached_to_window_| is false. |
| return view_visible_ && (!attached_to_window_ || window_visible_); |
| @@ -754,9 +743,9 @@ void BrowserViewRenderer::FallbackTickFired() { |
| if (compositor_needs_continuous_invalidate_ && compositor_) { |
| if (hardware_enabled_) { |
| ReturnResourceFromParent(); |
| - ReturnUnusedResource(shared_renderer_state_.PassCompositorFrame()); |
|
boliu
2014/10/28 19:49:43
This isn't quite the same anymore.
This used to r
hush (inactive)
2014/10/29 19:57:04
The resources in SRS::returned_resources_ will be
|
| scoped_ptr<cc::CompositorFrame> frame = CompositeHw(); |
| if (frame.get()) { |
| + // Unused resource will be returned in SetCompositorFrameOnUI. |
| shared_renderer_state_.SetCompositorFrameOnUI(frame.Pass(), true); |
| } |
| } else { |