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

Unified Diff: chrome/browser/ui/views/app_list/app_list_controller_win.cc

Issue 13864015: Move app launcher and chrome apps shortcut strings into the installer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@migrate_app_id_fix
Patch Set: rework Created 7 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/app_list/app_list_controller_win.cc
diff --git a/chrome/browser/ui/views/app_list/app_list_controller_win.cc b/chrome/browser/ui/views/app_list/app_list_controller_win.cc
index 2574a61b48891eff8499c12630faa2ec18a975b3..78fca7a514473821aeadeb7b59770db3536e7788 100644
--- a/chrome/browser/ui/views/app_list/app_list_controller_win.cc
+++ b/chrome/browser/ui/views/app_list/app_list_controller_win.cc
@@ -91,26 +91,6 @@ void MigrateAppLauncherEnabledPref() {
}
}
-// Icons are added to the resources of the DLL using icon names. The icon index
-// for the app list icon is named IDR_X_APP_LIST or (for official builds)
-// IDR_X_APP_LIST_SXS for Chrome Canary. Creating shortcuts needs to specify a
-// resource index, which are different to icon names. They are 0 based and
-// contiguous. As Google Chrome builds have extra icons the icon for Google
-// Chrome builds need to be higher. Unfortunately these indexes are not in any
-// generated header file.
-int GetAppListIconIndex() {
- const int kAppListIconIndex = 5;
- const int kAppListIconIndexSxS = 6;
- const int kAppListIconIndexChromium = 1;
-#if defined(GOOGLE_CHROME_BUILD)
- if (InstallUtil::IsChromeSxSProcess())
- return kAppListIconIndexSxS;
- return kAppListIconIndex;
-#else
- return kAppListIconIndexChromium;
-#endif
-}
-
string16 GetAppListIconPath() {
base::FilePath icon_path;
if (!PathService::Get(base::FILE_EXE, &icon_path)) {
@@ -118,8 +98,10 @@ string16 GetAppListIconPath() {
return string16();
}
+ BrowserDistribution* dist = BrowserDistribution::GetDistribution();
+
std::stringstream ss;
- ss << "," << GetAppListIconIndex();
+ ss << "," << dist->GetIconIndex(BrowserDistribution::SHORTCUT_APP_LAUNCHER);
string16 result = icon_path.value();
result.append(UTF8ToUTF16(ss.str()));
return result;
@@ -216,12 +198,6 @@ gfx::Point FindAnchorPoint(
anchor.SetToMin(bounds_rect.bottom_right());
return anchor;
}
-string16 GetAppListShortcutName() {
- chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
- if (channel == chrome::VersionInfo::CHANNEL_CANARY)
- return l10n_util::GetStringUTF16(IDS_APP_LIST_SHORTCUT_NAME_CANARY);
- return l10n_util::GetStringUTF16(IDS_APP_LIST_SHORTCUT_NAME);
-}
CommandLine GetAppListCommandLine() {
const char* const kSwitchesToCopy[] = { switches::kUserDataDir };
@@ -302,18 +278,14 @@ void CreateAppListShortcuts(
bool pin_to_taskbar = creation_locations.in_quick_launch_bar &&
(base::win::GetVersion() >= base::win::VERSION_WIN7);
- // Create a shortcut in the |user_data_dir| for taskbar pinning.
- if (pin_to_taskbar)
- shortcut_paths.push_back(user_data_dir);
- bool success = true;
-
base::FilePath chrome_exe;
if (!PathService::Get(base::FILE_EXE, &chrome_exe)) {
NOTREACHED();
return;
}
-
- string16 app_list_shortcut_name = GetAppListShortcutName();
+ BrowserDistribution* dist = BrowserDistribution::GetDistribution();
+ string16 app_list_shortcut_name =
+ dist->GetShortcutName(BrowserDistribution::SHORTCUT_APP_LAUNCHER);
string16 wide_switches(GetAppListCommandLine().GetArgumentsString());
@@ -322,29 +294,37 @@ void CreateAppListShortcuts(
shortcut_properties.set_working_dir(chrome_exe.DirName());
shortcut_properties.set_arguments(wide_switches);
shortcut_properties.set_description(app_list_shortcut_name);
- shortcut_properties.set_icon(chrome_exe, GetAppListIconIndex());
+ shortcut_properties.set_icon(
+ chrome_exe,
+ dist->GetIconIndex(BrowserDistribution::SHORTCUT_APP_LAUNCHER));
shortcut_properties.set_app_id(app_model_id);
for (size_t i = 0; i < shortcut_paths.size(); ++i) {
- base::FilePath shortcut_file =
+ base::FilePath shortcut_to_pin =
shortcut_paths[i].Append(app_list_shortcut_name).
AddExtension(installer::kLnkExt);
- if (!base::PathExists(shortcut_file.DirName()) &&
- !file_util::CreateDirectory(shortcut_file.DirName())) {
+ if (!base::PathExists(shortcut_to_pin.DirName()) &&
+ !file_util::CreateDirectory(shortcut_to_pin.DirName())) {
NOTREACHED();
- return;
+ continue;
}
- success = success && base::win::CreateOrUpdateShortcutLink(
- shortcut_file, shortcut_properties,
- base::win::SHORTCUT_CREATE_ALWAYS);
+ base::win::CreateOrUpdateShortcutLink(shortcut_to_pin,
+ shortcut_properties,
+ base::win::SHORTCUT_CREATE_ALWAYS);
}
- if (success && pin_to_taskbar) {
+ // Create a shortcut in the |user_data_dir| for taskbar pinning.
+ if (pin_to_taskbar) {
base::FilePath shortcut_to_pin =
user_data_dir.Append(app_list_shortcut_name).
AddExtension(installer::kLnkExt);
- success = base::win::TaskbarPinShortcutLink(
- shortcut_to_pin.value().c_str()) && success;
+ if (base::win::CreateOrUpdateShortcutLink(
+ shortcut_to_pin,
+ shortcut_properties,
+ base::win::SHORTCUT_CREATE_ALWAYS)) {
+ base::win::TaskbarPinShortcutLink(shortcut_to_pin.value().c_str());
+ }
+
}
}
@@ -401,9 +381,13 @@ void SetWindowAttributes(HWND hwnd) {
ui::win::SetAppIdForWindow(GetAppModelId(), hwnd);
CommandLine relaunch = GetAppListCommandLine();
- string16 app_name(GetAppListShortcutName());
+ BrowserDistribution* dist = BrowserDistribution::GetDistribution();
+ string16 app_name(
+ dist->GetShortcutName(BrowserDistribution::SHORTCUT_APP_LAUNCHER));
ui::win::SetRelaunchDetailsForWindow(
- relaunch.GetCommandLineString(), app_name, hwnd);
+ relaunch.GetCommandLineString(),
+ app_name,
+ hwnd);
::SetWindowText(hwnd, app_name.c_str());
string16 icon_path = GetAppListIconPath();
ui::win::SetAppIconForWindow(icon_path, hwnd);
@@ -1057,11 +1041,7 @@ void AppListController::CreateShortcut() {
ShellIntegration::ShortcutLocations shortcut_locations;
shortcut_locations.on_desktop = true;
shortcut_locations.in_quick_launch_bar = true;
- shortcut_locations.in_applications_menu = true;
- BrowserDistribution* dist = BrowserDistribution::GetDistribution();
- shortcut_locations.applications_menu_subdir =
- dist->GetStartMenuShortcutSubfolder(
- BrowserDistribution::SUBFOLDER_CHROME);
+ shortcut_locations.in_applications_menu_chrome_subdir = true;
base::FilePath user_data_dir(
g_browser_process->profile_manager()->user_data_dir());

Powered by Google App Engine
This is Rietveld 408576698