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

Unified Diff: chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc

Issue 1973603002: arc: Make Play Store item persistance in shelf. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments Created 4 years, 7 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/ash/launcher/chrome_launcher_controller.cc
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
index 8067e6ca3481a9932b9f428008d7c1d0f25d1a20..61f9175c173d80c988ae8d49a034c7c92fc96abf 100644
--- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
+++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
@@ -27,6 +27,7 @@
#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chrome_notification_types.h"
+#include "chrome/browser/chromeos/arc/arc_support_host.h"
#include "chrome/browser/defaults.h"
#include "chrome/browser/extensions/extension_app_icon_loader.h"
#include "chrome/browser/extensions/extension_util.h"
@@ -37,6 +38,7 @@
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/app_list/arc/arc_app_icon_loader.h"
#include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
+#include "chrome/browser/ui/app_list/arc/arc_app_utils.h"
#include "chrome/browser/ui/ash/app_sync_ui_state.h"
#include "chrome/browser/ui/ash/chrome_launcher_prefs.h"
#include "chrome/browser/ui/ash/chrome_shell_delegate.h"
@@ -181,7 +183,7 @@ bool IsAppForUserPinned(const std::string& app_id,
}
const char* const kPinProhibitedExtensionIds[] = {
- "cnbgggchhmkkdmeppjobngjoejnihlei", // Arc Support
+ ArcSupportHost::kHostAppId, arc::kPlayStoreAppId,
};
const size_t kPinProhibitedExtensionIdsLength =
@@ -445,7 +447,7 @@ void ChromeLauncherController::CloseLauncherItem(ash::ShelfID id) {
CHECK(iter != id_to_item_controller_map_.end());
SetItemStatus(id, ash::STATUS_CLOSED);
std::string app_id = iter->second->app_id();
- iter->second = new AppShortcutLauncherItemController(app_id, this);
+ iter->second = AppShortcutLauncherItemController::Create(app_id, this);
iter->second->set_shelf_id(id);
// Existing controller is destroyed and replaced by registering again.
SetShelfItemDelegate(id, iter->second);
@@ -633,7 +635,7 @@ void ChromeLauncherController::ActivateApp(const std::string& app_id,
// Create a temporary application launcher item and use it to see if there are
// running instances.
std::unique_ptr<AppShortcutLauncherItemController> app_controller(
- new AppShortcutLauncherItemController(app_id, this));
+ AppShortcutLauncherItemController::Create(app_id, this));
if (!app_controller->GetRunningApplications().empty())
app_controller->Activate(source);
else
@@ -803,7 +805,11 @@ void ChromeLauncherController::PersistPinnedState() {
if (model_->items()[i].type == ash::TYPE_APP_SHORTCUT) {
ash::ShelfID id = model_->items()[i].id;
LauncherItemController* controller = GetLauncherItemController(id);
- if (controller && IsPinned(id)) {
+ // Don't persist pinning state for apps that are handled internally and
+ // have pinnable state AppListControllerDelegate::NO_PIN.
+ if (controller && IsPinned(id) &&
+ GetPinnable(controller->app_id()) !=
+ AppListControllerDelegate::NO_PIN) {
base::DictionaryValue* app_value = ash::CreateAppDict(
controller->app_id());
if (app_value) {
@@ -1298,7 +1304,7 @@ ash::ShelfID ChromeLauncherController::CreateAppShortcutLauncherItemWithType(
int index,
ash::ShelfItemType shelf_item_type) {
AppShortcutLauncherItemController* controller =
- new AppShortcutLauncherItemController(app_id, this);
+ AppShortcutLauncherItemController::Create(app_id, this);
ash::ShelfID shelf_id = InsertAppLauncherItem(
controller, app_id, ash::STATUS_CLOSED, index, shelf_item_type);
return shelf_id;

Powered by Google App Engine
This is Rietveld 408576698