| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/browser/component_updater/component_patcher_win.h" | 5 #include "chrome/browser/component_updater/component_patcher_win.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/base_paths.h" | 9 #include "base/base_paths.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| 11 #include "base/file_util.h" | 11 #include "base/file_util.h" |
| 12 #include "base/path_service.h" | 12 #include "base/path_service.h" |
| 13 #include "base/process/kill.h" | 13 #include "base/process/kill.h" |
| 14 #include "base/process/launch.h" | 14 #include "base/process/launch.h" |
| 15 #include "base/strings/string_util.h" | 15 #include "base/strings/string_util.h" |
| 16 #include "base/strings/utf_string_conversions.h" |
| 16 #include "base/win/scoped_handle.h" | 17 #include "base/win/scoped_handle.h" |
| 17 #include "chrome/installer/util/util_constants.h" | 18 #include "chrome/installer/util/util_constants.h" |
| 18 | 19 |
| 19 namespace component_updater { | 20 namespace component_updater { |
| 20 | 21 |
| 21 namespace { | 22 namespace { |
| 22 | 23 |
| 23 std::string PatchTypeToCommandLineSwitch( | 24 std::string PatchTypeToCommandLineSwitch( |
| 24 ComponentPatcher::PatchType patch_type) { | 25 ComponentPatcher::PatchType patch_type) { |
| 25 if (patch_type == ComponentPatcher::kPatchTypeCourgette) | 26 if (patch_type == ComponentPatcher::kPatchTypeCourgette) |
| 26 return std::string(installer::kCourgette); | 27 return std::string(installer::kCourgette); |
| 27 else if (patch_type == ComponentPatcher::kPatchTypeBsdiff) | 28 else if (patch_type == ComponentPatcher::kPatchTypeBsdiff) |
| 28 return std::string(installer::kBsdiff); | 29 return std::string(installer::kBsdiff); |
| 29 else | 30 else |
| 30 return std::string(); | 31 return std::string(); |
| 31 } | 32 } |
| 32 | 33 |
| 33 // Finds the path to the setup.exe. First, it looks for the program in the | 34 // Finds the path to the setup.exe. First, it looks for the program in the |
| 34 // "installer" directory. If the program is not found there, it tries to find it | 35 // "installer" directory. If the program is not found there, it tries to find it |
| 35 // in the directory where chrome.dll lives. Returns the path to the setup.exe, | 36 // in the directory where chrome.dll lives. Returns the path to the setup.exe, |
| 36 // if the path exists, otherwise it returns an an empty path. | 37 // if the path exists, otherwise it returns an an empty path. |
| 37 base::FilePath FindSetupProgram() { | 38 base::FilePath FindSetupProgram() { |
| 38 base::FilePath exe_dir; | 39 base::FilePath exe_dir; |
| 39 if (!PathService::Get(base::DIR_MODULE, &exe_dir)) | 40 if (!PathService::Get(base::DIR_MODULE, &exe_dir)) |
| 40 return base::FilePath(); | 41 return base::FilePath(); |
| 41 | 42 |
| 42 const std::string installer_dir(WideToASCII(installer::kInstallerDir)); | 43 const std::string installer_dir(base::UTF16ToASCII(installer::kInstallerDir)); |
| 43 const std::string setup_exe(WideToASCII(installer::kSetupExe)); | 44 const std::string setup_exe(base::UTF16ToASCII(installer::kSetupExe)); |
| 44 | 45 |
| 45 base::FilePath setup_path = exe_dir; | 46 base::FilePath setup_path = exe_dir; |
| 46 setup_path = setup_path.AppendASCII(installer_dir); | 47 setup_path = setup_path.AppendASCII(installer_dir); |
| 47 setup_path = setup_path.AppendASCII(setup_exe); | 48 setup_path = setup_path.AppendASCII(setup_exe); |
| 48 if (base::PathExists(setup_path)) | 49 if (base::PathExists(setup_path)) |
| 49 return setup_path; | 50 return setup_path; |
| 50 | 51 |
| 51 setup_path = exe_dir; | 52 setup_path = exe_dir; |
| 52 setup_path = setup_path.AppendASCII(setup_exe); | 53 setup_path = setup_path.AppendASCII(setup_exe); |
| 53 if (base::PathExists(setup_path)) | 54 if (base::PathExists(setup_path)) |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 *error = GetLastError(); | 109 *error = GetLastError(); |
| 109 return ComponentUnpacker::kDeltaPatchProcessFailure; | 110 return ComponentUnpacker::kDeltaPatchProcessFailure; |
| 110 } | 111 } |
| 111 | 112 |
| 112 *error = exit_code; | 113 *error = exit_code; |
| 113 return *error ? ComponentUnpacker::kDeltaOperationFailure : | 114 return *error ? ComponentUnpacker::kDeltaOperationFailure : |
| 114 ComponentUnpacker::kNone; | 115 ComponentUnpacker::kNone; |
| 115 } | 116 } |
| 116 | 117 |
| 117 } // namespace component_updater | 118 } // namespace component_updater |
| OLD | NEW |