Bug 1647695 - Expose ChildID on frozen nsIHangReport;r=mconley
☠☠ backed out by c0ca500c0330 ☠ ☠
authorDavid Teller <dteller@mozilla.com>
Mon, 03 Aug 2020 12:49:40 +0000
changeset 543114 2a0969c26d9562eabaa10dfd4ac9d1a693b6ff50
parent 543113 c61c4ac846f6cfbb4845e97aba152d0d7a533820
child 543115 3417fe7200bdb67e7b46554968a52bf0956fdc76
push id123234
push userdteller@mozilla.com
push dateMon, 03 Aug 2020 12:53:04 +0000
treeherderautoland@c1af633ab74e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmconley
bugs1647695
milestone81.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1647695 - Expose ChildID on frozen nsIHangReport;r=mconley Differential Revision: https://phabricator.services.mozilla.com/D83665
dom/ipc/ProcessHangMonitor.cpp
dom/ipc/nsIHangReport.idl
--- a/dom/ipc/ProcessHangMonitor.cpp
+++ b/dom/ipc/ProcessHangMonitor.cpp
@@ -1209,16 +1209,25 @@ HangMonitoredProcess::UserCanceled() {
 
   if (mActor) {
     uint32_t id = mHangData.get_PluginHangData().pluginId();
     mActor->CleanupPluginHang(id, true);
   }
   return NS_OK;
 }
 
+NS_IMETHODIMP
+HangMonitoredProcess::GetChildID(uint64_t* aChildID) {
+  if (!mContentParent) {
+    return NS_ERROR_NOT_AVAILABLE;
+  }
+  *aChildID = mContentParent->ChildID();
+  return NS_OK;
+}
+
 static bool InterruptCallback(JSContext* cx) {
   if (HangMonitorChild* child = HangMonitorChild::Get()) {
     return child->InterruptCallback();
   }
 
   return true;
 }
 
--- a/dom/ipc/nsIHangReport.idl
+++ b/dom/ipc/nsIHangReport.idl
@@ -35,16 +35,19 @@ interface nsIHangReport : nsISupports
   // Duration of the hang so far.
   readonly attribute double hangDuration;
   readonly attribute AString addonId;
 
   // For PLUGIN_HANGs, this field contains information about the plugin.
   // Only valid for PLUGIN_HANG reports.
   readonly attribute ACString pluginName;
 
+  // The child id of the process in which the hang happened.
+  readonly attribute unsigned long long childID;
+
   // Called by front end code when user ignores or cancels
   // the notification.
   void userCanceled();
 
   // Terminate the slow script if it is still running.
   // Only valid for SLOW_SCRIPT reports.
   void terminateScript();