summaryrefslogtreecommitdiffstats
path: root/chrome_frame/crash_reporting
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-09 01:09:28 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-09 01:09:28 +0000
commit7bc272f38646abb81b58c89a59d8e6842f9e9631 (patch)
tree8e3c884ad1549c445e86925df673fcd0d8285d1d /chrome_frame/crash_reporting
parent0923559a1a020690c1d199fda3c55f67d2d54335 (diff)
downloadchromium_src-7bc272f38646abb81b58c89a59d8e6842f9e9631.zip
chromium_src-7bc272f38646abb81b58c89a59d8e6842f9e9631.tar.gz
chromium_src-7bc272f38646abb81b58c89a59d8e6842f9e9631.tar.bz2
Added support for running reliability tests for ChromeFrame on similar lines as Chrome. We only run these
tests for IE at this point. The reliability test code for Chrome has been copied and modified accordingly. Other related changes in this CL include the following:- 1. If ChromeFrame is running in headless mode determined by a registry value in HKCU\Software\Google\ChromeFrame we initialize ChromeFrame crash reporting and connect to the Chrome crash server. This would enable us to gather crash dumps from the reliability test runs and report the same. 2. The LowIntegrity fixes for the WebBrowser which Stoyan had done a while back are only needed for IE7 on Vista. For this CL though we just do the requisite hacks if the OS is Vista. For Windows7 the returned IWebBrowser interface pointer works fine. 3. I moved the WebBrowserEventSink to chrome_frame_test_utils as this class is now shared. Fixes portions of http://code.google.com/p/chromium/issues/detail?id=29451 Bug=29451 Review URL: http://codereview.chromium.org/465074 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34119 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/crash_reporting')
-rw-r--r--chrome_frame/crash_reporting/crash_report.cc16
1 files changed, 14 insertions, 2 deletions
diff --git a/chrome_frame/crash_reporting/crash_report.cc b/chrome_frame/crash_reporting/crash_report.cc
index 1c594c5..f858941 100644
--- a/chrome_frame/crash_reporting/crash_report.cc
+++ b/chrome_frame/crash_reporting/crash_report.cc
@@ -1,3 +1,4 @@
+
// Copyright (c) 2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -10,10 +11,13 @@
#include "breakpad/src/client/windows/handler/exception_handler.h"
#include "chrome_frame/crash_reporting/vectored_handler.h"
#include "chrome_frame/crash_reporting/vectored_handler-impl.h"
+#include "chrome_frame/utils.h"
namespace {
// TODO(joshia): factor out common code with chrome used for crash reporting
const wchar_t kGoogleUpdatePipeName[] = L"\\\\.\\pipe\\GoogleCrashServices\\";
+const wchar_t kChromePipeName[] = L"\\\\.\\pipe\\ChromeCrashServices";
+
google_breakpad::ExceptionHandler* g_breakpad = NULL;
__declspec(naked)
@@ -56,6 +60,15 @@ class Win32VEHTraits : public VEHTraitsBase {
extern "C" IMAGE_DOS_HEADER __ImageBase;
+std::wstring GetCrashServerPipeName(const std::wstring& user_sid) {
+ if (IsHeadlessMode())
+ return kChromePipeName;
+
+ std::wstring pipe_name = kGoogleUpdatePipeName;
+ pipe_name += user_sid;
+ return pipe_name;
+}
+
bool InitializeVectoredCrashReporting(
bool full_dump,
const wchar_t* user_sid,
@@ -66,8 +79,7 @@ bool InitializeVectoredCrashReporting(
if (g_breakpad)
return true;
- std::wstring pipe_name(kGoogleUpdatePipeName);
- pipe_name += user_sid;
+ std::wstring pipe_name = GetCrashServerPipeName(user_sid);
if (dump_path.empty()) {
return false;