Chromium Code Reviews| Index: chrome/installer/setup/install.cc |
| diff --git a/chrome/installer/setup/install.cc b/chrome/installer/setup/install.cc |
| index f64ed8e4820ca1b5243f5ded5b4c467e579c8ecb..09743d1051d6a9b54917b956422b44d05fbd0636 100644 |
| --- a/chrome/installer/setup/install.cc |
| +++ b/chrome/installer/setup/install.cc |
| @@ -247,9 +247,9 @@ installer::InstallStatus InstallNewVersion( |
| // Launch shortcut. Both of these were created prior to Chrome 24; in Chrome 24, |
| // the uninstall shortcut was removed and the Default user Quick Launch shortcut |
| // was replaced by per-user shortcuts created via Active Setup. |
| -void CleanupLegacyShortcuts(const InstallerState& installer_state, |
| - BrowserDistribution* dist, |
| - const base::FilePath& chrome_exe) { |
| +void CleanupLegacyChromeShortcuts(const InstallerState& installer_state, |
| + BrowserDistribution* dist, |
| + const base::FilePath& chrome_exe) { |
| ShellUtil::ShellChange shortcut_level = installer_state.system_install() ? |
| ShellUtil::SYSTEM_LEVEL : ShellUtil::CURRENT_USER; |
| base::FilePath uninstall_shortcut_path; |
| @@ -283,6 +283,13 @@ installer::InstallShortcutOperation GetAppLauncherShortcutOperation( |
| return installer::INSTALL_SHORTCUT_REPLACE_EXISTING; |
| } |
| +void MigrateLagacyAppLauncherShortcuts(const InstallerState& installer_state) { |
| + const base::FilePath app_host_exe( |
| + installer_state.target_path().Append(installer::kChromeAppHostExe)); |
| + const base::FilePath chrome_exe( |
| + installer_state.target_path().Append(installer::kChromeExe)); |
| +} |
|
gab
2013/04/29 20:25:41
This doesn't do anything :)
huangs
2013/04/30 14:01:49
This is a stub to call code in
https://chromiumcod
|
| + |
| } // end namespace |
| namespace installer { |
| @@ -532,20 +539,31 @@ InstallStatus InstallOrUpdateProduct( |
| installer_state.UpdateStage(installer::CREATING_SHORTCUTS); |
| + InstallShortcutLevel install_level = installer_state.system_install() ? |
| + ALL_USERS : CURRENT_USER; |
| + const base::FilePath chrome_exe( |
|
gab
2013/04/29 20:25:41
indent
huangs
2013/04/30 14:01:49
Done.
|
| + installer_state.target_path().Append(kChromeExe)); |
| + |
| const Product* app_launcher_product = |
| installer_state.FindProduct(BrowserDistribution::CHROME_APP_HOST); |
| // Creates shortcuts for App Launcher. |
| if (app_launcher_product) { |
| - // TODO(huangs): Remove this check once we have system-level App Host. |
| - DCHECK(!installer_state.system_install()); |
| - const base::FilePath app_host_exe( |
| - installer_state.target_path().Append(kChromeAppHostExe)); |
| - InstallShortcutOperation app_launcher_shortcut_operation = |
| - GetAppLauncherShortcutOperation(original_state, installer_state); |
| - |
| - // Always install per-user shortcuts for App Launcher. |
| - CreateOrUpdateShortcuts(app_host_exe, *app_launcher_product, prefs, |
| - CURRENT_USER, app_launcher_shortcut_operation); |
| + // If we have a legacy user-level App Launcher that uses app_host.exe, |
| + // then migrate shortcuts. |
| + if (!installer_state.system_install()) { |
| + const ProductState* orig_product = original_state.GetProductState( |
| + false, BrowserDistribution::CHROME_APP_HOST); |
| + if (orig_product && chrome_launcher_support::HasLegacyAppHostExe( |
| + orig_product->version())) { |
| + MigrateLagacyAppLauncherShortcuts(installer_state); |
| + } |
| + } |
| + if (installer_state.create_app_launcher_shortcuts()) { |
| + InstallShortcutOperation app_launcher_shortcut_operation = |
| + GetAppLauncherShortcutOperation(original_state, installer_state); |
| + CreateOrUpdateShortcuts(chrome_exe, *app_launcher_product, prefs, |
| + install_level, app_launcher_shortcut_operation); |
|
gab
2013/04/29 20:25:41
Wait, are we creating All-users app launcher short
huangs
2013/04/30 14:01:49
Chrome and App Launcher are unified, so whatever C
|
| + } |
| } |
| const Product* chrome_product = |
| @@ -553,18 +571,13 @@ InstallStatus InstallOrUpdateProduct( |
| // Creates shortcuts for Chrome. |
| if (chrome_product) { |
| BrowserDistribution* chrome_dist = chrome_product->distribution(); |
| - const base::FilePath chrome_exe( |
| - installer_state.target_path().Append(kChromeExe)); |
| - CleanupLegacyShortcuts(installer_state, chrome_dist, chrome_exe); |
| + CleanupLegacyChromeShortcuts(installer_state, chrome_dist, chrome_exe); |
| // Install per-user shortcuts on user-level installs and all-users |
|
gab
2013/04/29 20:25:41
This comment belonged with the code that moved.
huangs
2013/04/30 14:01:49
I thought this refers to CreateOrUpdateShortcuts()
|
| // shortcuts on system-level installs. Note that Active Setup will take |
| // care of installing missing per-user shortcuts on system-level install |
| // (i.e., quick launch, taskbar pin, and possibly deleted all-users |
| // shortcuts). |
| - InstallShortcutLevel install_level = installer_state.system_install() ? |
| - ALL_USERS : CURRENT_USER; |
| - |
| InstallShortcutOperation install_operation = |
| INSTALL_SHORTCUT_REPLACE_EXISTING; |
| if (result == installer::FIRST_INSTALL_SUCCESS || |