summaryrefslogtreecommitdiffstats
path: root/toolkit/components/backgroundhangmonitor/nsIHangDetails.idl
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/backgroundhangmonitor/nsIHangDetails.idl')
-rw-r--r--toolkit/components/backgroundhangmonitor/nsIHangDetails.idl77
1 files changed, 77 insertions, 0 deletions
diff --git a/toolkit/components/backgroundhangmonitor/nsIHangDetails.idl b/toolkit/components/backgroundhangmonitor/nsIHangDetails.idl
new file mode 100644
index 0000000000..f9c6ba2de0
--- /dev/null
+++ b/toolkit/components/backgroundhangmonitor/nsIHangDetails.idl
@@ -0,0 +1,77 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* 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/. */
+
+#include "nsISupports.idl"
+
+%{ C++
+namespace mozilla {
+class HangDetails;
+}
+%}
+
+[ref] native HangDetailsRef(mozilla::HangDetails);
+
+/**
+ * A scriptable interface for getting information about a BHR detected hang.
+ * This is the type of the subject of the "bhr-thread-hang" observer topic.
+ */
+[scriptable, uuid(23d63fff-38d6-4003-9c57-2c90aca1180a)]
+interface nsIHangDetails : nsISupports
+{
+ /**
+ * The hang was persisted to disk as a permahang, so we can clear the
+ * permahang file once we submit this.
+ */
+ readonly attribute bool wasPersisted;
+
+ /**
+ * The detected duration of the hang in milliseconds.
+ */
+ readonly attribute double duration;
+
+ /**
+ * The name of the thread which hung.
+ */
+ readonly attribute ACString thread;
+
+ /**
+ * The name of the runnable which hung if it hung on the main thread.
+ */
+ readonly attribute ACString runnableName;
+
+ /**
+ * The type of process which produced the hang. This should be either:
+ * "default", "content", or "gpu".
+ */
+ readonly attribute ACString process;
+
+ /**
+ * The remote type of the content process which produced the hang.
+ */
+ readonly attribute AUTF8String remoteType;
+
+ /**
+ * Returns the stack which was captured by BHR. The offset is encoded as a hex
+ * string, as it can contain numbers larger than JS can hold losslessly.
+ *
+ * This value takes the following form:
+ * [ [moduleIndex, offset], ... ]
+ */
+ [implicit_jscontext] readonly attribute jsval stack;
+
+ /**
+ * Returns the modules which were captured by BHR.
+ *
+ * This value takes the following form:
+ * [ ["fileName", "BreakpadId"], ... ]
+ */
+ [implicit_jscontext] readonly attribute jsval modules;
+
+ /**
+ * The hang annotations which were captured when the hang occured. This
+ * attribute is a JS object of key-value pairs.
+ */
+ [implicit_jscontext] readonly attribute jsval annotations;
+};