Index: chrome/browser/omnibox_search_hint.cc |
diff --git a/chrome/browser/omnibox_search_hint.cc b/chrome/browser/omnibox_search_hint.cc |
index 22ff1b54a28eb65bdcdc147e68cb63b2f21d3806..8e0ae20fc40040d7071c90e02fbce3a560652809 100644 |
--- a/chrome/browser/omnibox_search_hint.cc |
+++ b/chrome/browser/omnibox_search_hint.cc |
@@ -4,7 +4,9 @@ |
#include "chrome/browser/omnibox_search_hint.h" |
+#include "base/bind.h" |
#include "base/command_line.h" |
+#include "base/memory/weak_ptr.h" |
#include "base/metrics/histogram.h" |
#include "base/task.h" |
// TODO(avi): remove when conversions not needed any more |
@@ -79,7 +81,7 @@ class HintInfoBar : public ConfirmInfoBarDelegate { |
bool should_expire_; |
// Used to delay the expiration of the info-bar. |
- ScopedRunnableMethodFactory<HintInfoBar> method_factory_; |
+ base::WeakPtrFactory<HintInfoBar> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(HintInfoBar); |
}; |
@@ -89,11 +91,12 @@ HintInfoBar::HintInfoBar(OmniboxSearchHint* omnibox_hint) |
omnibox_hint_(omnibox_hint), |
action_taken_(false), |
should_expire_(false), |
- ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { |
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) { |
// We want the info-bar to stick-around for few seconds and then be hidden |
// on the next navigation after that. |
- MessageLoop::current()->PostDelayedTask(FROM_HERE, |
- method_factory_.NewRunnableMethod(&HintInfoBar::AllowExpiry), |
+ MessageLoop::current()->PostDelayedTask( |
+ FROM_HERE, |
+ base::Bind(&HintInfoBar::AllowExpiry, weak_factory_.GetWeakPtr()), |
8000); // 8 seconds. |
} |