| Index: chrome/browser/ui/app_list/apps_model_builder.cc
|
| diff --git a/chrome/browser/ui/app_list/apps_model_builder.cc b/chrome/browser/ui/app_list/apps_model_builder.cc
|
| index b662b4537f18f1e81c044f4cd06ae4d4126915d1..747d8e2fa831570ea908cde52626355074881917 100644
|
| --- a/chrome/browser/ui/app_list/apps_model_builder.cc
|
| +++ b/chrome/browser/ui/app_list/apps_model_builder.cc
|
| @@ -172,6 +172,16 @@ void AppsModelBuilder::AddApps(const ExtensionSet* extensions, Apps* apps) {
|
| }
|
| }
|
|
|
| +void AppsModelBuilder::SetProfile(Profile* profile) {
|
| + profile_ = profile;
|
| + model_->DeleteAll();
|
| + if (tracker_) {
|
| + tracker_->RemoveObserver(this);
|
| + tracker_ = extensions::InstallTrackerFactory::GetForProfile(profile_);
|
| + }
|
| + Build();
|
| +}
|
| +
|
| void AppsModelBuilder::PopulateApps() {
|
| ExtensionService* service =
|
| extensions::ExtensionSystem::Get(profile_)->extension_service();
|
| @@ -189,8 +199,10 @@ void AppsModelBuilder::PopulateApps() {
|
| service->extension_prefs()->extension_sorting()->FixNTPOrdinalCollisions();
|
| std::sort(apps.begin(), apps.end(), &AppPrecedes);
|
|
|
| - for (size_t i = 0; i < apps.size(); ++i)
|
| - model_->Add(apps[i]);
|
| + ScopedVector<app_list::AppListItemModel> items;
|
| + items.assign(apps.begin(), apps.end());
|
| +
|
| + model_->AddAll(items.Pass());
|
| }
|
|
|
| void AppsModelBuilder::ResortApps() {
|
|
|