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 4bacc0a56eb637382f3489a835243896899052a5..904787a7fab414bd0882bcc36fdbe03000a058a6 100644 |
--- a/chrome/browser/ui/app_list/apps_model_builder.cc |
+++ b/chrome/browser/ui/app_list/apps_model_builder.cc |
@@ -11,6 +11,8 @@ |
#include "chrome/browser/extensions/extension_prefs.h" |
#include "chrome/browser/extensions/extension_service.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/extension_app_item.h" |
#include "chrome/common/chrome_notification_types.h" |
@@ -43,6 +45,9 @@ AppsModelBuilder::AppsModelBuilder(Profile* profile, |
controller_(controller), |
model_(model), |
ignore_changes_(false) { |
+ extensions::InstallTracker* tracker = |
+ extensions::InstallTrackerFactory::GetForProfile(profile_); |
+ tracker->AddObserver(this); |
extensions::ExtensionPrefs* extension_prefs = |
extensions::ExtensionSystem::Get(profile_)->extension_service()-> |
extension_prefs(); |
@@ -65,6 +70,9 @@ AppsModelBuilder::AppsModelBuilder(Profile* profile, |
} |
AppsModelBuilder::~AppsModelBuilder() { |
+ extensions::InstallTracker* tracker = |
+ extensions::InstallTrackerFactory::GetForProfile(profile_); |
+ tracker->RemoveObserver(this); |
model_->RemoveObserver(this); |
} |
@@ -78,7 +86,10 @@ void AppsModelBuilder::Build() { |
void AppsModelBuilder::OnBeginExtensionInstall( |
const std::string& extension_id, |
const std::string& extension_name, |
- const gfx::ImageSkia& installing_icon) { |
+ const gfx::ImageSkia& installing_icon, |
+ bool is_app) { |
+ if (!is_app) |
+ return; |
InsertApp(new ExtensionAppItem(profile_, |
extension_id, |
controller_, |