summaryrefslogtreecommitdiffstats
path: root/chrome_frame/chrome_launcher.cc
diff options
context:
space:
mode:
authorrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-17 16:24:42 +0000
committerrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-17 16:24:42 +0000
commit1a474191be022e293b6f869c398bab5b30be6540 (patch)
tree62dc288c966312545970dd9b1ea3b89625d2f8c4 /chrome_frame/chrome_launcher.cc
parentfc225087ecfd3cbb121cc4e9abc02df79191dd56 (diff)
downloadchromium_src-1a474191be022e293b6f869c398bab5b30be6540.zip
chromium_src-1a474191be022e293b6f869c398bab5b30be6540.tar.gz
chromium_src-1a474191be022e293b6f869c398bab5b30be6540.tar.bz2
Perform breakpad shutdown when returning from the chrome launcher entry point. This is a to avoid the deadlock that occurs when shutting it down in DllMain in chrome_launcher.exe.
BUG=44212 TEST=chrome_launcher.exe stops hanging Review URL: http://codereview.chromium.org/2094006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47422 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/chrome_launcher.cc')
-rw-r--r--chrome_frame/chrome_launcher.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/chrome_frame/chrome_launcher.cc b/chrome_frame/chrome_launcher.cc
index 2960c8e..0303b3b 100644
--- a/chrome_frame/chrome_launcher.cc
+++ b/chrome_frame/chrome_launcher.cc
@@ -13,6 +13,7 @@
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_switches.h"
#include "chrome_frame/chrome_frame_automation.h"
+#include "chrome_frame/chrome_frame_reporting.h"
namespace chrome_launcher {
@@ -118,11 +119,17 @@ FilePath GetChromeExecutablePath() {
// Entrypoint that implements the logic of chrome_launcher.exe.
int CALLBACK CfLaunchChrome() {
+ int result = ERROR_OPEN_FAILED;
+
if (chrome_launcher::SanitizeAndLaunchChrome(::GetCommandLine())) {
- return ERROR_SUCCESS;
- } else {
- return ERROR_OPEN_FAILED;
+ result = ERROR_SUCCESS;
}
+
+ // Regardless of what just happened, shut down crash reporting now to avoid a
+ // hang when we are unloaded.
+ ShutdownCrashReporting();
+
+ return result;
}
// Compile-time check to see that the type CfLaunchChromeProc is correct.