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 // See the corresponding header file for description of the functions in this | 5 // See the corresponding header file for description of the functions in this |
6 // file. | 6 // file. |
7 | 7 |
8 #include "chrome/installer/util/install_util.h" | 8 #include "chrome/installer/util/install_util.h" |
9 | 9 |
10 #include <shellapi.h> | 10 #include <shellapi.h> |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 } | 149 } |
150 | 150 |
151 CommandLine cmd(CommandLine::FromString(cmd_str)); | 151 CommandLine cmd(CommandLine::FromString(cmd_str)); |
152 // Force creation of shortcuts as the First Run beacon might land between now | 152 // Force creation of shortcuts as the First Run beacon might land between now |
153 // and the time setup.exe checks for it. | 153 // and the time setup.exe checks for it. |
154 cmd.AppendSwitch(installer::switches::kForceConfigureUserSettings); | 154 cmd.AppendSwitch(installer::switches::kForceConfigureUserSettings); |
155 | 155 |
156 base::LaunchOptions launch_options; | 156 base::LaunchOptions launch_options; |
157 if (base::win::IsMetroProcess()) | 157 if (base::win::IsMetroProcess()) |
158 launch_options.force_breakaway_from_job_ = true; | 158 launch_options.force_breakaway_from_job_ = true; |
159 if (!base::LaunchProcess(cmd.GetCommandLineString(), launch_options, NULL)) | 159 base::Process process = |
| 160 base::LaunchProcess(cmd.GetCommandLineString(), launch_options); |
| 161 if (!process.IsValid()) |
160 PLOG(ERROR) << cmd.GetCommandLineString(); | 162 PLOG(ERROR) << cmd.GetCommandLineString(); |
161 } | 163 } |
162 | 164 |
163 bool InstallUtil::ExecuteExeAsAdmin(const CommandLine& cmd, DWORD* exit_code) { | 165 bool InstallUtil::ExecuteExeAsAdmin(const CommandLine& cmd, DWORD* exit_code) { |
164 base::FilePath::StringType program(cmd.GetProgram().value()); | 166 base::FilePath::StringType program(cmd.GetProgram().value()); |
165 DCHECK(!program.empty()); | 167 DCHECK(!program.empty()); |
166 DCHECK_NE(program[0], L'\"'); | 168 DCHECK_NE(program[0], L'\"'); |
167 | 169 |
168 CommandLine::StringType params(cmd.GetCommandLineString()); | 170 CommandLine::StringType params(cmd.GetCommandLineString()); |
169 if (params[0] == '"') { | 171 if (params[0] == '"') { |
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 // Open the program and see if it references the expected file. | 648 // Open the program and see if it references the expected file. |
647 base::File file; | 649 base::File file; |
648 BY_HANDLE_FILE_INFORMATION info = {}; | 650 BY_HANDLE_FILE_INFORMATION info = {}; |
649 | 651 |
650 return (OpenForInfo(path, &file) && | 652 return (OpenForInfo(path, &file) && |
651 GetInfo(file, &info) && | 653 GetInfo(file, &info) && |
652 info.dwVolumeSerialNumber == file_info_.dwVolumeSerialNumber && | 654 info.dwVolumeSerialNumber == file_info_.dwVolumeSerialNumber && |
653 info.nFileIndexHigh == file_info_.nFileIndexHigh && | 655 info.nFileIndexHigh == file_info_.nFileIndexHigh && |
654 info.nFileIndexLow == file_info_.nFileIndexLow); | 656 info.nFileIndexLow == file_info_.nFileIndexLow); |
655 } | 657 } |
OLD | NEW |