summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkoz@chromium.org <koz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-01 13:34:21 +0000
committerkoz@chromium.org <koz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-01 13:34:21 +0000
commit38415b5077bb1b3f39b7dc541b670b30a82f5361 (patch)
tree16d4b09d72bf1d79d3ef5eff28b66ff65bd8ea17
parent8cdd051baae7853aa48e0426b0302cbc5ff6a77f (diff)
downloadchromium_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
-rw-r--r--chrome/browser/ui/app_list/app_list_controller_delegate.cc20
-rw-r--r--chrome/browser/ui/app_list/app_list_controller_delegate.h6
-rw-r--r--chrome/browser/ui/app_list/extension_app_model_builder.cc21
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;