 Chromium Code Reviews
 Chromium Code Reviews Issue 10542031:
  Suffix Chrome's appid on user-level installs  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src
    
  
    Issue 10542031:
  Suffix Chrome's appid on user-level installs  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src| Index: chrome/installer/setup/install.cc | 
| diff --git a/chrome/installer/setup/install.cc b/chrome/installer/setup/install.cc | 
| index 375b2ec1aba977b63842f28352b0ffc27c4ab4ed..e6d8a1ff119d24ace5989b999a31a68e2922bca8 100644 | 
| --- a/chrome/installer/setup/install.cc | 
| +++ b/chrome/installer/setup/install.cc | 
| @@ -87,12 +87,13 @@ void CopyPreferenceFileForFirstRun(const InstallerState& installer_state, | 
| // If the shortcuts do not exist, the function does not recreate them during | 
| // update. | 
| // |options|: bitfield for which the options come from ChromeShortcutOptions. | 
| -void CreateOrUpdateChromeShortcuts(const InstallerState& installer_state, | 
| - const FilePath& setup_path, | 
| - const Version& new_version, | 
| - installer::InstallStatus install_status, | 
| - const Product& product, | 
| - uint32 options) { | 
| +void CreateOrUpdateChromeShortcuts( | 
| + const InstallerState& installer_state, | 
| + const FilePath& setup_path, | 
| + const Version& new_version, | 
| + const installer::InstallStatus& install_status, | 
| 
grt (UTC plus 2)
2012/06/15 03:03:03
why pass a value of an enum by const ref?
 
gab
2012/06/15 19:01:04
Good question, I somehow thought it was an Object
 | 
| + const Product& product, | 
| + uint32 options) { | 
| // TODO(tommi): Change this function to use WorkItemList. | 
| DCHECK(product.is_chrome()); | 
| @@ -468,31 +469,11 @@ InstallStatus InstallOrUpdateProduct( | 
| if (result == FIRST_INSTALL_SUCCESS && !prefs_path.empty()) | 
| CopyPreferenceFileForFirstRun(installer_state, prefs_path); | 
| - bool do_not_create_shortcuts = false; | 
| - prefs.GetBool(master_preferences::kDoNotCreateShortcuts, | 
| 
grt (UTC plus 2)
2012/06/15 03:03:03
robert added this in http://crrev.com/25870.  it e
 
robertshield
2012/06/15 03:27:59
This was added long ago for Chrome Frame, so that
 
grt (UTC plus 2)
2012/06/15 03:33:51
Do you know who we should ask about that?
 
gab
2012/06/15 19:01:04
This sounds like its wrong/unused, we should proba
 | 
| - &do_not_create_shortcuts); | 
| - | 
| // Currently this only creates shortcuts for Chrome, but for other products | 
| // we might want to create shortcuts. | 
| const Product* chrome_install = | 
| installer_state.FindProduct(BrowserDistribution::CHROME_BROWSER); | 
| - if (chrome_install && !do_not_create_shortcuts) { | 
| - installer_state.UpdateStage(installer::CREATING_SHORTCUTS); | 
| - | 
| - bool create_all_shortcut = false; | 
| - prefs.GetBool(master_preferences::kCreateAllShortcuts, | 
| - &create_all_shortcut); | 
| - bool alt_shortcut = false; | 
| - prefs.GetBool(master_preferences::kAltShortcutText, &alt_shortcut); | 
| - uint32 shortcut_options = ShellUtil::SHORTCUT_NO_OPTIONS; | 
| - if (create_all_shortcut) | 
| - shortcut_options |= ShellUtil::SHORTCUT_CREATE_ALWAYS; | 
| - if (alt_shortcut) | 
| - shortcut_options |= ShellUtil::SHORTCUT_ALTERNATE; | 
| - CreateOrUpdateChromeShortcuts(installer_state, setup_path, | 
| - new_version, result, *chrome_install, | 
| - shortcut_options); | 
| - | 
| + if (chrome_install) { | 
| bool make_chrome_default = false; | 
| prefs.GetBool(master_preferences::kMakeChromeDefault, | 
| &make_chrome_default); | 
| @@ -510,9 +491,33 @@ InstallStatus InstallOrUpdateProduct( | 
| installer_state.UpdateStage(installer::REGISTERING_CHROME); | 
| + // Chrome must be registered before creating shortcuts as the registration | 
| + // determines the appid that will later be embedded in the shortcut. | 
| RegisterChromeOnMachine(installer_state, *chrome_install, | 
| make_chrome_default || force_chrome_default_for_user); | 
| + bool do_not_create_shortcuts = false; | 
| + prefs.GetBool(master_preferences::kDoNotCreateShortcuts, | 
| + &do_not_create_shortcuts); | 
| + | 
| + if (!do_not_create_shortcuts) { | 
| + installer_state.UpdateStage(installer::CREATING_SHORTCUTS); | 
| + | 
| + bool create_all_shortcut = false; | 
| + prefs.GetBool(master_preferences::kCreateAllShortcuts, | 
| + &create_all_shortcut); | 
| + bool alt_shortcut = false; | 
| + prefs.GetBool(master_preferences::kAltShortcutText, &alt_shortcut); | 
| + uint32 shortcut_options = ShellUtil::SHORTCUT_NO_OPTIONS; | 
| + if (create_all_shortcut) | 
| + shortcut_options |= ShellUtil::SHORTCUT_CREATE_ALWAYS; | 
| + if (alt_shortcut) | 
| + shortcut_options |= ShellUtil::SHORTCUT_ALTERNATE; | 
| + CreateOrUpdateChromeShortcuts(installer_state, setup_path, | 
| + new_version, result, *chrome_install, | 
| + shortcut_options); | 
| + } | 
| + | 
| if (result == FIRST_INSTALL_SUCCESS) { | 
| installer_state.UpdateStage(installer::CONFIGURE_AUTO_LAUNCH); |