OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/installer/setup/chrome_frame_quick_enable.h" | 5 #include "chrome/installer/setup/chrome_frame_quick_enable.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/scoped_temp_dir.h" | 10 #include "base/scoped_temp_dir.h" |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 DCHECK(chrome_state); // Checked in CheckQuickEnablePreconditions. | 93 DCHECK(chrome_state); // Checked in CheckQuickEnablePreconditions. |
94 | 94 |
95 // Temporarily remove Chrome from the product list. | 95 // Temporarily remove Chrome from the product list. |
96 // This is so that the operations below do not affect the installation | 96 // This is so that the operations below do not affect the installation |
97 // state of Chrome. | 97 // state of Chrome. |
98 installer_state->RemoveProduct( | 98 installer_state->RemoveProduct( |
99 installer_state->FindProduct(BrowserDistribution::CHROME_BROWSER)); | 99 installer_state->FindProduct(BrowserDistribution::CHROME_BROWSER)); |
100 | 100 |
101 FilePath setup_path(chrome_state->GetSetupPath()); | 101 FilePath setup_path(chrome_state->GetSetupPath()); |
102 const Version& new_version = chrome_state->version(); | 102 const Version& new_version = chrome_state->version(); |
103 FilePath new_chrome_exe( | |
104 installer_state->target_path().Append(installer::kChromeNewExe)); | |
105 | 103 |
106 // This creates the uninstallation entry for GCF. | 104 // This creates the uninstallation entry for GCF. |
107 AddUninstallShortcutWorkItems(*installer_state, setup_path, new_version, | 105 AddUninstallShortcutWorkItems(*installer_state, setup_path, new_version, |
108 item_list.get(), *cf); | 106 item_list.get(), *cf); |
109 // Always set the "lang" value since quick-enable always happens in the | 107 // Always set the "lang" value since quick-enable always happens in the |
110 // context of an interactive session with a user. | 108 // context of an interactive session with a user. |
111 AddVersionKeyWorkItems(installer_state->root_key(), cf->distribution(), | 109 AddVersionKeyWorkItems(installer_state->root_key(), cf->distribution(), |
112 new_version, true, item_list.get()); | 110 new_version, true, item_list.get()); |
113 AddChromeFrameWorkItems(machine_state, *installer_state, setup_path, | 111 AddChromeFrameWorkItems(machine_state, *installer_state, setup_path, |
114 new_version, *cf, item_list.get()); | 112 new_version, *cf, item_list.get()); |
115 | 113 |
116 const Version* opv = chrome_state->old_version(); | 114 const Version* opv = chrome_state->old_version(); |
117 AppendPostInstallTasks(*installer_state, setup_path, new_chrome_exe, opv, | 115 AppendPostInstallTasks(*installer_state, setup_path, opv, |
118 new_version, temp_path.path(), item_list.get()); | 116 new_version, temp_path.path(), item_list.get()); |
119 | 117 |
120 // Before updating the channel values, add Chrome back to the mix so that | 118 // Before updating the channel values, add Chrome back to the mix so that |
121 // all multi-installed products' channel values get updated. | 119 // all multi-installed products' channel values get updated. |
122 installer_state->AddProductFromState(BrowserDistribution::CHROME_BROWSER, | 120 installer_state->AddProductFromState(BrowserDistribution::CHROME_BROWSER, |
123 *chrome_state); | 121 *chrome_state); |
124 AddGoogleUpdateWorkItems(machine_state, *installer_state, | 122 AddGoogleUpdateWorkItems(machine_state, *installer_state, |
125 item_list.get()); | 123 item_list.get()); |
126 | 124 |
127 // Add the items to remove the quick-enable-cf command from the registry. | 125 // Add the items to remove the quick-enable-cf command from the registry. |
128 AddQuickEnableWorkItems(*installer_state, machine_state, | 126 AddQuickEnableChromeFrameWorkItems( |
129 &chrome_state->uninstall_command().GetProgram(), | 127 *installer_state, machine_state, |
130 &chrome_state->version(), | 128 &chrome_state->uninstall_command().GetProgram(), |
131 item_list.get()); | 129 &chrome_state->version(), |
| 130 item_list.get()); |
132 | 131 |
133 if (!item_list->Do()) { | 132 if (!item_list->Do()) { |
134 item_list->Rollback(); | 133 item_list->Rollback(); |
135 status = INSTALL_FAILED; | 134 status = INSTALL_FAILED; |
136 } else { | 135 } else { |
137 DCHECK_EQ(FIRST_INSTALL_SUCCESS, status); | 136 DCHECK_EQ(FIRST_INSTALL_SUCCESS, status); |
138 VLOG(1) << "Chrome Frame successfully activated."; | 137 VLOG(1) << "Chrome Frame successfully activated."; |
139 } | 138 } |
140 } | 139 } |
141 } | 140 } |
(...skipping 21 matching lines...) Expand all Loading... |
163 BrowserDistribution::CHROME_BINARIES), | 162 BrowserDistribution::CHROME_BINARIES), |
164 true)) { | 163 true)) { |
165 LOG(ERROR) << "Failed to set EULA consent for multi-install binaries."; | 164 LOG(ERROR) << "Failed to set EULA consent for multi-install binaries."; |
166 } | 165 } |
167 } | 166 } |
168 | 167 |
169 return status; | 168 return status; |
170 } | 169 } |
171 | 170 |
172 } // namespace installer | 171 } // namespace installer |
OLD | NEW |