Index: content/common/gpu/gpu_channel_manager.cc |
diff --git a/content/common/gpu/gpu_channel_manager.cc b/content/common/gpu/gpu_channel_manager.cc |
index 9e5fee4ca191d5963cee8ed82fa329a9db79f205..1a365ca100b81f390eca6012af78db418bb43791 100644 |
--- a/content/common/gpu/gpu_channel_manager.cc |
+++ b/content/common/gpu/gpu_channel_manager.cc |
@@ -114,10 +114,13 @@ GpuChannelManager::GpuChannelManager(MessageRouter* router, |
DCHECK(io_message_loop); |
DCHECK(shutdown_event); |
channel_->AddFilter(filter_.get()); |
+ subscription_ref_set_ = new gpu::gles2::SubscriptionRefSet(); |
+ subscription_ref_set_->AddObserver(this); |
} |
GpuChannelManager::~GpuChannelManager() { |
gpu_channels_.clear(); |
+ subscription_ref_set_->RemoveObserver(this); |
if (default_offscreen_surface_.get()) { |
default_offscreen_surface_->Destroy(); |
default_offscreen_surface_ = NULL; |
@@ -186,6 +189,14 @@ bool GpuChannelManager::OnMessageReceived(const IPC::Message& msg) { |
bool GpuChannelManager::Send(IPC::Message* msg) { return router_->Send(msg); } |
+void GpuChannelManager::OnAddSubscription(unsigned int target) { |
+ Send(new GpuHostMsg_AddSubscription(target)); |
+} |
+ |
+void GpuChannelManager::OnRemoveSubscription(unsigned int target) { |
+ Send(new GpuHostMsg_RemoveSubscription(target)); |
+} |
+ |
void GpuChannelManager::OnEstablishChannel(int client_id, |
bool share_context, |
bool allow_future_sync_points) { |
@@ -207,6 +218,7 @@ void GpuChannelManager::OnEstablishChannel(int client_id, |
watchdog_, |
share_group, |
mailbox_manager, |
+ subscription_ref_set_.get(), |
client_id, |
false, |
allow_future_sync_points)); |