|  | // Copyright 2017 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. | 
|  |  | 
|  | #ifndef COMPONENTS_CRASH_CONTENT_APP_FALLBACK_CRASH_HANDLING_WIN_H_ | 
|  | #define COMPONENTS_CRASH_CONTENT_APP_FALLBACK_CRASH_HANDLING_WIN_H_ | 
|  |  | 
|  | #include <stdint.h> | 
|  | #include <string> | 
|  |  | 
|  | #include "base/command_line.h" | 
|  |  | 
|  | namespace crash_reporter { | 
|  |  | 
|  | namespace switches { | 
|  | extern const char kFallbackCrashHandler[]; | 
|  | // The fallback handler uses the same prefetch ID as the Crashpad handler. | 
|  | extern const char kPrefetchArgument[]; | 
|  | } | 
|  |  | 
|  | // A somewhat unique exit code for the crashed process. This is mostly | 
|  | // for testing, as there won't likely be anyone around to record the exit | 
|  | // code of the Crashpad handler. | 
|  | extern const uint32_t kFallbackCrashTerminationCode; | 
|  |  | 
|  | // Sets up fallback crash handling for this process. | 
|  | // Note that this installs an unhandled exception filter, and requires | 
|  | // that the executable call the "RunAsFallbackCrashHandler" function, when | 
|  | // it's passed a --type switch with the value |kFallbackCrashHandlerType|. | 
|  | bool SetupFallbackCrashHandling(const base::CommandLine& command_line); | 
|  |  | 
|  | // Runs the fallback crash handler process, to handle a crash in a process | 
|  | // that's previously called SetupFallbackCrashHandling. | 
|  | // The |product_name|, |version| and |channel_name| parameters will be used | 
|  | // as properties of the crash for the purposes of upload. | 
|  | int RunAsFallbackCrashHandler(const base::CommandLine& command_line, | 
|  | std::string product_name, | 
|  | std::string version, | 
|  | std::string channel_name); | 
|  |  | 
|  | }  // namespace crash_reporter | 
|  |  | 
|  | #endif  // COMPONENTS_CRASH_CONTENT_APP_FALLBACK_CRASH_HANDLING_WIN_H_ |