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

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

Issue 2684853002: Discard pinning an app with non-empty launcher id. (Closed)
Patch Set: Created 3 years, 10 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_impl.cc
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc
index 6d6f16d690c98eaa9a4fea47d0744fd589e6c052..2687c5b19afe3a58198069207b108d970517ae87 100644
--- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc
+++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc
@@ -38,6 +38,7 @@
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h"
#include "chrome/browser/ui/app_list/arc/arc_app_utils.h"
+#include "chrome/browser/ui/ash/app_launcher_id.h"
#include "chrome/browser/ui/ash/app_sync_ui_state.h"
#include "chrome/browser/ui/ash/chrome_shell_delegate.h"
#include "chrome/browser/ui/ash/launcher/app_shortcut_launcher_item_controller.h"
@@ -360,11 +361,8 @@ void ChromeLauncherControllerImpl::UnpinAndUpdatePrefs(ash::ShelfID id,
LauncherItemController* controller = GetLauncherItemController(id);
CHECK(controller);
- if (update_prefs) {
- ash::launcher::RemovePinPosition(
- profile(), ash::launcher::AppLauncherId(GetAppIDForShelfID(id),
- GetLaunchIDForShelfID(id)));
- }
+ if (update_prefs)
+ ash::launcher::RemovePinPosition(profile(), GetAppIDForShelfID(id));
const ash::ShelfItem* item = GetItem(id);
if (item && (item->status != ash::STATUS_CLOSED || controller->locked()))
@@ -1078,17 +1076,20 @@ void ChromeLauncherControllerImpl::SyncPinPosition(ash::ShelfID shelf_id) {
const std::string& app_id = GetAppIDForShelfID(shelf_id);
DCHECK(!app_id.empty());
const std::string& launch_id = GetLaunchIDForShelfID(shelf_id);
+ if (!launch_id.empty()) {
+ VLOG(2) << "Pinning app '" << app_id << "' with non-empty launch id '"
+ << launch_id << "' is not supported.";
+ return;
+ }
std::string app_id_before;
- std::string launch_id_before;
- std::vector<ash::launcher::AppLauncherId> app_launcher_ids_after;
+ std::vector<std::string> app_ids_after;
for (int i = index - 1; i > 0; --i) {
const ash::ShelfID shelf_id_before = model_->items()[i].id;
if (IsPinned(shelf_id_before)) {
app_id_before = GetAppIDForShelfID(shelf_id_before);
DCHECK(!app_id_before.empty());
- launch_id_before = GetLaunchIDForShelfID(shelf_id_before);
break;
}
}
@@ -1098,20 +1099,12 @@ void ChromeLauncherControllerImpl::SyncPinPosition(ash::ShelfID shelf_id) {
if (IsPinned(shelf_id_after)) {
const std::string app_id_after = GetAppIDForShelfID(shelf_id_after);
DCHECK(!app_id_after.empty());
- const std::string launch_id_after = GetLaunchIDForShelfID(shelf_id_after);
- app_launcher_ids_after.push_back(
- ash::launcher::AppLauncherId(app_id_after, launch_id_after));
+ app_ids_after.push_back(app_id_after);
}
}
- ash::launcher::AppLauncherId app_launcher_id_before =
- app_id_before.empty()
- ? ash::launcher::AppLauncherId()
- : ash::launcher::AppLauncherId(app_id_before, launch_id_before);
-
- ash::launcher::SetPinPosition(profile(),
- ash::launcher::AppLauncherId(app_id, launch_id),
- app_launcher_id_before, app_launcher_ids_after);
+ ash::launcher::SetPinPosition(profile(), app_id, app_id_before,
+ app_ids_after);
}
void ChromeLauncherControllerImpl::OnSyncModelUpdated() {
@@ -1138,7 +1131,7 @@ void ChromeLauncherControllerImpl::UpdateAppLaunchersFromPref() {
// into the pref state. Therefore we tell |persistPinnedState| to ignore any
// invocations while we are running.
base::AutoReset<bool> auto_reset(&ignore_persist_pinned_state_change_, true);
- const std::vector<ash::launcher::AppLauncherId> pinned_apps =
+ const std::vector<std::string> pinned_apps =
ash::launcher::GetPinnedAppsFromPrefs(profile()->GetPrefs(),
launcher_controller_helper());
@@ -1150,10 +1143,9 @@ void ChromeLauncherControllerImpl::UpdateAppLaunchersFromPref() {
// Apply pins in two steps. At the first step, go through the list of apps to
// pin, move existing pin to current position specified by |index| or create
// the new pin at that position.
- for (const auto& pref_app_launcher_id : pinned_apps) {
+ for (const auto& app_id : pinned_apps) {
// Filter out apps that may be mapped wrongly.
// TODO(khmel): b/31703859 is to refactore shelf mapping.
- const std::string app_id = pref_app_launcher_id.app_id();
const std::string shelf_app_id =
ArcAppWindowLauncherController::GetShelfAppIdFromArcAppId(app_id);
if (shelf_app_id != app_id)
@@ -1169,8 +1161,7 @@ void ChromeLauncherControllerImpl::UpdateAppLaunchersFromPref() {
const IDToItemControllerMap::iterator it =
id_to_item_controller_map_.find(item.id);
if (it != id_to_item_controller_map_.end() &&
- it->second->app_id() == app_id &&
- it->second->launch_id() == pref_app_launcher_id.launch_id()) {
+ it->second->app_id() == app_id && it->second->launch_id().empty()) {
break;
}
}
@@ -1188,7 +1179,8 @@ void ChromeLauncherControllerImpl::UpdateAppLaunchersFromPref() {
} else {
// This is fresh pin. Create new one.
DCHECK_NE(app_id, extension_misc::kChromeAppId);
- CreateAppShortcutLauncherItem(pref_app_launcher_id, index);
+ CreateAppShortcutLauncherItem(ash::launcher::AppLauncherId(app_id),
+ index);
}
++index;
}

Powered by Google App Engine
This is Rietveld 408576698