Index: chrome/browser/crash_handler_host_linuxish.h |
=================================================================== |
--- chrome/browser/crash_handler_host_linuxish.h (revision 131419) |
+++ chrome/browser/crash_handler_host_linuxish.h (working copy) |
@@ -1,184 +0,0 @@ |
-// 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_BROWSER_CRASH_HANDLER_HOST_LINUXISH_H_ |
-#define CHROME_BROWSER_CRASH_HANDLER_HOST_LINUXISH_H_ |
-#pragma once |
- |
-#include "base/compiler_specific.h" |
-#include "base/message_loop.h" |
- |
-#if defined(USE_LINUX_BREAKPAD) |
-#include <sys/types.h> |
- |
-#include <string> |
- |
-#include "base/memory/scoped_ptr.h" |
- |
-class BreakpadInfo; |
- |
-namespace base { |
-class Thread; |
-} |
-#endif // defined(USE_LINUX_BREAKPAD) |
- |
-template <typename T> struct DefaultSingletonTraits; |
- |
-// This is the base class for singleton objects which crash dump renderers and |
-// plugins on Linux or Android. We perform the crash dump from the browser |
-// because it allows us to be outside the sandbox. |
-// |
-// PluginCrashHandlerHostLinux and RendererCrashHandlerHostLinux are |
-// singletons that handle plugin and renderer crashes, respectively. |
-// |
-// Processes signal that they need to be dumped by sending a datagram over a |
-// UNIX domain socket. All processes of the same type share the client end of |
-// this socket which is installed in their descriptor table before exec. |
-class CrashHandlerHostLinux : public MessageLoopForIO::Watcher, |
- public MessageLoop::DestructionObserver { |
- public: |
- // Get the file descriptor which processes should be given in order to signal |
- // crashes to the browser. |
- int GetDeathSignalSocket() const { |
- return process_socket_; |
- } |
- |
- // MessagePumbLibevent::Watcher impl: |
- virtual void OnFileCanWriteWithoutBlocking(int fd) OVERRIDE; |
- virtual void OnFileCanReadWithoutBlocking(int fd) OVERRIDE; |
- |
- // MessageLoop::DestructionObserver impl: |
- virtual void WillDestroyCurrentMessageLoop() OVERRIDE; |
- |
-#if defined(USE_LINUX_BREAKPAD) |
- // Whether we are shutting down or not. |
- bool IsShuttingDown() const; |
-#endif |
- |
- protected: |
- CrashHandlerHostLinux(); |
- virtual ~CrashHandlerHostLinux(); |
- |
-#if defined(USE_LINUX_BREAKPAD) |
- // Only called in concrete subclasses. |
- void InitCrashUploaderThread(); |
- |
- std::string process_type_; |
-#endif |
- |
- private: |
- void Init(); |
- |
-#if defined(USE_LINUX_BREAKPAD) |
- // This is here on purpose to make CrashHandlerHostLinux abstract. |
- virtual void SetProcessType() = 0; |
- |
- // Do work on the FILE thread for OnFileCanReadWithoutBlocking(). |
- void WriteDumpFile(BreakpadInfo* info, |
- pid_t crashing_pid, |
- char* crash_context, |
- int signal_fd); |
- |
- // Continue OnFileCanReadWithoutBlocking()'s work on the IO thread. |
- void QueueCrashDumpTask(BreakpadInfo* info, int signal_fd); |
-#endif |
- |
- int process_socket_; |
- int browser_socket_; |
- |
-#if defined(USE_LINUX_BREAKPAD) |
- MessageLoopForIO::FileDescriptorWatcher file_descriptor_watcher_; |
- scoped_ptr<base::Thread> uploader_thread_; |
- bool shutting_down_; |
-#endif |
- |
- DISALLOW_COPY_AND_ASSIGN(CrashHandlerHostLinux); |
-}; |
- |
-class ExtensionCrashHandlerHostLinux : public CrashHandlerHostLinux { |
- public: |
- // Returns the singleton instance. |
- static ExtensionCrashHandlerHostLinux* GetInstance(); |
- |
- private: |
- friend struct DefaultSingletonTraits<ExtensionCrashHandlerHostLinux>; |
- ExtensionCrashHandlerHostLinux(); |
- virtual ~ExtensionCrashHandlerHostLinux(); |
- |
-#if defined(USE_LINUX_BREAKPAD) |
- virtual void SetProcessType() OVERRIDE; |
-#endif |
- |
- DISALLOW_COPY_AND_ASSIGN(ExtensionCrashHandlerHostLinux); |
-}; |
- |
-class GpuCrashHandlerHostLinux : public CrashHandlerHostLinux { |
- public: |
- // Returns the singleton instance. |
- static GpuCrashHandlerHostLinux* GetInstance(); |
- |
- private: |
- friend struct DefaultSingletonTraits<GpuCrashHandlerHostLinux>; |
- GpuCrashHandlerHostLinux(); |
- virtual ~GpuCrashHandlerHostLinux(); |
- |
-#if defined(USE_LINUX_BREAKPAD) |
- virtual void SetProcessType() OVERRIDE; |
-#endif |
- |
- DISALLOW_COPY_AND_ASSIGN(GpuCrashHandlerHostLinux); |
-}; |
- |
-class PluginCrashHandlerHostLinux : public CrashHandlerHostLinux { |
- public: |
- // Returns the singleton instance. |
- static PluginCrashHandlerHostLinux* GetInstance(); |
- |
- private: |
- friend struct DefaultSingletonTraits<PluginCrashHandlerHostLinux>; |
- PluginCrashHandlerHostLinux(); |
- virtual ~PluginCrashHandlerHostLinux(); |
- |
-#if defined(USE_LINUX_BREAKPAD) |
- virtual void SetProcessType() OVERRIDE; |
-#endif |
- |
- DISALLOW_COPY_AND_ASSIGN(PluginCrashHandlerHostLinux); |
-}; |
- |
-class PpapiCrashHandlerHostLinux : public CrashHandlerHostLinux { |
- public: |
- // Returns the singleton instance. |
- static PpapiCrashHandlerHostLinux* GetInstance(); |
- |
- private: |
- friend struct DefaultSingletonTraits<PpapiCrashHandlerHostLinux>; |
- PpapiCrashHandlerHostLinux(); |
- virtual ~PpapiCrashHandlerHostLinux(); |
- |
-#if defined(USE_LINUX_BREAKPAD) |
- virtual void SetProcessType() OVERRIDE; |
-#endif |
- |
- DISALLOW_COPY_AND_ASSIGN(PpapiCrashHandlerHostLinux); |
-}; |
- |
-class RendererCrashHandlerHostLinux : public CrashHandlerHostLinux { |
- public: |
- // Returns the singleton instance. |
- static RendererCrashHandlerHostLinux* GetInstance(); |
- |
- private: |
- friend struct DefaultSingletonTraits<RendererCrashHandlerHostLinux>; |
- RendererCrashHandlerHostLinux(); |
- virtual ~RendererCrashHandlerHostLinux(); |
- |
-#if defined(USE_LINUX_BREAKPAD) |
- virtual void SetProcessType() OVERRIDE; |
-#endif |
- |
- DISALLOW_COPY_AND_ASSIGN(RendererCrashHandlerHostLinux); |
-}; |
- |
-#endif // CHROME_BROWSER_CRASH_HANDLER_HOST_LINUXISH_H_ |