| Index: chrome/installer/util/shell_util.cc
|
| diff --git a/chrome/installer/util/shell_util.cc b/chrome/installer/util/shell_util.cc
|
| index 71a34de3de14f09658ddb2481d4370fbd4f19086..be6cb91a521384c593ba4ec1de6bbe7cda5d518a 100644
|
| --- a/chrome/installer/util/shell_util.cc
|
| +++ b/chrome/installer/util/shell_util.cc
|
| @@ -136,7 +136,7 @@ class RegistryEntry {
|
| string16 delegate_command(ShellUtil::GetChromeDelegateCommand(chrome_exe));
|
| // For user-level installs: entries for the app id and DelegateExecute verb
|
| // handler will be in HKCU; thus we do not need a suffix on those entries.
|
| - string16 app_id(dist->GetBrowserAppId());
|
| + string16 app_id(ShellUtil::GetAppId(dist, chrome_exe));
|
| string16 delegate_guid;
|
| // TODO(grt): remove HasDelegateExecuteHandler when the exe is ever-present;
|
| // see also install_worker.cc's AddDelegateExecuteWorkItems.
|
| @@ -663,7 +663,7 @@ void RemoveBadWindows8RegistrationIfNeeded(
|
| // suffix.
|
| const string16 installation_suffix(
|
| ShellUtil::GetCurrentInstallationSuffix(dist, chrome_exe));
|
| - const string16 app_id(dist->GetBrowserAppId());
|
| + const string16 app_id(ShellUtil::GetAppId(dist, chrome_exe));
|
|
|
| // <root hkey>\Software\Classes\<app_id>
|
| string16 key(ShellUtil::kRegClasses);
|
| @@ -1074,6 +1074,17 @@ string16 ShellUtil::GetApplicationName(BrowserDistribution* dist,
|
| return app_name;
|
| }
|
|
|
| +string16 ShellUtil::GetAppId(BrowserDistribution* dist,
|
| + const string16& chrome_exe) {
|
| + string16 app_id(dist->GetBaseAppId());
|
| + string16 suffix;
|
| + if (InstallUtil::IsPerUserInstall(chrome_exe.c_str()) &&
|
| + !GetUserSpecificRegistrySuffix(&suffix)) {
|
| + NOTREACHED();
|
| + }
|
| + return app_id.append(suffix);
|
| +}
|
| +
|
| bool ShellUtil::MakeChromeDefault(BrowserDistribution* dist,
|
| int shell_change,
|
| const string16& chrome_exe,
|
| @@ -1432,24 +1443,25 @@ bool ShellUtil::UpdateChromeShortcut(BrowserDistribution* dist,
|
| const string16& icon_path,
|
| int icon_index,
|
| uint32 options) {
|
| - string16 chrome_path = FilePath(chrome_exe).DirName().value();
|
| + const FilePath chrome_path(FilePath(chrome_exe).DirName());
|
|
|
| - FilePath prefs_path(chrome_path);
|
| - prefs_path = prefs_path.AppendASCII(installer::kDefaultMasterPrefs);
|
| - installer::MasterPreferences prefs(prefs_path);
|
| + installer::MasterPreferences prefs(
|
| + chrome_path.AppendASCII(installer::kDefaultMasterPrefs));
|
| if (FilePath::CompareEqualIgnoreCase(icon_path, chrome_exe)) {
|
| prefs.GetInt(installer::master_preferences::kChromeShortcutIconIndex,
|
| &icon_index);
|
| }
|
|
|
| + const string16 app_id(GetAppId(dist, chrome_exe));
|
| +
|
| return file_util::CreateOrUpdateShortcutLink(
|
| chrome_exe.c_str(),
|
| shortcut.c_str(),
|
| - chrome_path.c_str(),
|
| + chrome_path.value().c_str(),
|
| arguments.c_str(),
|
| description.c_str(),
|
| icon_path.c_str(),
|
| icon_index,
|
| - dist->GetBrowserAppId().c_str(),
|
| + app_id.c_str(),
|
| ConvertShellUtilShortcutOptionsToFileUtil(options));
|
| }
|
|
|