Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7870)

Unified Diff: chrome/browser/ui/app_list/extension_app_model_builder.cc

Issue 148403007: Protect AppListItemList Add/Remove and fix sync bugs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/app_list/extension_app_model_builder.cc
diff --git a/chrome/browser/ui/app_list/extension_app_model_builder.cc b/chrome/browser/ui/app_list/extension_app_model_builder.cc
index 68ff0e866bdd9926e411f048d109abe3e276da69..d5f27b331912026f09ec466bea0ca91cb1ea5574 100644
--- a/chrome/browser/ui/app_list/extension_app_model_builder.cc
+++ b/chrome/browser/ui/app_list/extension_app_model_builder.cc
@@ -59,6 +59,7 @@ ExtensionAppModelBuilder::~ExtensionAppModelBuilder() {
void ExtensionAppModelBuilder::InitializeWithService(
app_list::AppListSyncableService* service) {
+ DCHECK(!service_ && !profile_);
model_ = service->model();
model_->item_list()->AddObserver(this);
service_ = service;
@@ -69,6 +70,7 @@ void ExtensionAppModelBuilder::InitializeWithService(
void ExtensionAppModelBuilder::InitializeWithProfile(
Profile* profile,
app_list::AppListModel* model) {
+ DCHECK(!service_ && !profile_);
model_ = model;
model_->item_list()->AddObserver(this);
profile_ = profile;
@@ -105,7 +107,7 @@ void ExtensionAppModelBuilder::OnDownloadProgress(
void ExtensionAppModelBuilder::OnInstallFailure(
const std::string& extension_id) {
- model_->item_list()->DeleteItem(extension_id);
+ model_->DeleteItem(extension_id);
}
void ExtensionAppModelBuilder::OnExtensionLoaded(const Extension* extension) {
@@ -142,7 +144,7 @@ void ExtensionAppModelBuilder::OnExtensionUninstalled(
service_->RemoveItem(extension->id());
return;
}
- model_->item_list()->DeleteItem(extension->id());
+ model_->DeleteItem(extension->id());
}
void ExtensionAppModelBuilder::OnAppsReordered() {
@@ -191,12 +193,7 @@ void ExtensionAppModelBuilder::AddApps(
}
void ExtensionAppModelBuilder::BuildModel() {
- // Delete any extension apps.
- model_->item_list()->DeleteItemsByType(ExtensionAppItem::kItemType);
-
- if (tracker_)
- tracker_->RemoveObserver(this);
-
+ DCHECK(!tracker_);
tracker_ = controller_->GetInstallTrackerFor(profile_);
PopulateApps();
@@ -225,7 +222,7 @@ void ExtensionAppModelBuilder::InsertApp(ExtensionAppItem* app) {
service_->AddItem(app);
return;
}
- model_->item_list()->AddItem(app);
+ model_->AddItem(app);
}
void ExtensionAppModelBuilder::SetHighlightedApp(

Powered by Google App Engine
This is Rietveld 408576698