Bug 1389165 - Fix the search for thread hangs in about:telemetry r?gfritzsche draft
authorflyingrub <flyinggrub@gmail.com>
Thu, 10 Aug 2017 22:10:11 +0200
changeset 644900 6f16991e857eeef56ff80bfc8da6d5e1cf6d3d53
parent 644865 65826179c86e2a3538bcffd969556937e15688cd
child 644901 ed947d75128fe59a1fe8575914a2a44d7cbc506e
push id73581
push userbmo:flyinggrub@gmail.com
push dateFri, 11 Aug 2017 13:18:13 +0000
reviewersgfritzsche
bugs1389165
milestone57.0a1
Bug 1389165 - Fix the search for thread hangs in about:telemetry r?gfritzsche MozReview-Commit-ID: 8nYRcwEEBvD
toolkit/content/aboutTelemetry.js
--- a/toolkit/content/aboutTelemetry.js
+++ b/toolkit/content/aboutTelemetry.js
@@ -1145,16 +1145,17 @@ var ThreadHangStats = {
    * Creates and fills data corresponding to a thread
    */
   renderThread(aThread) {
     let div = document.createElement("div");
 
     let title = document.createElement("h2");
     title.textContent = aThread.name;
     div.appendChild(title);
+    div.id = title;
 
     // Don't localize the histogram name, because the
     // name is also used as the div element's ID
     Histogram.render(div, aThread.name + "-Activity",
                      aThread.activity, {exponential: true}, true);
     aThread.hangs.forEach((hang, index) => {
       let hangName = aThread.name + "-Hang-" + (index + 1);
       let hangDiv = Histogram.render(
@@ -1457,16 +1458,24 @@ var Search = {
     } else if (selectedSection.id === "keyed-scalars-section") {
       let keyedElements = [];
       let keyedScalars = selectedSection.getElementsByClassName("keyed-scalar");
       for (let key of keyedScalars) {
         let datas = key.querySelector("table").rows;
         keyedElements.push({key, datas});
       }
       this.filterKeyedElements(keyedElements, text);
+    } else if (selectedSection.id === "thread-hang-stats-section") {
+      let keyedElements = [];
+      let threads = selectedSection.children[0].children;
+      for (let key of threads) {
+        let datas = key.getElementsByClassName("histogram");
+        keyedElements.push({key, datas});
+      }
+      this.filterKeyedElements(keyedElements, text);
     } else {
       let tables = selectedSection.querySelectorAll("table");
       for (let table of tables) {
         this.filterElements(table.rows, text);
       }
     }
   },
 }