diff options
author | koz@chromium.org <koz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-01 13:34:21 +0000 |
---|---|---|
committer | koz@chromium.org <koz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-01 13:34:21 +0000 |
commit | 38415b5077bb1b3f39b7dc541b670b30a82f5361 (patch) | |
tree | 16d4b09d72bf1d79d3ef5eff28b66ff65bd8ea17 | |
parent | 8cdd051baae7853aa48e0426b0302cbc5ff6a77f (diff) | |
download | chromium_src-38415b5077bb1b3f39b7dc541b670b30a82f5361.zip chromium_src-38415b5077bb1b3f39b7dc541b670b30a82f5361.tar.gz chromium_src-38415b5077bb1b3f39b7dc541b670b30a82f5361.tar.bz2 |
Move ExtensionSystem references out of ExtensionAppModelBuilder.
BUG=310376
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=232056
Review URL: https://codereview.chromium.org/52143002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232353 0039d316-1c4b-4281-b951-d872f2087c98
3 files changed, 32 insertions, 15 deletions
diff --git a/chrome/browser/ui/app_list/app_list_controller_delegate.cc b/chrome/browser/ui/app_list/app_list_controller_delegate.cc index ffba607..0fbf29a 100644 --- a/chrome/browser/ui/app_list/app_list_controller_delegate.cc +++ b/chrome/browser/ui/app_list/app_list_controller_delegate.cc @@ -6,11 +6,13 @@ #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_system.h" +#include "chrome/browser/extensions/install_tracker_factory.h" #include "chrome/browser/extensions/management_policy.h" #include "chrome/browser/ui/app_list/extension_uninstaller.h" #include "chrome/browser/ui/browser_navigator.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_constants.h" +#include "chrome/common/extensions/extension_set.h" #include "chrome/common/extensions/manifest_url_handler.h" #include "net/base/url_util.h" @@ -143,3 +145,21 @@ bool AppListControllerDelegate::IsExtensionInstalled( Profile* profile, const std::string& app_id) { return !!GetExtension(profile, app_id); } + +extensions::InstallTracker* AppListControllerDelegate::GetInstallTrackerFor( + Profile* profile) { + if (extensions::ExtensionSystem::Get(profile)->extension_service()) + return extensions::InstallTrackerFactory::GetForProfile(profile); + return NULL; +} + +void AppListControllerDelegate::GetApps(Profile* profile, + ExtensionSet* out_apps) { + ExtensionService* service = + extensions::ExtensionSystem::Get(profile)->extension_service(); + if (!service) + return; + out_apps->InsertAll(*service->extensions()); + out_apps->InsertAll(*service->disabled_extensions()); + out_apps->InsertAll(*service->terminated_extensions()); +} diff --git a/chrome/browser/ui/app_list/app_list_controller_delegate.h b/chrome/browser/ui/app_list/app_list_controller_delegate.h index ade1589..07329fa 100644 --- a/chrome/browser/ui/app_list/app_list_controller_delegate.h +++ b/chrome/browser/ui/app_list/app_list_controller_delegate.h @@ -10,6 +10,7 @@ #include "chrome/browser/extensions/extension_prefs.h" #include "ui/gfx/native_widget_types.h" +class ExtensionSet; class Profile; namespace base { @@ -18,6 +19,7 @@ class FilePath; namespace extensions { class Extension; +class InstallTracker; } namespace gfx { @@ -134,6 +136,10 @@ class AppListControllerDelegate { // Returns true if the given extension is installed. bool IsExtensionInstalled(Profile* profile, const std::string& app_id); + extensions::InstallTracker* GetInstallTrackerFor(Profile* profile); + + // Get the list of installed apps for the given profile. + void GetApps(Profile* profile, ExtensionSet* out_apps); }; #endif // CHROME_BROWSER_UI_APP_LIST_APP_LIST_CONTROLLER_DELEGATE_H_ 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 63e29a8..61742c5 100644 --- a/chrome/browser/ui/app_list/extension_app_model_builder.cc +++ b/chrome/browser/ui/app_list/extension_app_model_builder.cc @@ -10,15 +10,14 @@ #include "base/prefs/pref_service.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/extensions/extension_prefs.h" -#include "chrome/browser/extensions/extension_service.h" -#include "chrome/browser/extensions/extension_sorting.h" -#include "chrome/browser/extensions/extension_system.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/extension_app_item.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_constants.h" +#include "chrome/common/extensions/extension_set.h" #include "chrome/common/pref_names.h" #include "content/public/browser/notification_service.h" #include "ui/gfx/image/image_skia.h" @@ -167,10 +166,7 @@ void ExtensionAppModelBuilder::SwitchProfile(Profile* profile) { if (tracker_) tracker_->RemoveObserver(this); - if (extensions::ExtensionSystem::Get(profile_)->extension_service()) - tracker_ = extensions::InstallTrackerFactory::GetForProfile(profile_); - else - tracker_ = NULL; + tracker_ = controller_->GetInstallTrackerFor(profile_); PopulateApps(); UpdateHighlight(); @@ -181,15 +177,10 @@ void ExtensionAppModelBuilder::SwitchProfile(Profile* profile) { } void ExtensionAppModelBuilder::PopulateApps() { - ExtensionService* service = - extensions::ExtensionSystem::Get(profile_)->extension_service(); - if (!service) - return; - + ExtensionSet extensions; + controller_->GetApps(profile_, &extensions); ExtensionAppList apps; - AddApps(service->extensions(), &apps); - AddApps(service->disabled_extensions(), &apps); - AddApps(service->terminated_extensions(), &apps); + AddApps(&extensions, &apps); if (apps.empty()) return; |