Index: chrome/installer/setup/setup_main.cc |
diff --git a/chrome/installer/setup/setup_main.cc b/chrome/installer/setup/setup_main.cc |
index c52e0a89c742044e1d0c2a2665451e83c2973e05..d59c4d2f8f72c3be3c3f80e230a4b3cdc7c386d6 100644 |
--- a/chrome/installer/setup/setup_main.cc |
+++ b/chrome/installer/setup/setup_main.cc |
@@ -21,6 +21,7 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/path_service.h" |
#include "base/process/launch.h" |
+#include "base/process/memory.h" |
#include "base/strings/string16.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/string_util.h" |
@@ -28,6 +29,7 @@ |
#include "base/strings/utf_string_conversions.h" |
#include "base/values.h" |
#include "base/version.h" |
+#include "base/win/process_startup_helper.h" |
#include "base/win/registry.h" |
#include "base/win/scoped_com_initializer.h" |
#include "base/win/scoped_comptr.h" |
@@ -1758,6 +1760,12 @@ int WINAPI wWinMain(HINSTANCE instance, HINSTANCE prev_instance, |
scoped_ptr<google_breakpad::ExceptionHandler> breakpad( |
InitializeCrashReporting(system_install)); |
+ // Make sure the process exits cleanly on unexpected errors. |
+ base::EnableTerminationOnHeapCorruption(); |
+ base::EnableTerminationOnOutOfMemory(); |
+ base::win::RegisterInvalidParamHandler(); |
+ base::win::SetupCRT(cmd_line); |
+ |
InstallationState original_state; |
original_state.Initialize(); |