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 990d5b5d313fd372e5000ba9b295334e7000b9de..664053cc27de908f5aa1e0823724e830765ee34b 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/gpu_host_messages.h" |
@@ -45,8 +43,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" |
@@ -199,17 +195,6 @@ void RunCallbackOnIO(GpuProcessHost::GpuProcessKind kind, |
callback.Run(host); |
} |
-#if defined(USE_OZONE) |
-void SendGpuProcessMessageByHostId(int host_id, IPC::Message* message) { |
- GpuProcessHost* host = GpuProcessHost::FromID(host_id); |
- if (host) { |
- host->Send(message); |
- } else { |
- delete message; |
- } |
-} |
-#endif |
- |
// NOTE: changes to this class need to be reviewed by the security team. |
class GpuSandboxedProcessLauncherDelegate |
: public SandboxedProcessLauncherDelegate { |
@@ -313,14 +298,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 { |
@@ -642,8 +619,9 @@ 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(base::IgnoreResult(&GpuProcessHost::Send), |
piman
2017/04/06 20:51:14
So, if the weak_ptr is null, the message will be l
sadrul
2017/04/07 02:16:12
Good catch! Done. (... although maybe IPC::Sender:
piman
2017/04/07 18:16:41
That would be ideal... but I think there's so many
|
+ weak_ptr_factory_.GetWeakPtr())); |
#endif |
return true; |
@@ -1215,7 +1193,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; |
} |