Index: chrome/browser/ui/browser.cc |
=================================================================== |
--- chrome/browser/ui/browser.cc (revision 111186) |
+++ chrome/browser/ui/browser.cc (working copy) |
@@ -13,6 +13,7 @@ |
#include <string> |
#include "base/base_paths.h" |
+#include "base/bind.h" |
#include "base/command_line.h" |
#include "base/logging.h" |
#include "base/metrics/field_trial.h" |
@@ -306,7 +307,7 @@ |
cancel_download_confirmation_state_(NOT_PROMPTED), |
show_state_(ui::SHOW_STATE_DEFAULT), |
is_session_restore_(false), |
- method_factory_(this), |
+ weak_factory_(this), |
block_command_execution_(false), |
last_blocked_command_id_(-1), |
last_blocked_command_disposition_(CURRENT_TAB), |
@@ -1736,7 +1737,7 @@ |
// visible at this point. Wait for next event cycle which toggles |
// the visibility of omnibox before creating new tab. |
MessageLoop::current()->PostTask( |
- FROM_HERE, method_factory_.NewRunnableMethod(&Browser::Search)); |
+ FROM_HERE, base::Bind(&Browser::Search, weak_factory_.GetWeakPtr())); |
James Hawkins
2011/11/22 21:26:30
This extra space makes the indentation 5 spaces (I
csilv
2011/11/22 21:31:52
Done.
|
return; |
} |
@@ -3103,7 +3104,7 @@ |
// the request. |
// TODO(port): figure out what is required here in a cross-platform world |
MessageLoop::current()->PostTask( |
- FROM_HERE, method_factory_.NewRunnableMethod(&Browser::CloseFrame)); |
+ FROM_HERE, base::Bind(&Browser::CloseFrame, weak_factory_.GetWeakPtr())); |
#endif |
} |
@@ -3253,7 +3254,7 @@ |
} |
// If we have any update pending, do it now. |
- if (!chrome_updater_factory_.empty() && old_contents) |
+ if (chrome_updater_factory_.HasWeakPtrs() && old_contents) |
ProcessPendingUIUpdates(); |
// Propagate the profile to the location bar. |
@@ -3351,7 +3352,7 @@ |
// NOTE: If you change to be immediate (no invokeLater) then you'll need to |
// update BrowserList::CloseAllBrowsers. |
MessageLoop::current()->PostTask( |
- FROM_HERE, method_factory_.NewRunnableMethod(&Browser::CloseFrame)); |
+ FROM_HERE, base::Bind(&Browser::CloseFrame, weak_factory_.GetWeakPtr())); |
} |
/////////////////////////////////////////////////////////////////////////////// |
@@ -4729,13 +4730,13 @@ |
// Save the dirty bits. |
scheduled_updates_[source] |= changed_flags; |
- if (chrome_updater_factory_.empty()) { |
+ if (!chrome_updater_factory_.HasWeakPtrs()) { |
// No task currently scheduled, start another. |
MessageLoop::current()->PostDelayedTask( |
FROM_HERE, |
- chrome_updater_factory_.NewRunnableMethod( |
- &Browser::ProcessPendingUIUpdates), |
- kUIUpdateCoalescingTimeMS); |
+ base::Bind(&Browser::ProcessPendingUIUpdates, |
+ chrome_updater_factory_.GetWeakPtr()), |
+ kUIUpdateCoalescingTimeMS); |
} |
} |
@@ -4757,7 +4758,7 @@ |
} |
#endif |
- chrome_updater_factory_.RevokeAll(); |
+ chrome_updater_factory_.InvalidateWeakPtrs(); |
for (UpdateMap::const_iterator i = scheduled_updates_.begin(); |
i != scheduled_updates_.end(); ++i) { |
@@ -4943,7 +4944,7 @@ |
} else { |
MessageLoop::current()->PostTask( |
FROM_HERE, |
- method_factory_.NewRunnableMethod(&Browser::ProcessPendingTabs)); |
+ base::Bind(&Browser::ProcessPendingTabs, weak_factory_.GetWeakPtr())); |
} |
} |
} |