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 { |