Index: athena/extensions/extension_app_model_builder.cc |
diff --git a/athena/extensions/extension_app_model_builder.cc b/athena/extensions/extension_app_model_builder.cc |
deleted file mode 100644 |
index e043ef25e07b3add1b3e910442ead7579d3af13c..0000000000000000000000000000000000000000 |
--- a/athena/extensions/extension_app_model_builder.cc |
+++ /dev/null |
@@ -1,123 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "athena/extensions/public/extension_app_model_builder.h" |
- |
-#include "athena/activity/public/activity_factory.h" |
-#include "athena/activity/public/activity_manager.h" |
-#include "athena/extensions/public/extensions_delegate.h" |
-#include "extensions/browser/extension_icon_image.h" |
-#include "extensions/browser/extension_registry.h" |
-#include "extensions/browser/extension_registry_factory.h" |
-#include "extensions/common/constants.h" |
-#include "extensions/common/extension_set.h" |
-#include "extensions/common/manifest_handlers/icons_handler.h" |
-#include "extensions/grit/extensions_browser_resources.h" |
-#include "ui/app_list/app_list_item.h" |
-#include "ui/app_list/app_list_model.h" |
-#include "ui/base/resource/resource_bundle.h" |
- |
-namespace athena { |
- |
-namespace { |
- |
-// Copied from chrome/common/extensions/extension_constants.h |
-// TODO(mukai): move constants to src/extensions |
-const char kChromeAppId[] = "mgndgikekgjfcpckkfioiadnlibdjbkf"; |
- |
-class AppItem : public app_list::AppListItem { |
- public: |
- AppItem(scoped_refptr<const extensions::Extension> extension, |
- content::BrowserContext* browser_context) |
- : app_list::AppListItem(extension->id()), |
- browser_context_(browser_context) { |
- Reload(extension); |
- } |
- |
- void Reload(scoped_refptr<const extensions::Extension> extension) { |
- extension_ = extension; |
- icon_image_.reset(new extensions::IconImage( |
- browser_context_, |
- extension.get(), |
- extensions::IconsInfo::GetIcons(extension.get()), |
- extension_misc::EXTENSION_ICON_MEDIUM, |
- *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
- IDR_APP_DEFAULT_ICON), |
- nullptr)); |
- icon_image_->image_skia().EnsureRepsForSupportedScales(); |
- SetIcon(icon_image_->image_skia(), false); |
- SetName(extension->name()); |
- } |
- |
- private: |
- // Overridden from app_list::AppListItem: |
- void Activate(int event_flags) override { |
- ExtensionsDelegate::Get(browser_context_)->LaunchApp(extension_->id()); |
- } |
- |
- scoped_refptr<const extensions::Extension> extension_; |
- content::BrowserContext* browser_context_; |
- scoped_ptr<extensions::IconImage> icon_image_; |
- |
- DISALLOW_COPY_AND_ASSIGN(AppItem); |
-}; |
- |
-} // namespace |
- |
-ExtensionAppModelBuilder::ExtensionAppModelBuilder( |
- content::BrowserContext* browser_context) |
- : browser_context_(browser_context), model_(nullptr) { |
- extensions::ExtensionRegistryFactory::GetForBrowserContext(browser_context_) |
- ->AddObserver(this); |
-} |
- |
-ExtensionAppModelBuilder::~ExtensionAppModelBuilder() { |
- extensions::ExtensionRegistryFactory::GetForBrowserContext(browser_context_) |
- ->RemoveObserver(this); |
-} |
- |
-void ExtensionAppModelBuilder::RegisterAppListModel( |
- app_list::AppListModel* model) { |
- DCHECK(!model_); |
- model_ = model; |
- |
- ExtensionsDelegate* bridge = ExtensionsDelegate::Get(browser_context_); |
- const extensions::ExtensionSet& extensions = bridge->GetInstalledExtensions(); |
- for (extensions::ExtensionSet::const_iterator iter = extensions.begin(); |
- iter != extensions.end(); |
- ++iter) { |
- AddItem(*iter); |
- } |
-} |
- |
-void ExtensionAppModelBuilder::AddItem( |
- scoped_refptr<const extensions::Extension> extension) { |
- // Chrome icon is currently disabled for homecard since it's not meaningful. |
- // http://crbug.com/421677 |
- // TODO(mukai): use chrome/browser/extension_ui_util. |
- if (extension->ShouldDisplayInAppLauncher() && |
- extension->id() != kChromeAppId) { |
- model_->AddItem(make_scoped_ptr(new AppItem(extension, browser_context_))); |
- } |
-} |
- |
-void ExtensionAppModelBuilder::OnExtensionInstalled( |
- content::BrowserContext* browser_context, |
- const extensions::Extension* extension, |
- bool is_update) { |
- app_list::AppListItem* item = model_->FindItem(extension->id()); |
- if (item) |
- static_cast<AppItem*>(item)->Reload(make_scoped_refptr(extension)); |
- else |
- AddItem(make_scoped_refptr(extension)); |
-} |
- |
-void ExtensionAppModelBuilder::OnExtensionUninstalled( |
- content::BrowserContext* browser_context, |
- const extensions::Extension* extension, |
- extensions::UninstallReason reason) { |
- model_->DeleteItem(extension->id()); |
-} |
- |
-} // namespace athena |