Chromium Code Reviews| 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 ec4c287ace8c3f87941d0630f41b29702ac58348..084be5c854467e499499a3b9d996bf3ad6ac27ef 100644 |
| --- a/chrome/browser/ui/app_list/extension_app_model_builder.cc |
| +++ b/chrome/browser/ui/app_list/extension_app_model_builder.cc |
| @@ -1,4 +1,4 @@ |
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Copyright 2012 The Chromium Authors. All rights reserved. |
|
jochen (gone - plz use gerrit)
2015/12/03 10:25:40
don't modify copyright headers
khmel1
2015/12/03 12:34:49
Done.
|
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| @@ -12,11 +12,9 @@ |
| #include "chrome/browser/extensions/extension_ui_util.h" |
| #include "chrome/browser/extensions/extension_util.h" |
| #include "chrome/browser/extensions/install_tracker.h" |
| -#include "chrome/browser/extensions/install_tracker_factory.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/app_list/app_list_controller_delegate.h" |
| #include "chrome/browser/ui/app_list/app_list_syncable_service.h" |
| -#include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h" |
| #include "chrome/browser/ui/app_list/extension_app_item.h" |
| #include "chrome/common/pref_names.h" |
| #include "extensions/browser/extension_prefs.h" |
| @@ -34,47 +32,16 @@ using extensions::Extension; |
| ExtensionAppModelBuilder::ExtensionAppModelBuilder( |
| AppListControllerDelegate* controller) |
| - : service_(NULL), |
| - profile_(NULL), |
| - controller_(controller), |
| - model_(NULL), |
| - tracker_(NULL), |
| - extension_registry_(NULL) { |
| + : AppListModelBuilder(controller, ExtensionAppItem::kItemType) { |
| } |
| ExtensionAppModelBuilder::~ExtensionAppModelBuilder() { |
| OnShutdown(); |
| OnShutdown(extension_registry_); |
| - if (!service_) |
| - model_->top_level_item_list()->RemoveObserver(this); |
| -} |
| - |
| -void ExtensionAppModelBuilder::InitializeWithService( |
| - app_list::AppListSyncableService* service, |
| - app_list::AppListModel* model) { |
| - DCHECK(!service_ && !profile_); |
| - model_ = model; |
| - service_ = service; |
| - profile_ = service->profile(); |
| - InitializePrefChangeRegistrars(); |
| - |
| - BuildModel(); |
| -} |
| - |
| -void ExtensionAppModelBuilder::InitializeWithProfile( |
| - Profile* profile, |
| - app_list::AppListModel* model) { |
| - DCHECK(!service_ && !profile_); |
| - model_ = model; |
| - model_->top_level_item_list()->AddObserver(this); |
| - profile_ = profile; |
| - InitializePrefChangeRegistrars(); |
| - |
| - BuildModel(); |
| } |
| void ExtensionAppModelBuilder::InitializePrefChangeRegistrars() { |
| - profile_pref_change_registrar_.Init(profile_->GetPrefs()); |
| + profile_pref_change_registrar_.Init(profile()->GetPrefs()); |
| profile_pref_change_registrar_.Add( |
| prefs::kHideWebStoreIcon, |
| base::Bind(&ExtensionAppModelBuilder::OnProfilePreferenceChanged, |
| @@ -88,7 +55,7 @@ void ExtensionAppModelBuilder::InitializePrefChangeRegistrars() { |
| extensions::ExtensionsBrowserClient* client = |
| extensions::ExtensionsBrowserClient::Get(); |
| extension_pref_change_registrar_.Init( |
| - client->GetPrefServiceForContext(profile_)); |
| + client->GetPrefServiceForContext(profile())); |
| extension_pref_change_registrar_.Add( |
| extensions::pref_names::kExtensions, |
| base::Bind(&ExtensionAppModelBuilder::OnExtensionPreferenceChanged, |
| @@ -97,13 +64,13 @@ void ExtensionAppModelBuilder::InitializePrefChangeRegistrars() { |
| void ExtensionAppModelBuilder::OnProfilePreferenceChanged() { |
| extensions::ExtensionSet extensions; |
| - controller_->GetApps(profile_, &extensions); |
| + controller()->GetApps(profile(), &extensions); |
| for (extensions::ExtensionSet::const_iterator app = extensions.begin(); |
| app != extensions.end(); ++app) { |
| bool should_display = |
| - extensions::ui_util::ShouldDisplayInAppLauncher(app->get(), profile_); |
| - bool does_display = GetExtensionAppItem((*app)->id()) != NULL; |
| + extensions::ui_util::ShouldDisplayInAppLauncher(app->get(), profile()); |
| + bool does_display = GetExtensionAppItem((*app)->id()) != nullptr; |
| if (should_display == does_display) |
| continue; |
| @@ -114,16 +81,16 @@ void ExtensionAppModelBuilder::OnProfilePreferenceChanged() { |
| gfx::ImageSkia(), |
| (*app)->is_platform_app())); |
| } else { |
| - if (service_) |
| - service_->RemoveItem((*app)->id()); |
| + if (service()) |
| + service()->RemoveItem((*app)->id()); |
| else |
| - model_->DeleteItem((*app)->id()); |
| + model()->DeleteItem((*app)->id()); |
| } |
| } |
| } |
| void ExtensionAppModelBuilder::OnExtensionPreferenceChanged() { |
| - model_->NotifyExtensionPreferenceChanged(); |
| + model()->NotifyExtensionPreferenceChanged(); |
| } |
| void ExtensionAppModelBuilder::OnBeginExtensionInstall( |
| @@ -131,7 +98,7 @@ void ExtensionAppModelBuilder::OnBeginExtensionInstall( |
| if (!params.is_app) |
| return; |
| - DVLOG(2) << service_ << ": OnBeginExtensionInstall: " |
| + DVLOG(2) << service() << ": OnBeginExtensionInstall: " |
| << params.extension_id.substr(0, 8); |
| ExtensionAppItem* existing_item = GetExtensionAppItem(params.extension_id); |
| if (existing_item) { |
| @@ -164,22 +131,22 @@ void ExtensionAppModelBuilder::OnDownloadProgress( |
| void ExtensionAppModelBuilder::OnInstallFailure( |
| const std::string& extension_id) { |
| - model_->DeleteItem(extension_id); |
| + model()->DeleteItem(extension_id); |
| } |
| void ExtensionAppModelBuilder::OnExtensionLoaded( |
| content::BrowserContext* browser_context, |
| const extensions::Extension* extension) { |
| - if (!extensions::ui_util::ShouldDisplayInAppLauncher(extension, profile_)) |
| + if (!extensions::ui_util::ShouldDisplayInAppLauncher(extension, profile())) |
| return; |
| - DVLOG(2) << service_ << ": OnExtensionLoaded: " |
| + DVLOG(2) << service() << ": OnExtensionLoaded: " |
| << extension->id().substr(0, 8); |
| ExtensionAppItem* existing_item = GetExtensionAppItem(extension->id()); |
| if (existing_item) { |
| existing_item->Reload(); |
| - if (service_) |
| - service_->UpdateItem(existing_item); |
| + if (service()) |
| + service()->UpdateItem(existing_item); |
| return; |
| } |
| @@ -203,18 +170,18 @@ void ExtensionAppModelBuilder::OnExtensionUninstalled( |
| content::BrowserContext* browser_context, |
| const extensions::Extension* extension, |
| extensions::UninstallReason reason) { |
| - if (service_) { |
| - DVLOG(2) << service_ << ": OnExtensionUninstalled: " |
| + if (service()) { |
| + DVLOG(2) << service() << ": OnExtensionUninstalled: " |
| << extension->id().substr(0, 8); |
| - service_->RemoveUninstalledItem(extension->id()); |
| + service()->RemoveUninstalledItem(extension->id()); |
| return; |
| } |
| - model_->DeleteUninstalledItem(extension->id()); |
| + model()->DeleteUninstalledItem(extension->id()); |
| } |
| void ExtensionAppModelBuilder::OnDisabledExtensionUpdated( |
| const Extension* extension) { |
| - if (!extensions::ui_util::ShouldDisplayInAppLauncher(extension, profile_)) |
| + if (!extensions::ui_util::ShouldDisplayInAppLauncher(extension, profile())) |
| return; |
| ExtensionAppItem* existing_item = GetExtensionAppItem(extension->id()); |
| @@ -225,7 +192,7 @@ void ExtensionAppModelBuilder::OnDisabledExtensionUpdated( |
| void ExtensionAppModelBuilder::OnShutdown() { |
| if (tracker_) { |
| tracker_->RemoveObserver(this); |
| - tracker_ = NULL; |
| + tracker_ = nullptr; |
| } |
| } |
| @@ -236,7 +203,7 @@ void ExtensionAppModelBuilder::OnShutdown( |
| DCHECK_EQ(extension_registry_, registry); |
| extension_registry_->RemoveObserver(this); |
| - extension_registry_ = NULL; |
| + extension_registry_ = nullptr; |
| } |
| scoped_ptr<ExtensionAppItem> ExtensionAppModelBuilder::CreateAppItem( |
| @@ -244,10 +211,8 @@ scoped_ptr<ExtensionAppItem> ExtensionAppModelBuilder::CreateAppItem( |
| const std::string& extension_name, |
| const gfx::ImageSkia& installing_icon, |
| bool is_platform_app) { |
| - const app_list::AppListSyncableService::SyncItem* sync_item = |
| - service_ ? service_->GetSyncItem(extension_id) : NULL; |
| - return make_scoped_ptr(new ExtensionAppItem(profile_, |
| - sync_item, |
| + return make_scoped_ptr(new ExtensionAppItem(profile(), |
| + GetSyncItem(extension_id), |
| extension_id, |
| extension_name, |
| installing_icon, |
| @@ -256,8 +221,11 @@ scoped_ptr<ExtensionAppItem> ExtensionAppModelBuilder::CreateAppItem( |
| void ExtensionAppModelBuilder::BuildModel() { |
| DCHECK(!tracker_); |
| - tracker_ = controller_->GetInstallTrackerFor(profile_); |
| - extension_registry_ = extensions::ExtensionRegistry::Get(profile_); |
| + |
| + InitializePrefChangeRegistrars(); |
| + |
| + tracker_ = controller()->GetInstallTrackerFor(profile()); |
| + extension_registry_ = extensions::ExtensionRegistry::Get(profile()); |
| PopulateApps(); |
| @@ -271,11 +239,11 @@ void ExtensionAppModelBuilder::BuildModel() { |
| void ExtensionAppModelBuilder::PopulateApps() { |
| extensions::ExtensionSet extensions; |
| - controller_->GetApps(profile_, &extensions); |
| + controller()->GetApps(profile(), &extensions); |
| for (extensions::ExtensionSet::const_iterator app = extensions.begin(); |
| app != extensions.end(); ++app) { |
| - if (!extensions::ui_util::ShouldDisplayInAppLauncher(app->get(), profile_)) |
| + if (!extensions::ui_util::ShouldDisplayInAppLauncher(app->get(), profile())) |
| continue; |
| InsertApp(CreateAppItem((*app)->id(), |
| "", |
| @@ -284,36 +252,23 @@ void ExtensionAppModelBuilder::PopulateApps() { |
| } |
| } |
| -void ExtensionAppModelBuilder::InsertApp(scoped_ptr<ExtensionAppItem> app) { |
| - if (service_) { |
| - service_->AddItem(app.Pass()); |
| - return; |
| - } |
| - model_->AddItem(app.Pass()); |
| -} |
| - |
| ExtensionAppItem* ExtensionAppModelBuilder::GetExtensionAppItem( |
| const std::string& extension_id) { |
| - app_list::AppListItem* item = model_->FindItem(extension_id); |
| - LOG_IF(ERROR, item && |
| - item->GetItemType() != ExtensionAppItem::kItemType) |
| - << "App Item matching id: " << extension_id |
| - << " has incorrect type: '" << item->GetItemType() << "'"; |
| - return static_cast<ExtensionAppItem*>(item); |
| + return static_cast<ExtensionAppItem*>(GetAppItem(extension_id)); |
| } |
| void ExtensionAppModelBuilder::OnListItemMoved(size_t from_index, |
| size_t to_index, |
| app_list::AppListItem* item) { |
| - DCHECK(!service_); |
| + DCHECK(!service()); |
| // This will get called from AppListItemList::ListItemMoved after |
| // set_position is called for the item. |
| if (item->GetItemType() != ExtensionAppItem::kItemType) |
| return; |
| - app_list::AppListItemList* item_list = model_->top_level_item_list(); |
| - ExtensionAppItem* prev = NULL; |
| + app_list::AppListItemList* item_list = model()->top_level_item_list(); |
| + ExtensionAppItem* prev = nullptr; |
| for (size_t idx = to_index; idx > 0; --idx) { |
| app_list::AppListItem* item = item_list->item_at(idx - 1); |
| if (item->GetItemType() == ExtensionAppItem::kItemType) { |
| @@ -321,7 +276,7 @@ void ExtensionAppModelBuilder::OnListItemMoved(size_t from_index, |
| break; |
| } |
| } |
| - ExtensionAppItem* next = NULL; |
| + ExtensionAppItem* next = nullptr; |
| for (size_t idx = to_index; idx < item_list->item_count() - 1; ++idx) { |
| app_list::AppListItem* item = item_list->item_at(idx + 1); |
| if (item->GetItemType() == ExtensionAppItem::kItemType) { |