Index: chrome/browser/ui/startup/startup_browser_creator.cc |
diff --git a/chrome/browser/ui/startup/startup_browser_creator.cc b/chrome/browser/ui/startup/startup_browser_creator.cc |
index cc9a84beee35e5910e4388176ba4a622c49fae66..ad62fa921549bb5c0f974a897fefe3f48587028b 100644 |
--- a/chrome/browser/ui/startup/startup_browser_creator.cc |
+++ b/chrome/browser/ui/startup/startup_browser_creator.cc |
@@ -31,6 +31,7 @@ |
#include "chrome/browser/auto_launch_trial.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/chrome_notification_types.h" |
+#include "chrome/browser/component_updater/recovery_component_installer.h" |
#include "chrome/browser/custom_handlers/protocol_handler_registry.h" |
#include "chrome/browser/extensions/startup_helper.h" |
#include "chrome/browser/extensions/unpacked_installer.h" |
@@ -507,6 +508,16 @@ bool StartupBrowserCreator::ProcessCmdLineImpl( |
return false; |
} |
+ if (command_line.HasSwitch(switches::kInstallRecoveryComponent)) { |
+ std::string recovery_version = command_line.GetSwitchValueASCII( |
+ switches::kInstallRecoveryComponent); |
+ silent_launch = true; |
+ component_updater::InstallRecoveryComponentElevated(recovery_version); |
+ // Nothing more to do after recovery, return false to stop launching and |
+ // quit. |
+ return false; |
+ } |
+ |
if (command_line.HasSwitch(switches::kValidateCrx)) { |
if (!process_startup) { |
LOG(ERROR) << "chrome is already running; you must close all running " |