| Index: content/renderer/load_progress_tracker.cc
|
| diff --git a/content/renderer/load_progress_tracker.cc b/content/renderer/load_progress_tracker.cc
|
| index c4ceb5eb00fce50531fdede2ac0ec3d8f2e5108d..753ab6d7a2f99d7e344be0fd5f2c9caf15d78a13 100644
|
| --- a/content/renderer/load_progress_tracker.cc
|
| +++ b/content/renderer/load_progress_tracker.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "content/renderer/load_progress_tracker.h"
|
|
|
| +#include "base/bind.h"
|
| #include "base/message_loop.h"
|
| #include "content/common/view_messages.h"
|
| #include "content/renderer/render_view_impl.h"
|
| @@ -18,7 +19,7 @@ LoadProgressTracker::LoadProgressTracker(RenderViewImpl* render_view)
|
| : render_view_(render_view),
|
| tracked_frame_(NULL),
|
| progress_(0.0),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
|
| }
|
|
|
| LoadProgressTracker::~LoadProgressTracker() {
|
| @@ -54,20 +55,20 @@ void LoadProgressTracker::DidChangeLoadProgress(WebKit::WebFrame* frame,
|
| (base::TimeTicks::Now() - last_time_progress_sent_).InMilliseconds() >
|
| kMinimumDelayBetweenUpdatesMS) {
|
| // If there is a pending task to send progress, it is now obsolete.
|
| - method_factory_.RevokeAll();
|
| + weak_factory_.InvalidateWeakPtrs();
|
| SendChangeLoadProgress();
|
| if (progress == 1.0)
|
| ResetStates();
|
| return;
|
| }
|
|
|
| - if (!method_factory_.empty())
|
| + if (weak_factory_.HasWeakPtrs())
|
| return;
|
|
|
| MessageLoop::current()->PostDelayedTask(
|
| FROM_HERE,
|
| - method_factory_.NewRunnableMethod(
|
| - &LoadProgressTracker::SendChangeLoadProgress),
|
| + base::Bind(&LoadProgressTracker::SendChangeLoadProgress,
|
| + weak_factory_.GetWeakPtr()),
|
| kMinimumDelayBetweenUpdatesMS);
|
| }
|
|
|
| @@ -81,6 +82,6 @@ void LoadProgressTracker::SendChangeLoadProgress() {
|
| void LoadProgressTracker::ResetStates() {
|
| tracked_frame_ = NULL;
|
| progress_ = 0.0;
|
| - method_factory_.RevokeAll();
|
| + weak_factory_.InvalidateWeakPtrs();
|
| last_time_progress_sent_ = base::TimeTicks();
|
| }
|
|
|