Index: content/browser/renderer_host/render_widget_host_view_aura.h |
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h |
index 0e3fa6effc340213604fa905d37b063198d5935f..abfd701fb7f6613c9e6cb1b9b92009bc14e56ad0 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_aura.h |
+++ b/content/browser/renderer_host/render_widget_host_view_aura.h |
@@ -12,6 +12,7 @@ |
#include "base/callback.h" |
#include "base/memory/linked_ptr.h" |
#include "base/memory/ref_counted.h" |
+#include "base/memory/weak_ptr.h" |
#include "content/browser/renderer_host/image_transport_factory.h" |
#include "content/browser/renderer_host/render_widget_host_view_base.h" |
#include "content/common/content_export.h" |
@@ -111,8 +112,15 @@ class RenderWidgetHostViewAura |
int32 width_in_pixel, |
int32 height_in_pixel, |
uint64* surface_id, |
- TransportDIB::Handle* surface_handle) OVERRIDE; |
+ TransportDIB::Handle* surface_handle, |
+ int32 route_id, |
+ int gpu_host_id) OVERRIDE; |
virtual void AcceleratedSurfaceRelease(uint64 surface_id) OVERRIDE; |
+ virtual void AcceleratedSurfaceRequestReleaseFront(uint64 surface_id, |
+ int request_id, |
+ int retry_count, |
+ int32 route_id, |
+ int gpu_host_id) OVERRIDE; |
virtual void GetScreenInfo(WebKit::WebScreenInfo* results) OVERRIDE; |
virtual gfx::Rect GetRootWindowBounds() OVERRIDE; |
virtual void ProcessTouchAck(WebKit::WebInputEvent::Type type, |
@@ -218,6 +226,20 @@ class RenderWidgetHostViewAura |
// Called when window_ is removed from the window tree. |
void RemovingFromRootWindow(); |
+ void InvalidatePendingRequestReleaseFrontRequest(); |
+ void ReleaseFrontSurfaceIfStillValid(uint64 surface_id, |
+ int request_id, |
+ int retry_count, |
+ int32 route_id, |
+ int gpu_host_id); |
+ void SendRequestReleaseFrontAckAfterThumbnailIfNecessary(int request_id, |
+ int retry_count, |
+ bool was_released, |
+ int32 route_id, |
+ int gpu_host_id); |
+ void CopyFromCompositingSurfaceFinished(base::Callback<void(bool)> callback, |
+ bool result); |
+ |
ui::Compositor* GetCompositor(); |
// The model object. |
@@ -273,6 +295,23 @@ class RenderWidgetHostViewAura |
uint64 current_surface_; |
+ int32 route_id_; |
+ int gpu_host_id_; |
+ |
+ // Factory used to safely scope delayed calls. |
+ base::WeakPtrFactory<RenderWidgetHostViewAura> weak_factory_; |
+ |
+ // Stores the request id of the most recent request release front message. |
+ // If surface state changes, or a new release request is received, this id |
+ // is updated to invalidate any pending release request. |
+ int current_valid_release_front_request_id_; |
+ |
+ bool is_thumbnailing_; |
+ |
+ // This is used to delay sending a release front ack until thumbnailing |
+ // is finished (used if we are thumbnailing at time of release request). |
+ std::vector<base::Callback<void(void)> > delayed_release_front_acks_; |
+ |
gfx::GLSurfaceHandle shared_surface_handle_; |
// If non-NULL we're in OnPaint() and this is the supplied canvas. |