Index: content/renderer/browser_plugin/browser_plugin_compositing_helper.h |
diff --git a/content/renderer/browser_plugin/browser_plugin_compositing_helper.h b/content/renderer/browser_plugin/browser_plugin_compositing_helper.h |
index 5fd695d617ca6925c5d2ee4d422803141f62845b..2078cb767a6556001f2fa1ab49aee07ee051eb26 100644 |
--- a/content/renderer/browser_plugin/browser_plugin_compositing_helper.h |
+++ b/content/renderer/browser_plugin/browser_plugin_compositing_helper.h |
@@ -23,24 +23,36 @@ class WebLayer; |
namespace content { |
-class CONTENT_EXPORT BrowserPluginCompositingHelper { |
+class BrowserPluginManager; |
+ |
+class CONTENT_EXPORT BrowserPluginCompositingHelper : |
+ public base::RefCounted<BrowserPluginCompositingHelper> { |
public: |
BrowserPluginCompositingHelper(WebKit::WebPluginContainer* container, |
+ BrowserPluginManager* manager, |
int host_routing_id); |
- ~BrowserPluginCompositingHelper(); |
- |
void EnableCompositing(bool); |
+ void OnContainerDestroy(); |
void OnBuffersSwapped(const gfx::Size& size, |
const std::string& mailbox_name, |
int gpu_route_id, |
int gpu_host_id); |
void SetContainerSize(const gfx::Size&); |
- |
+ protected: |
+ // Friend RefCounted so that the dtor can be non-public. |
+ friend class base::RefCounted<BrowserPluginCompositingHelper>; |
private: |
+ ~BrowserPluginCompositingHelper(); |
+ void FreeMailboxMemory(const std::string& mailbox_name); |
+ void MailboxReleased(const std::string& mailbox_name, |
+ int gpu_route_id, |
+ int gpu_host_id, |
+ unsigned sync_point); |
void UpdateUVRect(); |
int host_routing_id_; |
bool last_mailbox_valid_; |
+ bool ack_pending_; |
gfx::Size buffer_size_; |
gfx::Size container_size_; |
@@ -48,6 +60,8 @@ class CONTENT_EXPORT BrowserPluginCompositingHelper { |
scoped_refptr<cc::TextureLayer> texture_layer_; |
scoped_ptr<WebKit::WebLayer> web_layer_; |
WebKit::WebPluginContainer* container_; |
+ |
+ scoped_refptr<BrowserPluginManager> browser_plugin_manager_; |
}; |
} // namespace content |