Index: chrome/renderer/chrome_render_view_observer.cc |
=================================================================== |
--- chrome/renderer/chrome_render_view_observer.cc (revision 110185) |
+++ chrome/renderer/chrome_render_view_observer.cc (working copy) |
@@ -4,6 +4,8 @@ |
#include "chrome/renderer/chrome_render_view_observer.h" |
+#include "base/bind.h" |
+#include "base/callback_old.h" |
#include "base/command_line.h" |
#include "base/debug/trace_event.h" |
#include "base/message_loop.h" |
@@ -226,7 +228,7 @@ |
last_indexed_page_id_(-1), |
allow_displaying_insecure_content_(false), |
allow_running_insecure_content_(false), |
- ALLOW_THIS_IN_INITIALIZER_LIST(page_info_method_factory_(this)) { |
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) { |
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
if (command_line.HasSwitch(switches::kDomAutomationController)) { |
int old_bindings = render_view->GetEnabledBindings(); |
@@ -620,10 +622,8 @@ |
void ChromeRenderViewObserver::DidStopLoading() { |
MessageLoop::current()->PostDelayedTask( |
FROM_HERE, |
- page_info_method_factory_.NewRunnableMethod( |
- &ChromeRenderViewObserver::CapturePageInfo, |
- render_view()->GetPageId(), |
- false), |
+ base::Bind(&ChromeRenderViewObserver::CapturePageInfo, |
+ weak_factory_.GetWeakPtr(), render_view()->GetPageId(), false), |
render_view()->GetContentStateImmediately() ? 0 : kDelayForCaptureMs); |
WebFrame* main_frame = render_view()->GetWebView()->mainFrame(); |
@@ -678,10 +678,8 @@ |
MessageLoop::current()->PostDelayedTask( |
FROM_HERE, |
- page_info_method_factory_.NewRunnableMethod( |
- &ChromeRenderViewObserver::CapturePageInfo, |
- render_view()->GetPageId(), |
- true), |
+ base::Bind(&ChromeRenderViewObserver::CapturePageInfo, |
+ weak_factory_.GetWeakPtr(), render_view()->GetPageId(), true), |
kDelayForForcedCaptureMs); |
} |