| Index: chrome/installer/setup/setup_main.cc | 
| diff --git a/chrome/installer/setup/setup_main.cc b/chrome/installer/setup/setup_main.cc | 
| index c3c575a8a7b87c8b30a1d06cda15428b5cca8b3c..d371651d8f4ae7b0a64829f29d9df7757710e2fe 100644 | 
| --- a/chrome/installer/setup/setup_main.cc | 
| +++ b/chrome/installer/setup/setup_main.cc | 
| @@ -14,8 +14,6 @@ | 
| #include "base/at_exit.h" | 
| #include "base/basictypes.h" | 
| #include "base/command_line.h" | 
| -#include "base/debug/crash_logging.h" | 
| -#include "base/debug/leak_annotations.h" | 
| #include "base/file_version_info.h" | 
| #include "base/files/file_path.h" | 
| #include "base/files/file_util.h" | 
| @@ -44,7 +42,7 @@ | 
| #include "chrome/installer/setup/archive_patch_helper.h" | 
| #include "chrome/installer/setup/install.h" | 
| #include "chrome/installer/setup/install_worker.h" | 
| -#include "chrome/installer/setup/installer_crash_reporter_client.h" | 
| +#include "chrome/installer/setup/installer_crash_reporting.h" | 
| #include "chrome/installer/setup/setup_constants.h" | 
| #include "chrome/installer/setup/setup_util.h" | 
| #include "chrome/installer/setup/uninstall.h" | 
| @@ -69,8 +67,6 @@ | 
| #include "chrome/installer/util/self_cleaning_temp_dir.h" | 
| #include "chrome/installer/util/shell_util.h" | 
| #include "chrome/installer/util/user_experiment.h" | 
| -#include "components/crash/content/app/breakpad_win.h" | 
| -#include "components/crash/content/app/crash_keys_win.h" | 
|  | 
| #if defined(GOOGLE_CHROME_BUILD) | 
| #include "chrome/installer/util/updating_app_registration_data.h" | 
| @@ -1285,55 +1281,6 @@ bool HandleNonInstallCmdLineOptions(const InstallationState& original_state, | 
| return handled; | 
| } | 
|  | 
| -#if defined(COMPONENT_BUILD) | 
| -// Installed via base::debug::SetCrashKeyReportingFunctions. | 
| -void SetCrashKeyValue(const base::StringPiece& key, | 
| -                      const base::StringPiece& value) { | 
| -  DCHECK(breakpad::CrashKeysWin::keeper()); | 
| -  breakpad::CrashKeysWin::keeper()->SetCrashKeyValue(base::UTF8ToUTF16(key), | 
| -                                                     base::UTF8ToUTF16(value)); | 
| -} | 
| - | 
| -// Installed via base::debug::SetCrashKeyReportingFunctions. | 
| -void ClearCrashKey(const base::StringPiece& key) { | 
| -  DCHECK(breakpad::CrashKeysWin::keeper()); | 
| -  breakpad::CrashKeysWin::keeper()->ClearCrashKeyValue(base::UTF8ToUTF16(key)); | 
| -} | 
| -#endif  // COMPONENT_BUILD | 
| - | 
| -void ConfigureCrashReporting(const InstallerState& installer_state) { | 
| -  // This is inspired by work done in various parts of Chrome startup to connect | 
| -  // to the crash service. Since the installer does not split its work between | 
| -  // a stub .exe and a main .dll, crash reporting can be configured in one place | 
| -  // right here. | 
| - | 
| -  // Create the crash client and install it (a la MainDllLoader::Launch). | 
| -  InstallerCrashReporterClient *crash_client = | 
| -      new InstallerCrashReporterClient(!installer_state.system_install()); | 
| -  ANNOTATE_LEAKING_OBJECT_PTR(crash_client); | 
| -  crash_reporter::SetCrashReporterClient(crash_client); | 
| - | 
| -  breakpad::InitCrashReporter("Chrome Installer"); | 
| - | 
| -  // Set up crash keys and the client id (a la child_process_logging::Init()). | 
| -#if defined(COMPONENT_BUILD) | 
| -  // breakpad::InitCrashReporter takes care of this for static builds but not | 
| -  // component builds due to intricacies of chrome.exe and chrome.dll sharing a | 
| -  // copy of base.dll in that case (for details, see the comment in | 
| -  // components/crash/content/app/breakpad_win.cc). | 
| -  crash_client->RegisterCrashKeys(); | 
| -  base::debug::SetCrashKeyReportingFunctions(&SetCrashKeyValue, &ClearCrashKey); | 
| -#endif // COMPONENT_BUILD | 
| - | 
| -  scoped_ptr<metrics::ClientInfo> client_info = | 
| -      GoogleUpdateSettings::LoadMetricsClientInfo(); | 
| -  if (client_info) | 
| -    crash_client->SetCrashReporterClientIdFromGUID(client_info->client_id); | 
| -  // TODO(grt): A lack of a client_id at this point generally means that Chrome | 
| -  // has yet to have been launched and picked one. Consider creating it and | 
| -  // setting it here for Chrome to use. | 
| -} | 
| - | 
| // Uninstalls multi-install Chrome Frame if the current operation is a | 
| // multi-install install or update. The operation is performed directly rather | 
| // than delegated to the existing install since there is no facility in older | 
| @@ -1704,7 +1651,8 @@ int WINAPI wWinMain(HINSTANCE instance, HINSTANCE prev_instance, | 
| InstallerState installer_state; | 
| installer_state.Initialize(cmd_line, prefs, original_state); | 
|  | 
| -  ConfigureCrashReporting(installer_state); | 
| +  installer::ConfigureCrashReporting(installer_state); | 
| +  installer::SetInitialCrashKeys(installer_state); | 
|  | 
| // Make sure the process exits cleanly on unexpected errors. | 
| base::EnableTerminationOnHeapCorruption(); | 
|  |