mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 05:15:45 +00:00
Bug 1122480 - Part 7 - Add an environment data section. r=rvitillo
This commit is contained in:
parent
e8dec6963d
commit
3c93e0c10a
@ -102,6 +102,29 @@ function filterObject(obj, filterOut) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This turns a JSON object into a "flat" stringified form, separated into top-level sections.
|
||||
*
|
||||
* For an object like:
|
||||
* {
|
||||
* a: {b: "1"},
|
||||
* c: {d: "2", e: {f: "3"}}
|
||||
* }
|
||||
* it returns a Map of the form:
|
||||
* Map([
|
||||
* ["a", Map(["b","1"])],
|
||||
* ["c", Map([["d", "2"], ["e.f", "3"]])]
|
||||
* ])
|
||||
*/
|
||||
function sectionalizeObject(obj) {
|
||||
let map = new Map();
|
||||
for (let k of Object.keys(obj)) {
|
||||
map.set(k, explodeObject(obj[k]));
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
let observer = {
|
||||
|
||||
enableTelemetry: bundle.GetStringFromName("enableTelemetry"),
|
||||
@ -186,6 +209,52 @@ let GeneralData = {
|
||||
},
|
||||
};
|
||||
|
||||
let EnvironmentData = {
|
||||
/**
|
||||
* Renders the environment data
|
||||
*/
|
||||
render: function(ping) {
|
||||
setHasData("environment-data-section", true);
|
||||
let dataDiv = document.getElementById("environment-data");
|
||||
let data = sectionalizeObject(ping.environment);
|
||||
|
||||
for (let [section, sectionData] of data) {
|
||||
let table = document.createElement("table");
|
||||
let caption = document.createElement("caption");
|
||||
caption.appendChild(document.createTextNode(section + "\n"));
|
||||
table.appendChild(caption);
|
||||
|
||||
let headings = document.createElement("tr");
|
||||
this.appendColumn(headings, "th", bundle.GetStringFromName("environmentDataHeadingName") + "\t");
|
||||
this.appendColumn(headings, "th", bundle.GetStringFromName("environmentDataHeadingValue") + "\t");
|
||||
table.appendChild(headings);
|
||||
|
||||
for (let [path, value] of sectionData) {
|
||||
let row = document.createElement("tr");
|
||||
this.appendColumn(row, "td", path + "\t");
|
||||
this.appendColumn(row, "td", value + "\t");
|
||||
table.appendChild(row);
|
||||
}
|
||||
|
||||
dataDiv.appendChild(table);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Helper function for appending a column to the data table.
|
||||
*
|
||||
* @param aRowElement Parent row element
|
||||
* @param aColType Column's tag name
|
||||
* @param aColText Column contents
|
||||
*/
|
||||
appendColumn: function(aRowElement, aColType, aColText) {
|
||||
let colElement = document.createElement(aColType);
|
||||
let colTextElement = document.createTextNode(aColText);
|
||||
colElement.appendChild(colTextElement);
|
||||
aRowElement.appendChild(colElement);
|
||||
},
|
||||
};
|
||||
|
||||
let TelLog = {
|
||||
/**
|
||||
* Renders the telemetry log
|
||||
@ -628,8 +697,10 @@ let Histogram = {
|
||||
divStats.appendChild(document.createTextNode(stats));
|
||||
outerDiv.appendChild(divStats);
|
||||
|
||||
if (isRTL())
|
||||
if (isRTL()) {
|
||||
hgram.buckets.reverse();
|
||||
hgram.values.reverse();
|
||||
}
|
||||
|
||||
let textData = this.renderValues(outerDiv, hgram, options);
|
||||
|
||||
@ -1142,6 +1213,9 @@ function displayPingData() {
|
||||
// Show general data.
|
||||
GeneralData.render(ping);
|
||||
|
||||
// Show environment data.
|
||||
EnvironmentData.render(ping);
|
||||
|
||||
// Show telemetry log.
|
||||
TelLog.render(ping);
|
||||
|
||||
|
@ -44,6 +44,15 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="environment-data-section" class="data-section">
|
||||
<input type="checkbox" class="statebox"/>
|
||||
<h1 class="section-name">&aboutTelemetry.environmentDataSection;</h1>
|
||||
<span class="toggle-caption">&aboutTelemetry.toggle;</span>
|
||||
<span class="empty-caption">&aboutTelemetry.emptySection;</span>
|
||||
<div id="environment-data" class="data">
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="telemetry-log-section" class="data-section">
|
||||
<input type="checkbox" class="statebox"/>
|
||||
<h1 class="section-name">&aboutTelemetry.telemetryLogSection;</h1>
|
||||
|
@ -16,6 +16,10 @@
|
||||
General Data
|
||||
">
|
||||
|
||||
<!ENTITY aboutTelemetry.environmentDataSection "
|
||||
Environment Data
|
||||
">
|
||||
|
||||
<!ENTITY aboutTelemetry.telemetryLogSection "
|
||||
Telemetry Log
|
||||
">
|
||||
|
@ -13,6 +13,10 @@ generalDataHeadingName = Name
|
||||
|
||||
generalDataHeadingValue = Value
|
||||
|
||||
environmentDataHeadingName = Name
|
||||
|
||||
environmentDataHeadingValue = Value
|
||||
|
||||
telemetryLogTitle = Telemetry Log
|
||||
|
||||
telemetryLogHeadingId = Id
|
||||
|
Loading…
Reference in New Issue
Block a user