1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_FRAME_CRASH_SERVER_INIT_H_
6#define CHROME_FRAME_CRASH_SERVER_INIT_H_
7
8#include "breakpad/src/client/windows/handler/exception_handler.h"
9
10// Possible names for Pipes:
11// Headless (testing) mode: "NamedPipe\ChromeCrashServices"
12// System-wide install: "NamedPipe\GoogleCrashServices\S-1-5-18"
13// Per-user install: "NamedPipe\GoogleCrashServices\<user SID>"
14extern const wchar_t kChromePipeName[];
15extern const wchar_t kGoogleUpdatePipeName[];
16extern const wchar_t kSystemPrincipalSid[];
17
18extern const MINIDUMP_TYPE kLargerDumpType;
19
20enum CrashReportingMode {
21  HEADLESS,  // Used for testing, uses crash_service.exe for dumps.
22  NORMAL     // Regular mode, uses GoogleCrashService.exe for dumps.
23};
24
25// Returns a pointer to a static instance of a CustomClientInfo structure
26// containing Chrome Frame specific data.
27google_breakpad::CustomClientInfo* GetCustomInfo();
28
29// Initializes breakpad crash reporting and returns a pointer to a newly
30// constructed ExceptionHandler object. It is the responsibility of the caller
31// to delete this object which will shut down the crash reporting machinery.
32google_breakpad::ExceptionHandler* InitializeCrashReporting(
33    CrashReportingMode mode);
34
35#endif  // CHROME_FRAME_CRASH_SERVER_INIT_H_
36