| Index: chrome/installer/setup/setup_main.cc
|
| diff --git a/chrome/installer/setup/setup_main.cc b/chrome/installer/setup/setup_main.cc
|
| index 735be3fda9da4a0a428043fe7d1fec7d85f3a501..2c60a200b0ac54fd82b50bdf278ad6d06e666fca 100644
|
| --- a/chrome/installer/setup/setup_main.cc
|
| +++ b/chrome/installer/setup/setup_main.cc
|
| @@ -14,6 +14,7 @@
|
| #include "base/command_line.h"
|
| #include "base/file_util.h"
|
| #include "base/file_version_info.h"
|
| +#include "base/files/file_path.h"
|
| #include "base/files/scoped_temp_dir.h"
|
| #include "base/path_service.h"
|
| #include "base/process_util.h"
|
| @@ -491,7 +492,6 @@ bool CheckAppHostPreconditions(const InstallationState& original_state,
|
| InstallerState* installer_state,
|
| installer::InstallStatus* status) {
|
| if (installer_state->FindProduct(BrowserDistribution::CHROME_APP_HOST)) {
|
| -
|
| if (!installer_state->is_multi_install()) {
|
| LOG(DFATAL) << "App Launcher requires multi install";
|
| *status = installer::APP_HOST_REQUIRES_MULTI_INSTALL;
|
| @@ -507,7 +507,6 @@ bool CheckAppHostPreconditions(const InstallationState& original_state,
|
| installer_state->WriteInstallerResult(*status, 0, NULL);
|
| return false;
|
| }
|
| -
|
| }
|
|
|
| return true;
|
| @@ -1477,6 +1476,27 @@ bool HandleNonInstallCmdLineOptions(const InstallationState& original_state,
|
| } else if (cmd_line.HasSwitch(installer::switches::kChromeFrameQuickEnable)) {
|
| *exit_code = installer::ChromeFrameQuickEnable(original_state,
|
| installer_state);
|
| + } else if (cmd_line.HasSwitch(installer::switches::kPatch)) {
|
| + const std::string patch_type_str(
|
| + cmd_line.GetSwitchValueASCII(installer::switches::kPatch));
|
| + const base::FilePath input_file(
|
| + cmd_line.GetSwitchValuePath(installer::switches::kInputFile));
|
| + const base::FilePath patch_file(
|
| + cmd_line.GetSwitchValuePath(installer::switches::kPatchFile));
|
| + const base::FilePath output_file(
|
| + cmd_line.GetSwitchValuePath(installer::switches::kOutputFile));
|
| +
|
| + if (patch_type_str == installer::kCourgette) {
|
| + *exit_code = installer::CourgettePatchFiles(input_file,
|
| + patch_file,
|
| + output_file);
|
| + } else if (patch_type_str == installer::kBsdiff) {
|
| + *exit_code = installer::BsdiffPatchFiles(input_file,
|
| + patch_file,
|
| + output_file);
|
| + } else {
|
| + *exit_code = installer::PATCH_INVALID_ARGUMENTS;
|
| + }
|
| } else {
|
| handled = false;
|
| }
|
|
|