diff options
37 files changed, 231 insertions, 158 deletions
diff --git a/PRESUBMIT.py b/PRESUBMIT.py index 7fe7f30..91748c2 100644 --- a/PRESUBMIT.py +++ b/PRESUBMIT.py @@ -157,7 +157,7 @@ _BANNED_CPP_FUNCTIONS = ( ), True, ( - r"^components[\\\/]breakpad[\\\/]breakpad_mac\.mm$", + r"^components[\\\/]breakpad[\\\/]app[\\\/]breakpad_mac\.mm$", r"^content[\\\/]shell[\\\/]browser[\\\/]shell_browser_main\.cc$", r"^content[\\\/]shell[\\\/]browser[\\\/]shell_message_filter\.cc$", r"^net[\\\/]disk_cache[\\\/]cache_util\.cc$", diff --git a/chrome/app/DEPS b/chrome/app/DEPS index 24aa874..57e43d9 100644 --- a/chrome/app/DEPS +++ b/chrome/app/DEPS @@ -19,5 +19,4 @@ include_rules = [ "+policy", # For generated headers and source "+sandbox", "+tools/memory_watcher", - "+third_party/lss/linux_syscall_support.h", ] diff --git a/chrome/app/chrome_breakpad_client.h b/chrome/app/chrome_breakpad_client.h index 3636a22..78f54f6 100644 --- a/chrome/app/chrome_breakpad_client.h +++ b/chrome/app/chrome_breakpad_client.h @@ -7,7 +7,7 @@ #include "base/basictypes.h" #include "base/compiler_specific.h" -#include "components/breakpad/breakpad_client.h" +#include "components/breakpad/app/breakpad_client.h" namespace chrome { diff --git a/chrome/app/chrome_exe_main_win.cc b/chrome/app/chrome_exe_main_win.cc index dedf967..ecbb599 100644 --- a/chrome/app/chrome_exe_main_win.cc +++ b/chrome/app/chrome_exe_main_win.cc @@ -18,8 +18,8 @@ #include "chrome/browser/policy/policy_path_parser.h" #include "chrome/common/chrome_paths_internal.h" #include "chrome/common/chrome_switches.h" -#include "components/breakpad/breakpad_client.h" -#include "components/breakpad/breakpad_win.h" +#include "components/breakpad/app/breakpad_client.h" +#include "components/breakpad/app/breakpad_win.h" #include "content/public/app/startup_helper_win.h" #include "content/public/common/result_codes.h" #include "sandbox/win/src/sandbox_factory.h" diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc index bcb1e34..ae7cdaa 100644 --- a/chrome/app/chrome_main_delegate.cc +++ b/chrome/app/chrome_main_delegate.cc @@ -59,7 +59,7 @@ #include "chrome/common/chrome_paths_internal.h" #include "chrome/common/mac/cfbundle_blocker.h" #include "chrome/common/mac/objc_zombie.h" -#include "components/breakpad/breakpad_mac.h" +#include "components/breakpad/app/breakpad_mac.h" #include "grit/chromium_strings.h" #include "ui/base/l10n/l10n_util_mac.h" #endif @@ -68,7 +68,7 @@ #include <locale.h> #include <signal.h> #include "chrome/app/chrome_breakpad_client.h" -#include "components/breakpad/breakpad_client.h" +#include "components/breakpad/app/breakpad_client.h" #endif #if !defined(DISABLE_NACL) && defined(OS_LINUX) @@ -98,7 +98,7 @@ #endif #if defined(OS_POSIX) && !defined(OS_MACOSX) -#include "chrome/app/breakpad_linux.h" +#include "components/breakpad/app/breakpad_linux.h" #endif #if !defined(CHROME_MULTIPLE_DLL_CHILD) @@ -739,9 +739,9 @@ void ChromeMainDelegate::PreSandboxStartup() { // need to call InitCrashReporter() in RunZygote(). if (!process_type.empty() && process_type != switches::kZygoteProcess) { #if defined(OS_ANDROID) - InitNonBrowserCrashReporterForAndroid(); + breakpad::InitNonBrowserCrashReporterForAndroid(); #else - InitCrashReporter(); + breakpad::InitCrashReporter(); #endif } #endif @@ -845,7 +845,7 @@ void ChromeMainDelegate::ZygoteForked() { #if defined(OS_POSIX) && !defined(OS_MACOSX) // Needs to be called after we have chrome::DIR_USER_DATA. BrowserMain sets // this up for the browser process in a different manner. - InitCrashReporter(); + breakpad::InitCrashReporter(); // Reset the command line for the newly spawned process. crash_keys::SetSwitchesFromCommandLine(CommandLine::ForCurrentProcess()); diff --git a/chrome/app/client_util.cc b/chrome/app/client_util.cc index 256af5d..e3d495e 100644 --- a/chrome/app/client_util.cc +++ b/chrome/app/client_util.cc @@ -31,7 +31,7 @@ #include "chrome/installer/util/google_update_settings.h" #include "chrome/installer/util/install_util.h" #include "chrome/installer/util/util_constants.h" -#include "components/breakpad/breakpad_win.h" +#include "components/breakpad/app/breakpad_win.h" namespace { // The entry point signature of chrome.dll. diff --git a/chrome/browser/chrome_browser_main_android.cc b/chrome/browser/chrome_browser_main_android.cc index 5bccdd5..0acfb7e 100644 --- a/chrome/browser/chrome_browser_main_android.cc +++ b/chrome/browser/chrome_browser_main_android.cc @@ -8,10 +8,10 @@ #include "base/debug/trace_event.h" #include "base/path_service.h" #include "cc/base/switches.h" -#include "chrome/app/breakpad_linux.h" -#include "chrome/browser/android/crash_dump_manager.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" +#include "components/breakpad/app/breakpad_linux.h" +#include "components/breakpad/browser/crash_dump_manager_android.h" #include "content/public/browser/android/compositor.h" #include "content/public/common/main_function_params.h" #include "net/android/network_change_notifier_factory_android.h" @@ -44,10 +44,10 @@ void ChromeBrowserMainPartsAndroid::PreProfileInit() { switches::kEnableCrashReporterForTesting); if (breakpad_enabled) { - InitCrashReporter(); + breakpad::InitCrashReporter(); base::FilePath crash_dump_dir; PathService::Get(chrome::DIR_CRASH_DUMPS, &crash_dump_dir); - crash_dump_manager_.reset(new CrashDumpManager(crash_dump_dir)); + crash_dump_manager_.reset(new breakpad::CrashDumpManager(crash_dump_dir)); } ChromeBrowserMainParts::PreProfileInit(); diff --git a/chrome/browser/chrome_browser_main_android.h b/chrome/browser/chrome_browser_main_android.h index b498db5..a7f31a9 100644 --- a/chrome/browser/chrome_browser_main_android.h +++ b/chrome/browser/chrome_browser_main_android.h @@ -7,7 +7,9 @@ #include "chrome/browser/chrome_browser_main.h" +namespace breakpad { class CrashDumpManager; +} class ChromeBrowserMainPartsAndroid : public ChromeBrowserMainParts { public: @@ -24,7 +26,7 @@ class ChromeBrowserMainPartsAndroid : public ChromeBrowserMainParts { private: scoped_ptr<base::MessageLoop> main_message_loop_; - scoped_ptr<CrashDumpManager> crash_dump_manager_; + scoped_ptr<breakpad::CrashDumpManager> crash_dump_manager_; DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainPartsAndroid); }; diff --git a/chrome/browser/chrome_browser_main_linux.cc b/chrome/browser/chrome_browser_main_linux.cc index 5e0cf2a..835afa4 100644 --- a/chrome/browser/chrome_browser_main_linux.cc +++ b/chrome/browser/chrome_browser_main_linux.cc @@ -9,12 +9,12 @@ #include "base/command_line.h" #include "base/linux_util.h" #include "base/prefs/pref_service.h" -#include "chrome/app/breakpad_linux.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/metrics/metrics_service.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/env_vars.h" #include "chrome/common/pref_names.h" +#include "components/breakpad/app/breakpad_linux.h" #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/settings/cros_settings.h" @@ -122,7 +122,7 @@ void ChromeBrowserMainPartsLinux::PreProfileInit() { #endif if (IsCrashReportingEnabled(local_state())) - InitCrashReporter(); + breakpad::InitCrashReporter(); ChromeBrowserMainPartsPosix::PreProfileInit(); } @@ -131,5 +131,5 @@ void ChromeBrowserMainPartsLinux::PostProfileInit() { ChromeBrowserMainPartsPosix::PostProfileInit(); g_browser_process->metrics_service()->RecordBreakpadRegistration( - IsCrashReporterEnabled()); + breakpad::IsCrashReporterEnabled()); } diff --git a/chrome/browser/chrome_browser_main_mac.mm b/chrome/browser/chrome_browser_main_mac.mm index 98b225e..1cea6af 100644 --- a/chrome/browser/chrome_browser_main_mac.mm +++ b/chrome/browser/chrome_browser_main_mac.mm @@ -23,7 +23,7 @@ #include "chrome/browser/metrics/metrics_service.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" -#include "components/breakpad/breakpad_mac.h" +#include "components/breakpad/app/breakpad_mac.h" #include "content/public/common/main_function_params.h" #include "content/public/common/result_codes.h" #include "ui/base/l10n/l10n_util_mac.h" diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index 035335d..d6e754e 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc @@ -152,7 +152,7 @@ #elif defined(OS_MACOSX) #include "chrome/browser/chrome_browser_main_mac.h" #include "chrome/browser/spellchecker/spellcheck_message_filter_mac.h" -#include "components/breakpad/breakpad_mac.h" +#include "components/breakpad/app/breakpad_mac.h" #elif defined(OS_CHROMEOS) #include "chrome/browser/chromeos/chrome_browser_main_chromeos.h" #include "chrome/browser/chromeos/drive/file_system_backend_delegate.h" @@ -164,11 +164,11 @@ #elif defined(OS_LINUX) #include "chrome/browser/chrome_browser_main_linux.h" #elif defined(OS_ANDROID) -#include "chrome/browser/android/crash_dump_manager.h" #include "chrome/browser/android/webapps/single_tab_mode_tab_helper.h" #include "chrome/browser/chrome_browser_main_android.h" #include "chrome/browser/media/encrypted_media_message_filter_android.h" #include "chrome/common/descriptors_android.h" +#include "components/breakpad/browser/crash_dump_manager_android.h" #elif defined(OS_POSIX) #include "chrome/browser/chrome_browser_main_posix.h" #endif @@ -176,8 +176,8 @@ #if defined(OS_POSIX) && !defined(OS_MACOSX) #include "base/debug/leak_annotations.h" #include "base/linux_util.h" -#include "chrome/app/breakpad_linux.h" -#include "chrome/browser/crash_handler_host_linux.h" +#include "components/breakpad/app/breakpad_linux.h" +#include "components/breakpad/browser/crash_handler_host_linux.h" #endif #if defined(ENABLE_CAPTIVE_PORTAL_DETECTION) @@ -254,10 +254,6 @@ using extensions::Extension; using extensions::Manifest; using message_center::NotifierId; -#if defined(OS_MACOSX) -using breakpad::IsCrashReporterEnabled; -#endif - namespace { // Cached version of the locale so we can return the locale on the I/O @@ -495,13 +491,15 @@ void FillFontFamilyMap(const PrefService* prefs, } #if defined(OS_POSIX) && !defined(OS_MACOSX) -CrashHandlerHostLinux* CreateCrashHandlerHost(const std::string& process_type) { +breakpad::CrashHandlerHostLinux* CreateCrashHandlerHost( + const std::string& process_type) { base::FilePath dumps_path; PathService::Get(chrome::DIR_CRASH_DUMPS, &dumps_path); { ANNOTATE_SCOPED_MEMORY_LEAK; - CrashHandlerHostLinux* crash_handler = new CrashHandlerHostLinux( - process_type, dumps_path, getenv(env_vars::kHeadless) == NULL); + breakpad::CrashHandlerHostLinux* crash_handler = + new breakpad::CrashHandlerHostLinux( + process_type, dumps_path, getenv(env_vars::kHeadless) == NULL); crash_handler->StartUploaderThread(); return crash_handler; } @@ -509,7 +507,7 @@ CrashHandlerHostLinux* CreateCrashHandlerHost(const std::string& process_type) { int GetCrashSignalFD(const CommandLine& command_line) { if (command_line.HasSwitch(switches::kExtensionProcess)) { - static CrashHandlerHostLinux* crash_handler = NULL; + static breakpad::CrashHandlerHostLinux* crash_handler = NULL; if (!crash_handler) crash_handler = CreateCrashHandlerHost("extension"); return crash_handler->GetDeathSignalSocket(); @@ -519,28 +517,28 @@ int GetCrashSignalFD(const CommandLine& command_line) { command_line.GetSwitchValueASCII(switches::kProcessType); if (process_type == switches::kRendererProcess) { - static CrashHandlerHostLinux* crash_handler = NULL; + static breakpad::CrashHandlerHostLinux* crash_handler = NULL; if (!crash_handler) crash_handler = CreateCrashHandlerHost(process_type); return crash_handler->GetDeathSignalSocket(); } if (process_type == switches::kPluginProcess) { - static CrashHandlerHostLinux* crash_handler = NULL; + static breakpad::CrashHandlerHostLinux* crash_handler = NULL; if (!crash_handler) crash_handler = CreateCrashHandlerHost(process_type); return crash_handler->GetDeathSignalSocket(); } if (process_type == switches::kPpapiPluginProcess) { - static CrashHandlerHostLinux* crash_handler = NULL; + static breakpad::CrashHandlerHostLinux* crash_handler = NULL; if (!crash_handler) crash_handler = CreateCrashHandlerHost(process_type); return crash_handler->GetDeathSignalSocket(); } if (process_type == switches::kGpuProcess) { - static CrashHandlerHostLinux* crash_handler = NULL; + static breakpad::CrashHandlerHostLinux* crash_handler = NULL; if (!crash_handler) crash_handler = CreateCrashHandlerHost(process_type); return crash_handler->GetDeathSignalSocket(); @@ -1366,7 +1364,7 @@ std::string ChromeContentBrowserClient::GetCanonicalEncodingNameByAliasName( void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( CommandLine* command_line, int child_process_id) { #if defined(OS_POSIX) - if (IsCrashReporterEnabled()) { + if (breakpad::IsCrashReporterEnabled()) { std::string enable_crash_reporter; GoogleUpdateSettings::GetMetricsId(&enable_crash_reporter); #if !defined(OS_MACOSX) @@ -2530,8 +2528,9 @@ void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess( mappings->push_back(FileDescriptorInfo(kAndroidUIResourcesPakDescriptor, FileDescriptor(f, true))); - if (IsCrashReporterEnabled()) { - f = CrashDumpManager::GetInstance()->CreateMinidumpFile(child_process_id); + if (breakpad::IsCrashReporterEnabled()) { + f = breakpad::CrashDumpManager::GetInstance()->CreateMinidumpFile( + child_process_id); if (f == base::kInvalidPlatformFileValue) { LOG(ERROR) << "Failed to create file for minidump, crash reporting will " "be disabled for this process."; diff --git a/chrome/browser/chromeos/login/wizard_controller.cc b/chrome/browser/chromeos/login/wizard_controller.cc index cbc3012..61a6556 100644 --- a/chrome/browser/chromeos/login/wizard_controller.cc +++ b/chrome/browser/chromeos/login/wizard_controller.cc @@ -19,7 +19,6 @@ #include "base/prefs/pref_service.h" #include "base/threading/thread_restrictions.h" #include "base/values.h" -#include "chrome/app/breakpad_linux.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" @@ -58,6 +57,7 @@ #include "chromeos/dbus/session_manager_client.h" #include "chromeos/network/network_state_handler.h" #include "chromeos/settings/cros_settings_names.h" +#include "components/breakpad/app/breakpad_linux.h" #include "content/public/browser/browser_thread.h" #include "ui/base/accelerators/accelerator.h" #include "ui/base/l10n/l10n_util.h" @@ -482,7 +482,7 @@ void WizardController::OnEulaAccepted() { #if defined(GOOGLE_CHROME_BUILD) // The crash reporter initialization needs IO to complete. base::ThreadRestrictions::ScopedAllowIO allow_io; - InitCrashReporter(); + breakpad::InitCrashReporter(); #endif } diff --git a/chrome/browser/ui/cocoa/first_run_dialog.mm b/chrome/browser/ui/cocoa/first_run_dialog.mm index 2ffa267..4117e62 100644 --- a/chrome/browser/ui/cocoa/first_run_dialog.mm +++ b/chrome/browser/ui/cocoa/first_run_dialog.mm @@ -29,7 +29,7 @@ #include "chrome/browser/browser_process.h" #include "chrome/common/pref_names.h" #include "chrome/installer/util/google_update_settings.h" -#import "components/breakpad/breakpad_mac.h" +#import "components/breakpad/app/breakpad_mac.h" #endif @interface FirstRunDialogController (PrivateMethods) diff --git a/chrome/browser/ui/gtk/first_run_dialog.cc b/chrome/browser/ui/gtk/first_run_dialog.cc index eca4ef29..8480f31 100644 --- a/chrome/browser/ui/gtk/first_run_dialog.cc +++ b/chrome/browser/ui/gtk/first_run_dialog.cc @@ -10,7 +10,6 @@ #include "base/i18n/rtl.h" #include "base/message_loop/message_loop.h" #include "base/strings/utf_string_conversions.h" -#include "chrome/app/breakpad_linux.h" #include "chrome/browser/first_run/first_run_dialog.h" #include "chrome/browser/platform_util.h" #include "chrome/browser/process_singleton.h" @@ -20,6 +19,7 @@ #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "chrome/installer/util/google_update_settings.h" +#include "components/breakpad/app/breakpad_linux.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" #include "grit/locale_settings.h" @@ -164,7 +164,7 @@ void FirstRunDialog::OnResponseDialog(GtkWidget* widget, int response) { if (report_crashes_ && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(report_crashes_))) { if (GoogleUpdateSettings::SetCollectStatsConsent(true)) - InitCrashReporter(); + breakpad::InitCrashReporter(); } else { GoogleUpdateSettings::SetCollectStatsConsent(false); } diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index a1e3bd2..56e347f 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -103,8 +103,6 @@ 'browser/android/chromium_application.h', 'browser/android/content_view_util.cc', 'browser/android/content_view_util.h', - 'browser/android/crash_dump_manager.cc', - 'browser/android/crash_dump_manager.h', 'browser/android/dev_tools_server.cc', 'browser/android/dev_tools_server.h', 'browser/android/favicon_helper.cc', @@ -3043,23 +3041,12 @@ }], ['os_posix == 1 and OS != "mac" and OS != "ios"', { 'sources': [ - 'app/breakpad_linux.cc', - 'app/breakpad_linux.h', 'app/chrome_breakpad_client.cc', 'app/chrome_breakpad_client.h', - 'browser/crash_handler_host_linux.cc', - 'browser/crash_handler_host_linux.h', ], 'dependencies': [ - '../breakpad/breakpad.gyp:breakpad_client', '../components/components.gyp:breakpad_component', - # make sure file_version_info_linux.h is generated first. - 'common', - ], - 'include_dirs': [ - # breakpad_linux.cc uses generated file_version_info_linux.h. - '<(SHARED_INTERMEDIATE_DIR)', - '../breakpad/src', + '../components/components.gyp:breakpad_host', ], }], ['use_nss==1', { @@ -3508,16 +3495,6 @@ ] }] ], - 'target_conditions': [ - # Need 'target_conditions' to override default filename_rules to include - # the files on Android. - ['OS=="android"', { - 'sources/': [ - ['include', '^app/breakpad_linux\\.cc$'], - ['include', '^browser/crash_handler_host_linux\\.cc$'], - ], - }], - ], }, { # Protobuf compiler / generator for the fraudulent certificate reporting diff --git a/chrome/nacl/nacl_exe_win_64.cc b/chrome/nacl/nacl_exe_win_64.cc index ee2a931..f6bd902 100644 --- a/chrome/nacl/nacl_exe_win_64.cc +++ b/chrome/nacl/nacl_exe_win_64.cc @@ -16,8 +16,8 @@ #include "chrome/app/chrome_breakpad_client.h" #include "chrome/common/chrome_result_codes.h" #include "chrome/common/logging_chrome.h" -#include "components/breakpad/breakpad_client.h" -#include "components/breakpad/breakpad_win.h" +#include "components/breakpad/app/breakpad_client.h" +#include "components/breakpad/app/breakpad_win.h" #include "components/nacl/broker/nacl_broker_listener.h" #include "components/nacl/common/nacl_switches.h" #include "components/nacl/loader/nacl_listener.h" diff --git a/components/breakpad.gypi b/components/breakpad.gypi index f7bdd98..124e56c 100644 --- a/components/breakpad.gypi +++ b/components/breakpad.gypi @@ -9,21 +9,28 @@ }, 'target_conditions': [ ['breakpad_component_target==1', { + 'defines': ['BREAKPAD_IMPLEMENTATION'], 'sources': [ - 'breakpad/breakpad_client.cc', - 'breakpad/breakpad_client.h', - 'breakpad/breakpad_mac.h', - 'breakpad/breakpad_mac.mm', - 'breakpad/breakpad_win.cc', - 'breakpad/breakpad_win.h', - 'breakpad/hard_error_handler_win.cc', - 'breakpad/hard_error_handler_win.h', + 'breakpad/app/breakpad_client.cc', + 'breakpad/app/breakpad_client.h', + 'breakpad/app/breakpad_linux.cc', + 'breakpad/app/breakpad_linux.h', + 'breakpad/app/breakpad_linux_impl.h', + 'breakpad/app/breakpad_mac.h', + 'breakpad/app/breakpad_mac.mm', + 'breakpad/app/breakpad_win.cc', + 'breakpad/app/breakpad_win.h', + 'breakpad/app/hard_error_handler_win.cc', + 'breakpad/app/hard_error_handler_win.h', ], }], ], }, 'targets': [ { + # Note: if you depend on this target, you need to either link in + # content.gyp:content_common, or add + # content/public/common/content_switches.cc to your sources. 'target_name': 'breakpad_component', 'type': 'static_library', 'variables': { @@ -36,7 +43,6 @@ ['OS=="mac"', { 'dependencies': [ '../breakpad/breakpad.gyp:breakpad', - '../content/content.gyp:content_common', ], }], ['OS=="win"', { @@ -46,6 +52,23 @@ '../sandbox/sandbox.gyp:sandbox', ], }], + ['os_posix == 1 and OS != "mac" and OS != "ios"', { + 'dependencies': [ + '../breakpad/breakpad.gyp:breakpad_client', + ], + 'include_dirs': [ + '../breakpad/src', + ], + }], + ], + 'target_conditions': [ + # Need 'target_conditions' to override default filename_rules to include + # the files on Android. + ['OS=="android"', { + 'sources/': [ + ['include', '^breakpad/app/breakpad_linux\\.cc$'], + ], + }], ], }, ], @@ -70,6 +93,9 @@ ['OS=="win" and target_arch=="ia32"', { 'targets': [ { + # Note: if you depend on this target, you need to either link in + # content.gyp:content_common, or add + # content/public/common/content_switches.cc to your sources. 'target_name': 'breakpad_win64', 'type': 'static_library', 'variables': { @@ -116,10 +142,43 @@ '../base/base.gyp:base', ], 'sources': [ - 'breakpad/breakpad_client.cc', - 'breakpad/breakpad_client.h', - 'breakpad/breakpad_mac.h', - 'breakpad/breakpad_mac_stubs.mm', + 'breakpad/app/breakpad_client.cc', + 'breakpad/app/breakpad_client.h', + 'breakpad/app/breakpad_mac.h', + 'breakpad/app/breakpad_mac_stubs.mm', + ], + }, + ], + }], + ['os_posix == 1 and OS != "mac" and OS != "ios"', { + 'targets': [ + { + 'target_name': 'breakpad_host', + 'type': 'static_library', + 'dependencies': [ + 'breakpad_component', + '../base/base.gyp:base', + '../breakpad/breakpad.gyp:breakpad_client', + '../content/content.gyp:content_browser', + '../content/content.gyp:content_common', + ], + 'sources': [ + 'breakpad/browser/crash_dump_manager_android.cc', + 'breakpad/browser/crash_dump_manager_android.h', + 'breakpad/browser/crash_handler_host_linux.cc', + 'breakpad/browser/crash_handler_host_linux.h', + ], + 'include_dirs': [ + '../breakpad/src', + ], + 'target_conditions': [ + # Need 'target_conditions' to override default filename_rules to include + # the files on Android. + ['OS=="android"', { + 'sources/': [ + ['include', '^breakpad/browser/crash_handler_host_linux\\.cc$'], + ], + }], ], }, ], diff --git a/components/breakpad/DEPS b/components/breakpad/DEPS index 2609cf2..9ebc497 100644 --- a/components/breakpad/DEPS +++ b/components/breakpad/DEPS @@ -1,4 +1,3 @@ include_rules = [ "+breakpad", - "+sandbox", ] diff --git a/components/breakpad/app/DEPS b/components/breakpad/app/DEPS new file mode 100644 index 0000000..1ee965e --- /dev/null +++ b/components/breakpad/app/DEPS @@ -0,0 +1,9 @@ +include_rules = [ + "+sandbox", + + "-content/public/common", + "+content/public/common/content_descriptors.h", + "+content/public/common/content_switches.h", + "+content/public/common/result_codes.h", + "+third_party/lss/linux_syscall_support.h", +] diff --git a/components/breakpad/breakpad_client.cc b/components/breakpad/app/breakpad_client.cc index 26ba755..0c488da 100644 --- a/components/breakpad/breakpad_client.cc +++ b/components/breakpad/app/breakpad_client.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/breakpad/breakpad_client.h" +#include "components/breakpad/app/breakpad_client.h" #include "base/files/file_path.h" #include "base/logging.h" diff --git a/components/breakpad/breakpad_client.h b/components/breakpad/app/breakpad_client.h index 621ea1b..6a514d0 100644 --- a/components/breakpad/breakpad_client.h +++ b/components/breakpad/app/breakpad_client.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_BREAKPAD_BREAKPAD_CLIENT_H_ -#define COMPONENTS_BREAKPAD_BREAKPAD_CLIENT_H_ +#ifndef COMPONENTS_BREAKPAD_APP_BREAKPAD_CLIENT_H_ +#define COMPONENTS_BREAKPAD_APP_BREAKPAD_CLIENT_H_ #include <string> @@ -33,8 +33,10 @@ class BreakpadClient; // breakpad code is called, and should stay alive throughout the entire runtime. void SetBreakpadClient(BreakpadClient* client); +#if defined(BREAKPAD_IMPLEMENTATION) // Breakpad's embedder API should only be used by breakpad. BreakpadClient* GetBreakpadClient(); +#endif // Interface that the embedder implements. class BreakpadClient { @@ -139,4 +141,4 @@ class BreakpadClient { } // namespace breakpad -#endif // COMPONENTS_BREAKPAD_BREAKPAD_CLIENT_H_ +#endif // COMPONENTS_BREAKPAD_APP_BREAKPAD_CLIENT_H_ diff --git a/chrome/app/breakpad_linux.cc b/components/breakpad/app/breakpad_linux.cc index 0faef76..01bfcdd 100644 --- a/chrome/app/breakpad_linux.cc +++ b/components/breakpad/app/breakpad_linux.cc @@ -1,11 +1,11 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2013 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. // For linux_syscall_support.h. This makes it safe to call embedded system // calls when in seccomp mode. -#include "chrome/app/breakpad_linux.h" +#include "components/breakpad/app/breakpad_linux.h" #include <fcntl.h> #include <poll.h> @@ -37,8 +37,8 @@ #include "breakpad/src/client/linux/minidump_writer/directory_reader.h" #include "breakpad/src/common/linux/linux_libc_support.h" #include "breakpad/src/common/memory.h" -#include "chrome/app/breakpad_linux_impl.h" -#include "components/breakpad/breakpad_client.h" +#include "components/breakpad/app/breakpad_client.h" +#include "components/breakpad/app/breakpad_linux_impl.h" #include "content/public/common/content_descriptors.h" #include "content/public/common/content_switches.h" @@ -72,6 +72,8 @@ using google_breakpad::ExceptionHandler; using google_breakpad::MinidumpDescriptor; +namespace breakpad { + namespace { #if !defined(OS_CHROMEOS) @@ -209,11 +211,10 @@ void SetClientIdFromCommandLine(const CommandLine& command_line) { command_line.GetSwitchValueASCII(switches::kEnableCrashReporter); size_t separator = switch_value.find(","); if (separator != std::string::npos) { - breakpad::GetBreakpadClient()->SetClientID( - switch_value.substr(0, separator)); + GetBreakpadClient()->SetClientID(switch_value.substr(0, separator)); base::SetLinuxDistro(switch_value.substr(separator + 1)); } else { - breakpad::GetBreakpadClient()->SetClientID(switch_value); + GetBreakpadClient()->SetClientID(switch_value); } } @@ -634,9 +635,9 @@ void EnableCrashDumping(bool unattended) { PathService::Get(base::DIR_TEMP, &tmp_path); base::FilePath dumps_path(tmp_path); - if (breakpad::GetBreakpadClient()->GetCrashDumpLocation(&dumps_path)) { - base::FilePath logfile = dumps_path.Append( - breakpad::GetBreakpadClient()->GetReporterLogFilename()); + if (GetBreakpadClient()->GetCrashDumpLocation(&dumps_path)) { + base::FilePath logfile = + dumps_path.Append(GetBreakpadClient()->GetReporterLogFilename()); std::string logfile_str = logfile.value(); const size_t crash_log_path_len = logfile_str.size() + 1; g_crash_log_path = new char[crash_log_path_len]; @@ -1166,8 +1167,7 @@ void HandleCrashDump(const BreakpadInfo& info) { std::string product_name; std::string version; - breakpad::GetBreakpadClient()->GetProductNameAndVersion(&product_name, - &version); + GetBreakpadClient()->GetProductNameAndVersion(&product_name, &version); writer.AddBoundary(); writer.AddPairString("prod", product_name.c_str()); @@ -1452,7 +1452,7 @@ void InitCrashReporter() { const std::string process_type = parsed_command_line.GetSwitchValueASCII(switches::kProcessType); if (process_type.empty()) { - EnableCrashDumping(breakpad::GetBreakpadClient()->IsRunningUnattended()); + EnableCrashDumping(GetBreakpadClient()->IsRunningUnattended()); } else if (process_type == switches::kRendererProcess || process_type == switches::kPluginProcess || process_type == switches::kPpapiPluginProcess || @@ -1478,14 +1478,14 @@ void InitCrashReporter() { SetProcessStartTime(); - breakpad::GetBreakpadClient()->SetDumpWithoutCrashingFunction(&DumpProcess); + GetBreakpadClient()->SetDumpWithoutCrashingFunction(&DumpProcess); #if defined(ADDRESS_SANITIZER) // Register the callback for AddressSanitizer error reporting. __asan_set_error_report_callback(AsanLinuxBreakpadCallback); #endif g_crash_keys = new CrashKeyStorage; - breakpad::GetBreakpadClient()->RegisterCrashKeys(); + GetBreakpadClient()->RegisterCrashKeys(); base::debug::SetCrashKeyReportingFunctions( &SetCrashKeyValue, &ClearCrashKey); } @@ -1497,8 +1497,8 @@ void InitNonBrowserCrashReporterForAndroid() { // On Android we need to provide a FD to the file where the minidump is // generated as the renderer and browser run with different UIDs // (preventing the browser from inspecting the renderer process). - int minidump_fd = base::GlobalDescriptors::GetInstance()-> - MaybeGet(breakpad::GetBreakpadClient()->GetAndroidMinidumpDescriptor()); + int minidump_fd = base::GlobalDescriptors::GetInstance()->MaybeGet( + GetBreakpadClient()->GetAndroidMinidumpDescriptor()); if (minidump_fd == base::kInvalidPlatformFileValue) { NOTREACHED() << "Could not find minidump FD, crash reporting disabled."; } else { @@ -1511,3 +1511,5 @@ void InitNonBrowserCrashReporterForAndroid() { bool IsCrashReporterEnabled() { return g_is_crash_reporter_enabled; } + +} // namespace breakpad diff --git a/chrome/app/breakpad_linux.h b/components/breakpad/app/breakpad_linux.h index 6692736..47e537c 100644 --- a/chrome/app/breakpad_linux.h +++ b/components/breakpad/app/breakpad_linux.h @@ -1,14 +1,16 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2013 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. // Public interface for enabling Breakpad on Linux systems. -#ifndef CHROME_APP_BREAKPAD_LINUX_H_ -#define CHROME_APP_BREAKPAD_LINUX_H_ +#ifndef COMPONENTS_BREAKPAD_APP_BREAKPAD_LINUX_H_ +#define COMPONENTS_BREAKPAD_APP_BREAKPAD_LINUX_H_ #include "build/build_config.h" +namespace breakpad { + // Turns on the crash reporter in any process. extern void InitCrashReporter(); @@ -22,4 +24,6 @@ extern void InitNonBrowserCrashReporterForAndroid(); // whether InitCrashReporter() is called. bool IsCrashReporterEnabled(); -#endif // CHROME_APP_BREAKPAD_LINUX_H_ +} // namespace breakpad + +#endif // COMPONENTS_BREAKPAD_APP_BREAKPAD_LINUX_H_ diff --git a/chrome/app/breakpad_linux_impl.h b/components/breakpad/app/breakpad_linux_impl.h index e1676d2..cd67989 100644 --- a/chrome/app/breakpad_linux_impl.h +++ b/components/breakpad/app/breakpad_linux_impl.h @@ -6,14 +6,16 @@ // shared between crash_handler_host_linux.cc and breakpad_linux.cc. It should // only be used in files compiled with linux_breakpad=1. -#ifndef CHROME_APP_BREAKPAD_LINUX_IMPL_H_ -#define CHROME_APP_BREAKPAD_LINUX_IMPL_H_ +#ifndef COMPONENTS_BREAKPAD_APP_BREAKPAD_LINUX_IMPL_H_ +#define COMPONENTS_BREAKPAD_APP_BREAKPAD_LINUX_IMPL_H_ #include <sys/types.h> #include "base/basictypes.h" #include "breakpad/src/common/simple_string_dictionary.h" -#include "chrome/app/breakpad_linux.h" +#include "components/breakpad/app/breakpad_linux.h" + +namespace breakpad { typedef google_breakpad::NonAllocatingMap<256, 256, 64> CrashKeyStorage; @@ -59,4 +61,6 @@ struct BreakpadInfo { extern void HandleCrashDump(const BreakpadInfo& info); -#endif // CHROME_APP_BREAKPAD_LINUX_IMPL_H_ +} // namespace breakpad + +#endif // COMPONENTS_BREAKPAD_APP_BREAKPAD_LINUX_IMPL_H_ diff --git a/components/breakpad/breakpad_mac.h b/components/breakpad/app/breakpad_mac.h index 362cee2..1743df6 100644 --- a/components/breakpad/breakpad_mac.h +++ b/components/breakpad/app/breakpad_mac.h @@ -1,9 +1,9 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright 2013 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_BREAKPAD_BREAKPAD_MAC_H_ -#define COMPONENTS_BREAKPAD_BREAKPAD_MAC_H_ +#ifndef COMPONENTS_BREAKPAD_APP_BREAKPAD_MAC_H_ +#define COMPONENTS_BREAKPAD_APP_BREAKPAD_MAC_H_ // This header defines the entry points for Breakpad integration. @@ -22,4 +22,4 @@ bool IsCrashReporterEnabled(); } // namespace breakpad -#endif // COMPONENTS_BREAKPAD_BREAKPAD_MAC_H_ +#endif // COMPONENTS_BREAKPAD_APP_BREAKPAD_MAC_H_ diff --git a/components/breakpad/breakpad_mac.mm b/components/breakpad/app/breakpad_mac.mm index e109f9f..56a4ded 100644 --- a/components/breakpad/breakpad_mac.mm +++ b/components/breakpad/app/breakpad_mac.mm @@ -1,8 +1,8 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2013 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. -#import "components/breakpad/breakpad_mac.h" +#import "components/breakpad/app/breakpad_mac.h" #include <CoreFoundation/CoreFoundation.h> #import <Foundation/Foundation.h> @@ -23,7 +23,7 @@ #include "base/threading/platform_thread.h" #include "base/threading/thread_restrictions.h" #import "breakpad/src/client/mac/Framework/Breakpad.h" -#include "components/breakpad/breakpad_client.h" +#include "components/breakpad/app/breakpad_client.h" #include "content/public/common/content_switches.h" namespace breakpad { diff --git a/components/breakpad/breakpad_mac_stubs.mm b/components/breakpad/app/breakpad_mac_stubs.mm index 3ee5282..6360ab8 100644 --- a/components/breakpad/breakpad_mac_stubs.mm +++ b/components/breakpad/app/breakpad_mac_stubs.mm @@ -1,8 +1,8 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright 2013 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. -#import "components/breakpad/breakpad_mac.h" +#import "components/breakpad/app/breakpad_mac.h" #import <Foundation/Foundation.h> diff --git a/components/breakpad/breakpad_win.cc b/components/breakpad/app/breakpad_win.cc index 7449421..84ee9bb 100644 --- a/components/breakpad/breakpad_win.cc +++ b/components/breakpad/app/breakpad_win.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/breakpad/breakpad_win.h" +#include "components/breakpad/app/breakpad_win.h" #include <windows.h> #include <shellapi.h> @@ -29,8 +29,8 @@ #include "base/win/registry.h" #include "base/win/win_util.h" #include "breakpad/src/client/windows/handler/exception_handler.h" -#include "components/breakpad/breakpad_client.h" -#include "components/breakpad/hard_error_handler_win.h" +#include "components/breakpad/app/breakpad_client.h" +#include "components/breakpad/app/hard_error_handler_win.h" #include "content/public/common/content_switches.h" #include "content/public/common/result_codes.h" #include "sandbox/win/src/nt_internals.h" diff --git a/components/breakpad/breakpad_win.h b/components/breakpad/app/breakpad_win.h index 69165fb..3e81a78 100644 --- a/components/breakpad/breakpad_win.h +++ b/components/breakpad/app/breakpad_win.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_BREAKPAD_BREAKPAD_WIN_H_ -#define COMPONENTS_BREAKPAD_BREAKPAD_WIN_H_ +#ifndef COMPONENTS_BREAKPAD_APP_BREAKPAD_WIN_H_ +#define COMPONENTS_BREAKPAD_APP_BREAKPAD_WIN_H_ #include <windows.h> #include <string> @@ -19,4 +19,4 @@ bool ShowRestartDialogIfCrashed(bool* exit_now); } // namespace breakpad -#endif // COMPONENTS_BREAKPAD_BREAKPAD_WIN_H_ +#endif // COMPONENTS_BREAKPAD_APP_BREAKPAD_WIN_H_ diff --git a/components/breakpad/hard_error_handler_win.cc b/components/breakpad/app/hard_error_handler_win.cc index 54eac69..0b07edc 100644 --- a/components/breakpad/hard_error_handler_win.cc +++ b/components/breakpad/app/hard_error_handler_win.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/breakpad/hard_error_handler_win.h" +#include "components/breakpad/app/hard_error_handler_win.h" #if defined(_WIN32_WINNT_WIN8) && _MSC_VER < 1700 // The Windows 8 SDK defines FACILITY_VISUALCPP in winerror.h, and in @@ -14,7 +14,7 @@ #include "base/basictypes.h" #include "base/strings/string_util.h" -#include "components/breakpad/breakpad_client.h" +#include "components/breakpad/app/breakpad_client.h" namespace breakpad { diff --git a/components/breakpad/hard_error_handler_win.h b/components/breakpad/app/hard_error_handler_win.h index c6d4ad3..daf0482 100644 --- a/components/breakpad/hard_error_handler_win.h +++ b/components/breakpad/app/hard_error_handler_win.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef COMPONENTS_BREAKPAD_HARD_ERROR_HANDLER_WIN_H_ -#define COMPONENTS_BREAKPAD_HARD_ERROR_HANDLER_WIN_H_ +#ifndef COMPONENTS_BREAKPAD_APP_HARD_ERROR_HANDLER_WIN_H_ +#define COMPONENTS_BREAKPAD_APP_HARD_ERROR_HANDLER_WIN_H_ #include <windows.h> @@ -31,4 +31,4 @@ bool HardErrorHandler(EXCEPTION_POINTERS* ex_info); } // namespace breakpad -#endif // COMPONENTS_BREAKPAD_HARD_ERROR_HANDLER_WIN_H_ +#endif // COMPONENTS_BREAKPAD_APP_HARD_ERROR_HANDLER_WIN_H_ diff --git a/components/breakpad/browser/DEPS b/components/breakpad/browser/DEPS new file mode 100644 index 0000000..c24130e --- /dev/null +++ b/components/breakpad/browser/DEPS @@ -0,0 +1,4 @@ +include_rules = [ + "+content/public/browser", + "+content/public/common", +] diff --git a/chrome/browser/android/crash_dump_manager.cc b/components/breakpad/browser/crash_dump_manager_android.cc index cb3c45c..9b46fc6 100644 --- a/chrome/browser/android/crash_dump_manager.cc +++ b/components/breakpad/browser/crash_dump_manager_android.cc @@ -1,8 +1,8 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2013 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. -#include "chrome/browser/android/crash_dump_manager.h" +#include "components/breakpad/browser/crash_dump_manager_android.h" #include "base/bind.h" #include "base/file_util.h" @@ -22,6 +22,8 @@ using content::BrowserThread; +namespace breakpad { + // static CrashDumpManager* CrashDumpManager::instance_ = NULL; @@ -167,3 +169,5 @@ void CrashDumpManager::OnChildExit(int child_process_id, BrowserThread::FILE, FROM_HERE, base::Bind(&CrashDumpManager::ProcessMinidump, minidump_path, pid)); } + +} // namespace breakpad diff --git a/chrome/browser/android/crash_dump_manager.h b/components/breakpad/browser/crash_dump_manager_android.h index 9b0438e..aa79fc6 100644 --- a/chrome/browser/android/crash_dump_manager.h +++ b/components/breakpad/browser/crash_dump_manager_android.h @@ -1,9 +1,9 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2013 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_BROWSER_ANDROID_CRASH_DUMP_MANAGER_H_ -#define CHROME_BROWSER_ANDROID_CRASH_DUMP_MANAGER_H_ +#ifndef COMPONENTS_BREAKPAD_BROWSER_CRASH_DUMP_MANAGER_ANDROID_H_ +#define COMPONENTS_BREAKPAD_BROWSER_CRASH_DUMP_MANAGER_ANDROID_H_ #include <map> @@ -19,6 +19,8 @@ namespace content { class RenderProcessHost; } +namespace breakpad { + // This class manages the crash minidumps. // On Android, because of process isolation, each renderer process runs with a // different UID. As a result, we cannot generate the minidumps in the browser @@ -31,10 +33,12 @@ class RenderProcessHost; class CrashDumpManager : public content::BrowserChildProcessObserver, public content::NotificationObserver { public: - // This object is a singleton created and owned by the - // ChromeBrowserMainPartsAndroid. + // The embedder should create a single instance of the CrashDumpManager. static CrashDumpManager* GetInstance(); + // Should be created on the UI thread. + explicit CrashDumpManager(const base::FilePath& crash_dump_dir); + virtual ~CrashDumpManager(); // Returns a file descriptor that should be used to generate a minidump for @@ -42,11 +46,6 @@ class CrashDumpManager : public content::BrowserChildProcessObserver, int CreateMinidumpFile(int child_process_id); private: - friend class ChromeBrowserMainPartsAndroid; - - // Should be created on the UI thread. - explicit CrashDumpManager(const base::FilePath& crash_dump_dir); - typedef std::map<int, base::FilePath> ChildProcessIDToMinidumpPath; static void ProcessMinidump(const base::FilePath& minidump_path, @@ -80,4 +79,6 @@ class CrashDumpManager : public content::BrowserChildProcessObserver, DISALLOW_COPY_AND_ASSIGN(CrashDumpManager); }; -#endif // CHROME_BROWSER_ANDROID_CRASH_DUMP_MANAGER_H_ +} // namespace breakpad + +#endif // COMPONENTS_BREAKPAD_BROWSER_CRASH_DUMP_MANAGER_ANDROID_H_ diff --git a/chrome/browser/crash_handler_host_linux.cc b/components/breakpad/browser/crash_handler_host_linux.cc index 2a2b6f5..79d28a0 100644 --- a/chrome/browser/crash_handler_host_linux.cc +++ b/components/breakpad/browser/crash_handler_host_linux.cc @@ -1,8 +1,8 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2013 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. -#include "chrome/browser/crash_handler_host_linux.h" +#include "components/breakpad/browser/crash_handler_host_linux.h" #include <stdint.h> #include <stdlib.h> @@ -27,7 +27,7 @@ #include "breakpad/src/client/linux/handler/exception_handler.h" #include "breakpad/src/client/linux/minidump_writer/linux_dumper.h" #include "breakpad/src/client/linux/minidump_writer/minidump_writer.h" -#include "chrome/app/breakpad_linux_impl.h" +#include "components/breakpad/app/breakpad_linux_impl.h" #include "content/public/browser/browser_thread.h" #if defined(OS_ANDROID) @@ -39,6 +39,8 @@ using content::BrowserThread; using google_breakpad::ExceptionHandler; +namespace breakpad { + namespace { // The length of the control message: @@ -128,7 +130,7 @@ void CrashHandlerHostLinux::OnFileCanReadWithoutBlocking(int fd) { // for writing the minidump as well as a file descriptor and a credentials // block so that they can't lie about their pid. // - // The message sender is in chrome/app/breakpad_linux.cc. + // The message sender is in components/breakpad/app/breakpad_linux.cc. struct msghdr msg = {0}; struct iovec iov[kCrashIovSize]; @@ -450,3 +452,5 @@ void CrashHandlerHostLinux::WillDestroyCurrentMessageLoop() { bool CrashHandlerHostLinux::IsShuttingDown() const { return shutting_down_; } + +} // namespace breakpad diff --git a/chrome/browser/crash_handler_host_linux.h b/components/breakpad/browser/crash_handler_host_linux.h index f497312..7b5dd4a 100644 --- a/chrome/browser/crash_handler_host_linux.h +++ b/components/breakpad/browser/crash_handler_host_linux.h @@ -1,9 +1,9 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2013 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_BROWSER_CRASH_HANDLER_HOST_LINUX_H_ -#define CHROME_BROWSER_CRASH_HANDLER_HOST_LINUX_H_ +#ifndef COMPONENTS_BREAKPAD_BROWSER_CRASH_HANDLER_HOST_LINUX_H_ +#define COMPONENTS_BREAKPAD_BROWSER_CRASH_HANDLER_HOST_LINUX_H_ #include <sys/types.h> @@ -15,12 +15,14 @@ #include "base/message_loop/message_loop.h" #include "base/threading/sequenced_worker_pool.h" -struct BreakpadInfo; - namespace base { class Thread; } +namespace breakpad { + +struct BreakpadInfo; + // This is the host for processes which run breakpad inside the sandbox on // Linux or Android. We perform the crash dump from the browser because it // allows us to be outside the sandbox. @@ -90,4 +92,6 @@ class CrashHandlerHostLinux : public base::MessageLoopForIO::Watcher, DISALLOW_COPY_AND_ASSIGN(CrashHandlerHostLinux); }; -#endif // CHROME_BROWSER_CRASH_HANDLER_HOST_LINUX_H_ +} // namespace breakpad + +#endif // COMPONENTS_BREAKPAD_BROWSER_CRASH_HANDLER_HOST_LINUX_H_ diff --git a/remoting/base/breakpad_win.cc b/remoting/base/breakpad_win.cc index 01b935a..6dce6db2 100644 --- a/remoting/base/breakpad_win.cc +++ b/remoting/base/breakpad_win.cc @@ -5,7 +5,7 @@ // This module contains the necessary code to register the Breakpad exception // handler. This implementation is based on Chrome/Chrome Frame crash reporting // code. See: -// - src/components/breakpad/breakpad_win.cc +// - src/components/breakpad/app/breakpad_win.cc // - src/chrome_frame/crash_server_init.cc // - src/chrome/installer/setup/setup_main.cc // - src/chrome_frame/crash_reporting/crash_report.cc |