Skip to content

Commit

Permalink
cleanup and memory related elements disabled accordingly
Browse files Browse the repository at this point in the history
  • Loading branch information
bobbyrne01 committed Mar 22, 2015
1 parent 80b929e commit 7852d90
Show file tree
Hide file tree
Showing 7 changed files with 226 additions and 260 deletions.
6 changes: 3 additions & 3 deletions addon/data/html/view.html
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,15 @@ <h3 data-l10n-id="behaviour_title"></h3>
<label data-l10n-id="memoryTracking_title"></label>
</td>
<td>
<input id="memoryTrackingPref" type="checkbox" />
<input id="memoryTracking" type="checkbox" />
</td>
</tr>
<tr>
<td>
<label data-l10n-id="memoryInterval_title"></label>
</td>
<td>
<input id="memoryIntervalPref" type="number" />
<input id="memoryInterval" type="number" />
</td>
</tr>
</table>
Expand All @@ -95,7 +95,7 @@ <h3 data-l10n-id="ui_title"></h3>
<label data-l10n-id="memoryUsageOnTabTitlesPref_title"></label>
</td>
<td>
<select id="memoryUsageOnTabTitlesPref">
<select id="memoryUsageOnTabTitles">
<option value="0">Prepend</option>
<option value="1">Append</option>
<option value="2">Disable</option>
Expand Down
158 changes: 52 additions & 106 deletions addon/data/js/controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,93 +7,42 @@ var data = {
/*
* Event listeners
*/
document.getElementById('memoryTrackingPref').addEventListener("change", function (event) {
document.getElementById('memoryTracking').addEventListener("change", function (event) {

if (document.getElementById('memoryTrackingPref').checked) {
if (document.getElementById('memoryTracking').checked) {

self.port.emit("memoryTrackingSetting", true);
document.getElementById('memoryIntervalPref').disabled = false;
document.getElementById('memoryUsageOnTabTitlesPref').disabled = false;
self.port.emit("memoryTracking", true);
document.getElementById('memoryInterval').disabled = false;
document.getElementById('memoryUsageOnTabTitles').disabled = false;
document.getElementById('memoryFormat').disabled = false;
document.getElementById('memoryUrlInUsage').disabled = false;
document.getElementById('graphType').disabled = false;

} else {

self.port.emit("memoryTrackingSetting", false);
document.getElementById('memoryIntervalPref').disabled = true;
document.getElementById('memoryUsageOnTabTitlesPref').disabled = true;
self.port.emit("memoryTracking", false);
document.getElementById('memoryInterval').disabled = true;
document.getElementById('memoryUsageOnTabTitles').disabled = true;
document.getElementById('memoryFormat').disabled = true;
document.getElementById('memoryUrlInUsage').disabled = true;
document.getElementById('graphType').disabled = true;

document.getElementById("memoryDump").textContent = '';
}
}, false);

document.getElementById('memoryIntervalPref').onkeyup = function (event) {

if (document.getElementById('memoryIntervalPref').value >= 1) {

self.port.emit("memoryIntervalSetting", document.getElementById('memoryIntervalPref').value);
document.getElementById('memoryIntervalPref').className = 'green';

} else {

document.getElementById('memoryIntervalPref').className = 'red';
}
};

document.getElementById('memoryFormat').addEventListener("change", function (event) {

self.port.emit("memoryFormatSetting", document.getElementById('memoryFormat').value);
}, false);

document.getElementById('memoryUsageOnTabTitlesPref').addEventListener("change", function (event) {

self.port.emit("memoryUsageOnTabTitlesSetting", document.getElementById('memoryUsageOnTabTitlesPref').value);
}, false);

document.getElementById('memoryUrlInUsage').addEventListener("change", function (event) {

self.port.emit("memoryUrlInUsageSetting", document.getElementById('memoryUrlInUsage').checked);
}, false);

document.getElementById('schedulePreciseGC').addEventListener("click", function (event) {
document.getElementById('schedulePreciseGC').disabled = true;
self.port.emit("schedulePreciseGC", '');
}, false);

document.getElementById('panelWidth').onkeyup = function (event) {

if (document.getElementById('panelWidth').value >= 1) {

self.port.emit("panelWidth", document.getElementById('panelWidth').value);
document.getElementById('panelWidth').className = 'green';
document.getElementById("canvas").width = document.getElementById('panelWidth').value - 45;

} else {

document.getElementById('panelWidth').className = 'red';
}
};

document.getElementById('panelHeight').onkeyup = function (event) {

if (document.getElementById('panelHeight').value >= 1) {

self.port.emit("panelHeight", document.getElementById('panelHeight').value);
document.getElementById('panelHeight').className = 'green';
document.getElementById("canvas").height = document.getElementById('panelHeight').value - 185;

} else {

document.getElementById('panelHeight').className = 'red';
}
};

document.getElementById('graphType').addEventListener("change", function (event) {

self.port.emit("graphTypeSetting", document.getElementById('graphType').value);
}, false);
tabdata_helper.inputValueChanged('panelHeight', 185);
tabdata_helper.inputValueChanged('panelWidth', 45);
tabdata_helper.inputValueChanged('memoryInterval', 0);
tabdata_helper.emitCheckedOnChange('memoryUrlInUsage');
tabdata_helper.emitValueOnChange('memoryFormat');
tabdata_helper.emitValueOnChange('memoryUsageOnTabTitles');
tabdata_helper.emitValueOnChange('graphType');



Expand All @@ -106,22 +55,21 @@ self.port.on("stats", function (stats) {
document.getElementById("globalCount").value = parsedStats.globalCount;
document.getElementById("sessionCount").value = parsedStats.sessionCount;
document.getElementById("currentCount").value = parsedStats.currentCount;
document.getElementById("memoryTrackingPref").checked = parsedStats.memoryTracking;
document.getElementById("memoryIntervalPref").value = parsedStats.memoryInterval;
document.getElementById("memoryUsageOnTabTitlesPref").value = parsedStats.memoryUsageOnTabTitles;
document.getElementById("memoryTracking").checked = parsedStats.memoryTracking;
document.getElementById("memoryInterval").value = parsedStats.memoryInterval;
document.getElementById("memoryUsageOnTabTitles").value = parsedStats.memoryUsageOnTabTitles;
document.getElementById("memoryFormat").value = parsedStats.memoryFormat;
document.getElementById("memoryUrlInUsage").checked = parsedStats.memoryUrlInUsage;
document.getElementById("panelWidth").value = parsedStats.panelWidth;
document.getElementById("panelHeight").value = parsedStats.panelHeight;
document.getElementById("graphType").value = parsedStats.graphType;

document.getElementById("canvas").width = parsedStats.panelWidth - 45;
document.getElementById("canvas").height = parsedStats.panelHeight - 185;
});

self.port.on("memoryDump", function (value) {

var dump = JSON.parse(value).memoryDump;
var dumps = JSON.parse(value).memoryDump;
var graphData = JSON.parse(value).graphData;
document.getElementById("memoryDump").textContent = '';

Expand All @@ -133,21 +81,20 @@ self.port.on("memoryDump", function (value) {

if (!document.getElementById("memoryUrlInUsage").checked) { // remove Url from each object

for (var i = 0; i < dump.length; i++) {
delete dump[i].Url;
for (var i = 0; i < dumps.length; i++) {
delete dumps[i].Url;
}
}

try {

document.getElementById("memoryDump").appendChild(pre);

var highlightedJson = syntaxHighlight(JSON.stringify(dump, undefined, 4)),
var highlightedJson = syntaxHighlight(JSON.stringify(dumps, undefined, 4)),
range = document.createRange();

range.selectNode(pre);
var docFrag = range.createContextualFragment(highlightedJson);

pre.appendChild(docFrag);

} catch (e) {
Expand All @@ -157,12 +104,12 @@ self.port.on("memoryDump", function (value) {

} else { // Plain

for (var j = 0; j < dump.length; j++) {
for (var b = 0; b < dumps.length; b++) {

var string = dump[j].Memory + ': ' + dump[j].Title;
var string = dumps[b].Memory + ': ' + dumps[b].Title;

if (document.getElementById("memoryUrlInUsage").checked) {
string += ': ' + dump[j].Url;
string += ': ' + dumps[b].Url;
}

document.getElementById("memoryDump").appendChild(document.createTextNode(string));
Expand All @@ -186,22 +133,23 @@ function syntaxHighlight(json) {
var jsonElements;

json = json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {

var cls = 'number';
if (/^"/.test(match)) {
if (/:$/.test(match)) {
cls = 'key';
} else {
cls = 'string';
return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g,
function (match) {

var cls = 'number';
if (/^"/.test(match)) {
if (/:$/.test(match)) {
cls = 'key';
} else {
cls = 'string';
}
} else if (/true|false/.test(match)) {
cls = 'boolean';
} else if (/null/.test(match)) {
cls = 'null';
}
} else if (/true|false/.test(match)) {
cls = 'boolean';
} else if (/null/.test(match)) {
cls = 'null';
}
return '<span class="' + cls + '">' + match + '</span>';
});
return '<span class="' + cls + '">' + match + '</span>';
});
}

function updateCanvas(graphData) {
Expand Down Expand Up @@ -231,34 +179,32 @@ function updateCanvas(graphData) {
var data = [];

// reformat data for Polar area chart
for (var i = 0; i < graphData.datasets.length; i++) {
for (var n = 0; n < graphData.datasets.length; n++) {
data.push({
value: graphData.datasets[i].data[graphData.datasets[i].data.length - 1],
color: graphData.datasets[i].strokeColor,
highlight: graphData.datasets[i].fillColor,
label: graphData.datasets[i].label
value: graphData.datasets[n].data[graphData.datasets[n].data.length - 1],
color: graphData.datasets[n].strokeColor,
highlight: graphData.datasets[n].fillColor,
label: graphData.datasets[n].label
});
}

myNewChart = new Chart(document.getElementById("canvas").getContext("2d")).PolarArea(data, options);
}

// clear previous legend
// draw legend
document.getElementById('legend').textContent = '';

// create legend
var ul = document.createElement('ul');

for (var j = 0; j < graphData.datasets.length; j++) {
for (var m = 0; m < graphData.datasets.length; m++) {

var li = document.createElement('li'),
label = document.createElement('label');

ul.appendChild(li);

label.appendChild(document.createTextNode(graphData.datasets[j].data[4] + ': ' + graphData.datasets[j].label));
label.appendChild(document.createTextNode(graphData.datasets[m].data[4] + ': ' + graphData.datasets[m].label));
label.className = 'boldText';
label.style.color = graphData.datasets[j].strokeColor;
label.style.color = graphData.datasets[m].strokeColor;
li.appendChild(label);
}

Expand Down
36 changes: 36 additions & 0 deletions addon/data/js/helper.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
var tabdata_helper = {

emitValueOnChange: function (id) {

document.getElementById(id).addEventListener("change", function (event) {
self.port.emit(id, document.getElementById(id).value);
}, false);
},

emitCheckedOnChange: function (id) {

document.getElementById(id).addEventListener("change", function (event) {
self.port.emit(id, document.getElementById(id).checked);
}, false);
},

inputValueChanged: function (id, offset) {

document.getElementById(id).onkeyup = function (event) {

if (document.getElementById(id).value >= 1) {

self.port.emit(id, document.getElementById(id).value);
document.getElementById(id).className = 'green';

if (offset !== 0) {
document.getElementById("canvas").height = document.getElementById(id).value - offset;
}

} else {

document.getElementById(id).className = 'red';
}
};
}
};
18 changes: 11 additions & 7 deletions addon/lib/Panel.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,11 @@ exports.init = function () {
width: parseInt(Preference.get("panelWidth")),
height: parseInt(Preference.get("panelHeight")),
contentURL: Data.get("html/view.html"),
contentScriptFile: [Data.get("bower_components/Chart.js/Chart.min.js"), Data.get("js/controller.js")],
contentScriptFile: [
Data.get("bower_components/Chart.js/Chart.min.js"),
Data.get("js/helper.js"),
Data.get("js/controller.js")
],
onShow: function () {

var stats = JSON.stringify({
Expand All @@ -38,7 +42,7 @@ exports.init = function () {
}
});

panel.port.on("memoryTrackingSetting", function (value) {
panel.port.on("memoryTracking", function (value) {
Preference.set('memoryTracking', value);

if (!Preference.get('memoryTracking')) {
Expand All @@ -47,23 +51,23 @@ exports.init = function () {
}
});

panel.port.on("memoryIntervalSetting", function (value) {
panel.port.on("memoryInterval", function (value) {
Preference.set('memoryInterval', value);
Tab.removeScheduledFunction();
Tab.reinitTimeout();
});

panel.port.on("memoryUsageOnTabTitlesSetting", function (value) {
panel.port.on("memoryUsageOnTabTitles", function (value) {
Preference.set('memoryUsageOnTabTitles', parseInt(value));
});

panel.port.on("memoryFormatSetting", function (value) {
panel.port.on("memoryFormat", function (value) {
Preference.set('memoryFormat', parseInt(value));
Tab.removeScheduledFunction();
Tab.updateMemoryCounters();
});

panel.port.on("memoryUrlInUsageSetting", function (value) {
panel.port.on("memoryUrlInUsage", function (value) {
Preference.set('memoryUrlInUsage', value);
Tab.removeScheduledFunction();
Tab.updateMemoryCounters();
Expand All @@ -87,7 +91,7 @@ exports.init = function () {
parseInt(Preference.get("panelHeight")));
});

panel.port.on("graphTypeSetting", function (value) {
panel.port.on("graphType", function (value) {
Preference.set('graphType', parseInt(value));
});
};
Expand Down
Loading

0 comments on commit 7852d90

Please sign in to comment.