Chromium Code Reviews| Index: android_webview/browser/shared_renderer_state.cc |
| diff --git a/android_webview/browser/shared_renderer_state.cc b/android_webview/browser/shared_renderer_state.cc |
| index e81ab1261ec7d19e7a71cfb406070b3a7afa314d..9fd1a48ab70b0d118e818661b20d6392bce2e900 100644 |
| --- a/android_webview/browser/shared_renderer_state.cc |
| +++ b/android_webview/browser/shared_renderer_state.cc |
| @@ -213,18 +213,32 @@ bool SharedRendererState::IsInsideHardwareRelease() const { |
| return inside_hardware_release_; |
| } |
| +SharedRendererState::ReturnedResources::ReturnedResources() |
| + : output_surface_id(0u) {} |
| + |
| +SharedRendererState::ReturnedResources::~ReturnedResources() {} |
| + |
| void SharedRendererState::InsertReturnedResourcesOnRT( |
| const cc::ReturnedResourceArray& resources, |
| - uint32_t compositor_id) { |
| + uint32_t compositor_id, |
| + uint32_t output_surface_id) { |
| base::AutoLock lock(lock_); |
| - cc::ReturnedResourceArray& returned_resources = |
| + ReturnedResources& returned_resources = |
| returned_resources_map_[compositor_id]; |
| - returned_resources.insert(returned_resources.end(), resources.begin(), |
| - resources.end()); |
| + if (returned_resources.output_surface_id != output_surface_id) { |
| + if ((returned_resources.output_surface_id - output_surface_id) < |
|
hush (inactive)
2016/03/15 00:05:59
i guess you can also do:
if (output_surface_id - r
|
| + 0x80000000) { |
| + return; |
| + } |
| + returned_resources.resources.clear(); |
| + } |
| + returned_resources.resources.insert(returned_resources.resources.end(), |
| + resources.begin(), resources.end()); |
| + returned_resources.output_surface_id = output_surface_id; |
| } |
| void SharedRendererState::SwapReturnedResourcesOnUI( |
| - std::map<uint32_t, cc::ReturnedResourceArray>* returned_resource_map) { |
| + ReturnedResourcesMap* returned_resource_map) { |
| DCHECK(returned_resource_map->empty()); |
| base::AutoLock lock(lock_); |
| returned_resource_map->swap(returned_resources_map_); |