Index: content/browser/gpu/gpu_process_host.cc |
diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc |
index 4160c89023f3cc4f58b3794be398f58b04842127..04d1e2e6d6c2509ded7e39314799ef0ae82f708a 100644 |
--- a/content/browser/gpu/gpu_process_host.cc |
+++ b/content/browser/gpu/gpu_process_host.cc |
@@ -34,8 +34,6 @@ |
#include "content/browser/gpu/gpu_main_thread_factory.h" |
#include "content/browser/gpu/gpu_process_host_ui_shim.h" |
#include "content/browser/gpu/shader_cache_factory.h" |
-#include "content/browser/renderer_host/render_widget_host_impl.h" |
-#include "content/browser/renderer_host/render_widget_host_view_frame_subscriber.h" |
#include "content/browser/service_manager/service_manager_context.h" |
#include "content/common/child_process_host_impl.h" |
#include "content/common/in_process_child_thread_params.h" |
@@ -44,8 +42,6 @@ |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/content_browser_client.h" |
#include "content/public/browser/gpu_utils.h" |
-#include "content/public/browser/render_process_host.h" |
-#include "content/public/browser/render_widget_host_view.h" |
#include "content/public/common/connection_filter.h" |
#include "content/public/common/content_client.h" |
#include "content/public/common/content_switches.h" |
@@ -198,15 +194,14 @@ void RunCallbackOnIO(GpuProcessHost::GpuProcessKind kind, |
} |
#if defined(USE_OZONE) |
-void SendGpuProcessMessageByHostId(int host_id, IPC::Message* message) { |
- GpuProcessHost* host = GpuProcessHost::FromID(host_id); |
- if (host) { |
+void SendGpuProcessMessage(base::WeakPtr<GpuProcessHost> host, |
+ IPC::Message* message) { |
+ if (host) |
host->Send(message); |
- } else { |
+ else |
delete message; |
- } |
} |
-#endif |
+#endif // defined(USE_OZONE) |
// NOTE: changes to this class need to be reviewed by the security team. |
class GpuSandboxedProcessLauncherDelegate |
@@ -311,14 +306,6 @@ class GpuSandboxedProcessLauncherDelegate |
#endif // OS_WIN |
}; |
-void HostLoadedShader(int host_id, |
- const std::string& key, |
- const std::string& data) { |
- GpuProcessHost* host = GpuProcessHost::FromID(host_id); |
- if (host) |
- host->LoadedShader(key, data); |
-} |
- |
} // anonymous namespace |
class GpuProcessHost::ConnectionFilterImpl : public ConnectionFilter { |
@@ -631,8 +618,8 @@ bool GpuProcessHost::Init() { |
ui::OzonePlatform::GetInstance() |
->GetGpuPlatformSupportHost() |
->OnGpuProcessLaunched( |
- host_id_, BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), |
- base::Bind(&SendGpuProcessMessageByHostId, host_id_)); |
+ host_id_, base::ThreadTaskRunnerHandle::Get(), |
+ base::Bind(&SendGpuProcessMessage, weak_ptr_factory_.GetWeakPtr())); |
#endif |
return true; |
@@ -662,11 +649,6 @@ bool GpuProcessHost::Send(IPC::Message* msg) { |
return result; |
} |
-void GpuProcessHost::AddFilter(IPC::MessageFilter* filter) { |
- DCHECK(CalledOnValidThread()); |
- process_->GetHost()->AddFilter(filter); |
-} |
- |
bool GpuProcessHost::OnMessageReceived(const IPC::Message& message) { |
DCHECK(CalledOnValidThread()); |
RouteOnUIThread(message); |
@@ -1193,7 +1175,8 @@ void GpuProcessHost::CreateChannelCache(int32_t client_id) { |
if (!cache.get()) |
return; |
- cache->set_shader_loaded_callback(base::Bind(&HostLoadedShader, host_id_)); |
+ cache->set_shader_loaded_callback(base::Bind(&GpuProcessHost::LoadedShader, |
+ weak_ptr_factory_.GetWeakPtr())); |
client_id_to_shader_cache_[client_id] = cache; |
} |