diff options
Diffstat (limited to 'ipc/glue/CrashReporterClient.h')
-rw-r--r-- | ipc/glue/CrashReporterClient.h | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/ipc/glue/CrashReporterClient.h b/ipc/glue/CrashReporterClient.h deleted file mode 100644 index 512533da8..000000000 --- a/ipc/glue/CrashReporterClient.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#ifndef mozilla_ipc_CrashReporterClient_h -#define mozilla_ipc_CrashReporterClient_h - -#include "mozilla/StaticMutex.h" -#include "mozilla/StaticPtr.h" -#include "mozilla/Unused.h" -#include "mozilla/ipc/Shmem.h" - -namespace mozilla { -namespace ipc { - -class CrashReporterMetadataShmem; - -class CrashReporterClient -{ -public: - NS_INLINE_DECL_THREADSAFE_REFCOUNTING(CrashReporterClient); - - // |aTopLevelProtocol| must be a top-level protocol instance, as sub-actors - // do not have AllocUnsafeShmem. It must also have a child-to-parent message: - // - // async SetCrashReporterClient(Shmem shmem); - // - // The parent-side receive function of this message should save the shmem - // somewhere, and when the top-level actor's ActorDestroy runs (or when the - // crash reporter needs metadata), the shmem should be parsed. - template <typename T> - static bool InitSingleton(T* aToplevelProtocol) { - // 16KB should be enough for most metadata - see bug 1278717 comment #11. - static const size_t kShmemSize = 16 * 1024; - - Shmem shmem; - bool rv = aToplevelProtocol->AllocUnsafeShmem( - kShmemSize, - SharedMemory::TYPE_BASIC, - &shmem); - if (!rv) { - return false; - } - - InitSingletonWithShmem(shmem); - Unused << aToplevelProtocol->SendInitCrashReporter(shmem); - return true; - } - - static void DestroySingleton(); - static RefPtr<CrashReporterClient> GetSingleton(); - - void AnnotateCrashReport(const nsCString& aKey, const nsCString& aData); - void AppendAppNotes(const nsCString& aData); - -private: - explicit CrashReporterClient(const Shmem& aShmem); - ~CrashReporterClient(); - - static void InitSingletonWithShmem(const Shmem& aShmem); - -private: - static StaticMutex sLock; - static StaticRefPtr<CrashReporterClient> sClientSingleton; - -private: - UniquePtr<CrashReporterMetadataShmem> mMetadata; -}; - -} // namespace ipc -} // namespace mozilla - -#endif // mozilla_ipc_CrashReporterClient_h - |