Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9465)

Unified Diff: chrome/browser/ui/views/ash/app_list/extension_app_item.cc

Issue 10831173: views: Now remove the old files from ash/app_list. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/ash/app_list/extension_app_item.cc
diff --git a/chrome/browser/ui/views/ash/app_list/extension_app_item.cc b/chrome/browser/ui/views/ash/app_list/extension_app_item.cc
deleted file mode 100644
index 12f2ab08f94ebd74dfa7033ce019a2529a4aeb16..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/views/ash/app_list/extension_app_item.cc
+++ /dev/null
@@ -1,308 +0,0 @@
-// Copyright (c) 2012 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 "chrome/browser/ui/views/ash/app_list/extension_app_item.h"
-
-#include "base/utf_string_conversions.h"
-#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/extension_uninstall_dialog.h"
-#include "chrome/browser/extensions/management_policy.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_finder.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
-#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/views/ash/extension_utils.h"
-#include "chrome/browser/ui/views/ash/launcher/chrome_launcher_controller.h"
-#include "chrome/common/extensions/extension.h"
-#include "chrome/common/extensions/extension_icon_set.h"
-#include "grit/chromium_strings.h"
-#include "grit/generated_resources.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/gfx/image/image.h"
-
-using extensions::Extension;
-
-namespace {
-
-enum CommandId {
- LAUNCH = 100,
- TOGGLE_PIN,
- OPTIONS,
- UNINSTALL,
- // Order matters in LAUNCHER_TYPE_xxxx and must match LaunchType.
- LAUNCH_TYPE_START = 200,
- LAUNCH_TYPE_PINNED_TAB = LAUNCH_TYPE_START,
- LAUNCH_TYPE_REGULAR_TAB,
- LAUNCH_TYPE_FULLSCREEN,
- LAUNCH_TYPE_WINDOW,
- LAUNCH_TYPE_LAST,
-};
-
-// ExtensionUninstaller decouples ExtensionAppItem from the extension uninstall
-// flow. It shows extension uninstall dialog and wait for user to confirm or
-// cancel the uninstall.
-class ExtensionUninstaller : public ExtensionUninstallDialog::Delegate {
- public:
- ExtensionUninstaller(Profile* profile,
- const std::string& extension_id)
- : profile_(profile),
- extension_id_(extension_id) {
- }
-
- void Run() {
- const Extension* extension =
- profile_->GetExtensionService()->GetExtensionById(extension_id_, true);
- if (!extension) {
- CleanUp();
- return;
- }
-
- ExtensionUninstallDialog* dialog =
- ExtensionUninstallDialog::Create(NULL, this);
- dialog->ConfirmUninstall(extension);
- }
-
- private:
- // Overridden from ExtensionUninstallDialog::Delegate:
- virtual void ExtensionUninstallAccepted() OVERRIDE {
- ExtensionService* service = profile_->GetExtensionService();
- const Extension* extension = service->GetExtensionById(extension_id_, true);
- if (extension) {
- service->UninstallExtension(extension_id_,
- false, /* external_uninstall*/
- NULL);
- }
-
- CleanUp();
- }
-
- virtual void ExtensionUninstallCanceled() OVERRIDE {
- CleanUp();
- }
-
- void CleanUp() {
- delete this;
- }
-
- Profile* profile_;
- std::string extension_id_;
-
- DISALLOW_COPY_AND_ASSIGN(ExtensionUninstaller);
-};
-
-extensions::ExtensionPrefs::LaunchType GetExtensionLaunchType(
- Profile* profile,
- const std::string& extension_id) {
- return profile->GetExtensionService()->extension_prefs()->GetLaunchType(
- extension_id, extensions::ExtensionPrefs::LAUNCH_DEFAULT);
-}
-
-void SetExtensionLaunchType(
- Profile* profile,
- const std::string& extension_id,
- extensions::ExtensionPrefs::LaunchType launch_type) {
- profile->GetExtensionService()->extension_prefs()->SetLaunchType(
- extension_id, launch_type);
-}
-
-bool IsExtensionEnabled(Profile* profile, const std::string& extension_id) {
- ExtensionService* service = profile->GetExtensionService();
- return service->IsExtensionEnabled(extension_id) &&
- !service->GetTerminatedExtension(extension_id);
-}
-
-bool IsAppPinned(const std::string& extension_id) {
- return ChromeLauncherController::instance()->IsAppPinned(extension_id);
-}
-
-void PinApp(const std::string& extension_id) {
- ChromeLauncherController::instance()->PinAppWithID(extension_id);
-}
-
-void UnpinApp(const std::string& extension_id) {
- return ChromeLauncherController::instance()->UnpinAppsWithID(extension_id);
-}
-
-bool CanPin() {
- return ChromeLauncherController::instance()->CanPin();
-}
-
-} // namespace
-
-ExtensionAppItem::ExtensionAppItem(Profile* profile,
- const Extension* extension)
- : ChromeAppListItem(TYPE_APP),
- profile_(profile),
- extension_id_(extension->id()) {
- SetTitle(extension->name());
- LoadImage(extension);
-}
-
-ExtensionAppItem::~ExtensionAppItem() {
-}
-
-const Extension* ExtensionAppItem::GetExtension() const {
- const Extension* extension =
- profile_->GetExtensionService()->GetInstalledExtension(extension_id_);
- return extension;
-}
-
-void ExtensionAppItem::LoadImage(const Extension* extension) {
- tracker_.reset(new ImageLoadingTracker(this));
- tracker_->LoadImage(extension,
- extension->GetIconResource(
- ExtensionIconSet::EXTENSION_ICON_LARGE,
- ExtensionIconSet::MATCH_BIGGER),
- gfx::Size(ExtensionIconSet::EXTENSION_ICON_LARGE,
- ExtensionIconSet::EXTENSION_ICON_LARGE),
- ImageLoadingTracker::DONT_CACHE);
-}
-
-void ExtensionAppItem::ShowExtensionOptions() {
- const Extension* extension = GetExtension();
- if (!extension)
- return;
-
- // TODO(beng): use Navigate()!
- Browser* browser = browser::FindLastActiveWithProfile(profile_);
- if (!browser) {
- browser = new Browser(Browser::CreateParams(profile_));
- browser->window()->Show();
- }
-
- chrome::AddSelectedTabWithURL(browser, extension->options_url(),
- content::PAGE_TRANSITION_LINK);
- browser->window()->Activate();
-}
-
-void ExtensionAppItem::StartExtensionUninstall() {
- // ExtensionUninstall deletes itself when done or aborted.
- ExtensionUninstaller* uninstaller = new ExtensionUninstaller(profile_,
- extension_id_);
- uninstaller->Run();
-}
-
-void ExtensionAppItem::OnImageLoaded(const gfx::Image& image,
- const std::string& extension_id,
- int tracker_index) {
- if (!image.IsEmpty())
- SetIcon(*image.ToImageSkia());
- else
- SetIcon(Extension::GetDefaultIcon(true /* is_app */));
-}
-
-bool ExtensionAppItem::IsItemForCommandIdDynamic(int command_id) const {
- return command_id == TOGGLE_PIN;
-}
-
-string16 ExtensionAppItem::GetLabelForCommandId(int command_id) const {
- if (command_id == TOGGLE_PIN) {
- return IsAppPinned(extension_id_) ?
- l10n_util::GetStringUTF16(IDS_APP_LIST_CONTEXT_MENU_UNPIN) :
- l10n_util::GetStringUTF16(IDS_APP_LIST_CONTEXT_MENU_PIN);
- } else {
- NOTREACHED();
- return string16();
- }
-}
-
-bool ExtensionAppItem::IsCommandIdChecked(int command_id) const {
- if (command_id >= LAUNCH_TYPE_START && command_id < LAUNCH_TYPE_LAST) {
- return static_cast<int>(GetExtensionLaunchType(profile_, extension_id_)) +
- LAUNCH_TYPE_START == command_id;
- }
- return false;
-}
-
-bool ExtensionAppItem::IsCommandIdEnabled(int command_id) const {
- if (command_id == TOGGLE_PIN) {
- return CanPin();
- } else if (command_id == OPTIONS) {
- const Extension* extension = GetExtension();
- return IsExtensionEnabled(profile_, extension_id_) && extension &&
- !extension->options_url().is_empty();
- } else if (command_id == UNINSTALL) {
- const Extension* extension = GetExtension();
- const extensions::ManagementPolicy* policy =
- extensions::ExtensionSystem::Get(profile_)->management_policy();
- return extension &&
- policy->UserMayModifySettings(extension, NULL);
- }
- return true;
-}
-
-bool ExtensionAppItem::GetAcceleratorForCommandId(
- int command_id,
- ui::Accelerator* acclelrator) {
- return false;
-}
-
-void ExtensionAppItem::ExecuteCommand(int command_id) {
- if (command_id == LAUNCH) {
- Activate(0);
- } else if (command_id == TOGGLE_PIN && CanPin()) {
- if (IsAppPinned(extension_id_))
- UnpinApp(extension_id_);
- else
- PinApp(extension_id_);
- } else if (command_id >= LAUNCH_TYPE_START &&
- command_id < LAUNCH_TYPE_LAST) {
- SetExtensionLaunchType(profile_,
- extension_id_,
- static_cast<extensions::ExtensionPrefs::LaunchType>(
- command_id - LAUNCH_TYPE_START));
- } else if (command_id == OPTIONS) {
- ShowExtensionOptions();
- } else if (command_id == UNINSTALL) {
- StartExtensionUninstall();
- }
-}
-
-void ExtensionAppItem::Activate(int event_flags) {
- const Extension* extension = GetExtension();
- if (!extension)
- return;
-
- ChromeLauncherController::instance()->OpenAppID(extension->id(), event_flags);
-}
-
-ui::MenuModel* ExtensionAppItem::GetContextMenuModel() {
- // No context menu for Chrome app.
- if (extension_id_ == extension_misc::kChromeAppId)
- return NULL;
-
- if (!context_menu_model_.get()) {
- context_menu_model_.reset(new ui::SimpleMenuModel(this));
- context_menu_model_->AddItem(LAUNCH, UTF8ToUTF16(title()));
- context_menu_model_->AddSeparator();
- context_menu_model_->AddItemWithStringId(
- TOGGLE_PIN,
- IsAppPinned(extension_id_) ? IDS_APP_LIST_CONTEXT_MENU_UNPIN :
- IDS_APP_LIST_CONTEXT_MENU_PIN);
- context_menu_model_->AddSeparator();
- context_menu_model_->AddCheckItemWithStringId(
- LAUNCH_TYPE_REGULAR_TAB,
- IDS_APP_CONTEXT_MENU_OPEN_REGULAR);
- context_menu_model_->AddCheckItemWithStringId(
- LAUNCH_TYPE_PINNED_TAB,
- IDS_APP_CONTEXT_MENU_OPEN_PINNED);
- context_menu_model_->AddCheckItemWithStringId(
- LAUNCH_TYPE_WINDOW,
- IDS_APP_CONTEXT_MENU_OPEN_WINDOW);
- // Even though the launch type is Full Screen it is more accurately
- // described as Maximized in Ash.
- context_menu_model_->AddCheckItemWithStringId(
- LAUNCH_TYPE_FULLSCREEN,
- IDS_APP_CONTEXT_MENU_OPEN_MAXIMIZED);
- context_menu_model_->AddSeparator();
- context_menu_model_->AddItemWithStringId(OPTIONS, IDS_NEW_TAB_APP_OPTIONS);
- context_menu_model_->AddItemWithStringId(UNINSTALL,
- IDS_EXTENSIONS_UNINSTALL);
- }
-
- return context_menu_model_.get();
-}
« no previous file with comments | « chrome/browser/ui/views/ash/app_list/extension_app_item.h ('k') | chrome/browser/ui/views/ash/app_list/search_builder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698