Index: content/worker/webworkerclient_proxy.cc |
diff --git a/content/worker/webworkerclient_proxy.cc b/content/worker/webworkerclient_proxy.cc |
index 7bd5fd98da76aeb7bcf8bee0f9161fa48e49947c..da4b3b6cbc46da0f568b6fd1adb8af07c03b06dc 100644 |
--- a/content/worker/webworkerclient_proxy.cc |
+++ b/content/worker/webworkerclient_proxy.cc |
@@ -4,6 +4,7 @@ |
#include "content/worker/webworkerclient_proxy.h" |
+#include "base/bind.h" |
#include "base/command_line.h" |
#include "base/message_loop.h" |
#include "content/common/file_system/file_system_dispatcher.h" |
@@ -209,7 +210,8 @@ void WebWorkerClientProxy::EnsureWorkerContextTerminates() { |
// page. It's ok to post several of theese, because the first executed task |
// will exit the message loop and subsequent ones won't be executed. |
MessageLoop::current()->PostDelayedTask(FROM_HERE, |
- kill_process_factory_.NewRunnableMethod( |
- &WebWorkerClientProxy::workerContextDestroyed), |
- kMaxTimeForRunawayWorkerMs); |
+ base::Bind( |
+ &WebWorkerClientProxy::workerContextDestroyed, |
+ kill_process_factory_.GetWeakPtr()), |
+ kMaxTimeForRunawayWorkerMs); |
} |