Chromium Code Reviews| Index: chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc |
| diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc |
| index b86d5cafd6ca1863e3c9e8faa02cf1091513702a..7b766f1afdb589f40e6ef03134de7adfeedd3e0c 100644 |
| --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc |
| +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc |
| @@ -190,7 +190,7 @@ void ChromeLauncherControllerUserSwitchObserver::AddUser(Profile* profile) { |
| ChromeLauncherControllerImpl::ChromeLauncherControllerImpl( |
| Profile* profile, |
| ash::ShelfModel* model) |
| - : model_(model), profile_(profile) { |
| + : model_(model), profile_(profile), weak_ptr_factory_(this) { |
| DCHECK(model_); |
| if (!profile_) { |
| // If no profile was passed, we take the currently active profile and use it |
| @@ -1180,7 +1180,7 @@ void ChromeLauncherControllerImpl::ScheduleUpdateAppLaunchersFromPref() { |
| base::ThreadTaskRunnerHandle::Get()->PostTask( |
| FROM_HERE, |
| base::Bind(&ChromeLauncherControllerImpl::UpdateAppLaunchersFromPref, |
| - base::Unretained(this))); |
| + weak_ptr_factory_.GetWeakPtr())); |
| } |
| void ChromeLauncherControllerImpl::UpdateAppLaunchersFromPref() { |
| @@ -1524,7 +1524,7 @@ void ChromeLauncherControllerImpl::AttachProfile(Profile* profile) { |
| pref_change_registrar_.Add( |
| prefs::kPolicyPinnedLauncherApps, |
| base::Bind(&ChromeLauncherControllerImpl::UpdateAppLaunchersFromPref, |
| - base::Unretained(this))); |
| + weak_ptr_factory_.GetWeakPtr())); |
|
xiyuan
2016/08/26 19:32:30
This is not necessary as long as PrefChangeRegistr
khmel
2016/08/26 23:26:18
Overfixed :)
|
| // Handling of prefs::kArcEnabled change should be called deferred to avoid |
| // race condition when OnAppUninstalledPrepared for Arc apps is called after |
| // UpdateAppLaunchersFromPref. |
| @@ -1532,25 +1532,25 @@ void ChromeLauncherControllerImpl::AttachProfile(Profile* profile) { |
| prefs::kArcEnabled, |
| base::Bind( |
| &ChromeLauncherControllerImpl::ScheduleUpdateAppLaunchersFromPref, |
| - base::Unretained(this))); |
| + weak_ptr_factory_.GetWeakPtr())); |
| pref_change_registrar_.Add( |
| prefs::kShelfAlignmentLocal, |
| base::Bind(&ChromeLauncherControllerImpl::SetShelfAlignmentFromPrefs, |
| - base::Unretained(this))); |
| + weak_ptr_factory_.GetWeakPtr())); |
| pref_change_registrar_.Add( |
| prefs::kShelfAutoHideBehaviorLocal, |
| base::Bind( |
| &ChromeLauncherControllerImpl::SetShelfAutoHideBehaviorFromPrefs, |
| - base::Unretained(this))); |
| + weak_ptr_factory_.GetWeakPtr())); |
| pref_change_registrar_.Add( |
| prefs::kShelfPreferences, |
| base::Bind(&ChromeLauncherControllerImpl::SetShelfBehaviorsFromPrefs, |
| - base::Unretained(this))); |
| + weak_ptr_factory_.GetWeakPtr())); |
| pref_change_registrar_.Add( |
| prefs::kTouchVirtualKeyboardEnabled, |
| base::Bind( |
| &ChromeLauncherControllerImpl::SetVirtualKeyboardBehaviorFromPrefs, |
| - base::Unretained(this))); |
| + weak_ptr_factory_.GetWeakPtr())); |
| std::unique_ptr<LauncherAppUpdater> extension_app_updater( |
| new LauncherExtensionAppUpdater(this, profile_)); |