| Index: chrome/installer/util/shell_util.cc
|
| diff --git a/chrome/installer/util/shell_util.cc b/chrome/installer/util/shell_util.cc
|
| index ba52f96ebd1b884e2ab409b2b85d6f5506819b9d..201f5887a5b6e14dac48821df242d23b2387c35b 100644
|
| --- a/chrome/installer/util/shell_util.cc
|
| +++ b/chrome/installer/util/shell_util.cc
|
| @@ -109,7 +109,7 @@ class RegistryEntry {
|
| DCHECK(suffix.empty() || suffix[0] == L'.');
|
| return string16(ShellUtil::kRegStartMenuInternet)
|
| .append(1, L'\\')
|
| - .append(dist->GetApplicationName())
|
| + .append(dist->GetBaseAppName())
|
| .append(suffix);
|
| }
|
|
|
| @@ -213,7 +213,7 @@ class RegistryEntry {
|
| // resource for name, description, and company.
|
| entries->push_front(new RegistryEntry(
|
| chrome_application, ShellUtil::kRegApplicationName,
|
| - dist->GetApplicationName().append(suffix)));
|
| + dist->GetAppShortCutName().append(suffix)));
|
| entries->push_front(new RegistryEntry(
|
| chrome_application, ShellUtil::kRegApplicationDescription,
|
| dist->GetAppDescription()));
|
| @@ -252,7 +252,7 @@ class RegistryEntry {
|
| // TODO(grt): http://crbug.com/75152 Also set LocalizedString; see
|
| // http://msdn.microsoft.com/en-us/library/windows/desktop/cc144109(v=VS.85).aspx#registering_the_display_name
|
| entries->push_front(new RegistryEntry(
|
| - start_menu_entry, dist->GetApplicationName()));
|
| + start_menu_entry, dist->GetAppShortCutName()));
|
| // Register the "open" verb for launching Chrome via the "Internet" link.
|
| entries->push_front(new RegistryEntry(
|
| start_menu_entry + ShellUtil::kRegShellOpen, quoted_exe_path));
|
| @@ -273,7 +273,7 @@ class RegistryEntry {
|
| entries->push_front(new RegistryEntry(install_info, L"IconsVisible", 1));
|
|
|
| // Register with Default Programs.
|
| - string16 reg_app_name(dist->GetApplicationName().append(suffix));
|
| + string16 reg_app_name(dist->GetBaseAppName().append(suffix));
|
| // Tell Windows where to find Chrome's Default Programs info.
|
| string16 capabilities(GetCapabilitiesKey(dist, suffix));
|
| entries->push_front(new RegistryEntry(ShellUtil::kRegRegisteredApplications,
|
| @@ -382,7 +382,7 @@ class RegistryEntry {
|
|
|
| // start->Internet shortcut.
|
| string16 start_menu(ShellUtil::kRegStartMenuInternet);
|
| - string16 app_name = dist->GetApplicationName() + suffix;
|
| + string16 app_name = dist->GetBaseAppName() + suffix;
|
| entries->push_front(new RegistryEntry(start_menu, app_name));
|
| return true;
|
| }
|
| @@ -1026,7 +1026,7 @@ void ShellUtil::GetRegisteredBrowsers(
|
| KEY_QUERY_VALUE) != ERROR_SUCCESS ||
|
| key.ReadValue(NULL, &name) != ERROR_SUCCESS ||
|
| name.empty() ||
|
| - name.find(dist->GetApplicationName()) != string16::npos) {
|
| + name.find(dist->GetBaseAppName()) != string16::npos) {
|
| continue;
|
| }
|
| // Read the browser's reinstall command.
|
| @@ -1052,6 +1052,13 @@ string16 ShellUtil::GetCurrentInstallationSuffix(BrowserDistribution* dist,
|
| return tested_suffix;
|
| }
|
|
|
| +string16 ShellUtil::GetApplicationName(BrowserDistribution* dist,
|
| + const string16& chrome_exe) {
|
| + string16 app_name = dist->GetBaseAppName();
|
| + app_name += GetCurrentInstallationSuffix(dist, chrome_exe);
|
| + return app_name;
|
| +}
|
| +
|
| bool ShellUtil::MakeChromeDefault(BrowserDistribution* dist,
|
| int shell_change,
|
| const string16& chrome_exe,
|
| @@ -1075,10 +1082,7 @@ bool ShellUtil::MakeChromeDefault(BrowserDistribution* dist,
|
| bool ret = true;
|
| // First use the new "recommended" way on Vista to make Chrome default
|
| // browser.
|
| - string16 app_name = dist->GetApplicationName();
|
| - const string16 app_suffix(
|
| - ShellUtil::GetCurrentInstallationSuffix(dist, chrome_exe));
|
| - app_name += app_suffix;
|
| + string16 app_name = GetApplicationName(dist, chrome_exe);
|
|
|
| if (base::win::GetVersion() >= base::win::VERSION_VISTA) {
|
| // On Windows Vista and Win7 we still can set ourselves via the
|
| @@ -1118,7 +1122,9 @@ bool ShellUtil::MakeChromeDefault(BrowserDistribution* dist,
|
|
|
| std::list<RegistryEntry*> entries;
|
| STLElementDeleter<std::list<RegistryEntry*> > entries_deleter(&entries);
|
| - RegistryEntry::GetUserEntries(dist, chrome_exe, app_suffix, &entries);
|
| + RegistryEntry::GetUserEntries(
|
| + dist, chrome_exe, GetCurrentInstallationSuffix(dist, chrome_exe),
|
| + &entries);
|
| // Change the default browser for current user.
|
| if ((shell_change & ShellUtil::CURRENT_USER) &&
|
| !AddRegistryEntries(HKEY_CURRENT_USER, entries)) {
|
| @@ -1175,9 +1181,7 @@ bool ShellUtil::MakeChromeDefaultProtocolClient(BrowserDistribution* dist,
|
| HRESULT hr = pAAR.CreateInstance(CLSID_ApplicationAssociationRegistration,
|
| NULL, CLSCTX_INPROC);
|
| if (SUCCEEDED(hr)) {
|
| - string16 app_name = dist->GetApplicationName();
|
| - app_name += ShellUtil::GetCurrentInstallationSuffix(dist, chrome_exe);
|
| -
|
| + string16 app_name = GetApplicationName(dist, chrome_exe);
|
| hr = pAAR->SetAppAsDefault(app_name.c_str(), protocol.c_str(),
|
| AT_URLPROTOCOL);
|
| }
|
|
|