text: // Copyright (c) 2012 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 CHROME_APP_BREAKPAD_LINUX_H_
  #define CHROME_APP_BREAKPAD_LINUX_H_
  
  #include "base/basictypes.h"
  
  extern void InitCrashReporter();
  bool IsCrashReporterEnabled();
  
  static const size_t kMaxActiveURLSize = 1024;
  static const size_t kGuidSize = 32;  // 128 bits = 32 chars in hex.
  static const size_t kDistroSize = 128;
  #if defined(ADDRESS_SANITIZER)
  static const size_t kMaxAsanReportSize = 1 << 16;
  #endif
  
  struct BreakpadInfo {
    const char* filename;            // Path to the Breakpad dump data.
  #if defined(ADDRESS_SANITIZER)
    const char* log_filename;        // Path to the ASan log file.
    const char* asan_report_str;     // ASan report.
    unsigned asan_report_length;     // Length of |asan_report_length|.
  #endif
    const char* process_type;        // Process type, e.g. "renderer".
    unsigned process_type_length;    // Length of |process_type|.
    const char* crash_url;           // Active URL in the crashing process.
    unsigned crash_url_length;       // Length of |crash_url|.
    const char* guid;                // Client ID.
    unsigned guid_length;            // Length of |guid|.
    const char* distro;              // Linux distro string.
    unsigned distro_length;          // Length of |distro|.
    bool upload;                     // Whether to upload or save crash dump.
    uint64_t process_start_time;     // Uptime of the crashing process.
    size_t oom_size;                 // Amount of memory requested if OOM.
    uint64_t pid;                    // PID where applicable.
  };
  
  extern void HandleCrashDump(const BreakpadInfo& info);
  
  #endif  // CHROME_APP_BREAKPAD_LINUX_H_
  