Commit eaa4feb3 authored by pfeldman@chromium.org's avatar pfeldman@chromium.org

DevTools: merge MemoryStatistics.js and CountersGraph.js, extract DOMCountersGraph.js

Review URL: https://codereview.chromium.org/210053002

git-svn-id: svn://svn.chromium.org/blink/trunk@169857 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 2d0fb0f4
......@@ -50,7 +50,6 @@
'front_end/CookieItemsView.js',
'front_end/CookieParser.js',
'front_end/CookiesTable.js',
'front_end/CountersGraph.js',
'front_end/CPUProfilerModel.js',
'front_end/CSSMetadata.js',
'front_end/CSSParser.js',
......@@ -308,7 +307,8 @@
'front_end/ThreadsToolbar.js',
],
'devtools_timeline_js_files': [
'front_end/MemoryStatistics.js',
'front_end/CountersGraph.js',
'front_end/DOMCountersGraph.js',
'front_end/PieChart.js',
'front_end/TimelineFrameModel.js',
'front_end/TimelineModel.js',
......
/*
* Copyright (C) 2013 Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @constructor
* @extends {WebInspector.CountersGraph}
* @implements {WebInspector.TimelineModeView}
* @param {!WebInspector.TimelineModeViewDelegate} delegate
* @param {!WebInspector.TimelineModel} model
*/
WebInspector.DOMCountersGraph = function(delegate, model)
{
WebInspector.CountersGraph.call(this, delegate, model);
this._countersByName = {};
this._countersByName["documents"] = this.createCounter(WebInspector.UIString("Documents"), WebInspector.UIString("Documents: %d"), "#d00");
this._countersByName["nodes"] = this.createCounter(WebInspector.UIString("Nodes"), WebInspector.UIString("Nodes: %d"), "#0a0");
this._countersByName["jsEventListeners"] = this.createCounter(WebInspector.UIString("Listeners"), WebInspector.UIString("Listeners: %d"), "#00d");
if (WebInspector.experimentsSettings.gpuTimeline.isEnabled())
this._countersByName["gpuMemoryUsedKB"] = this.createCounter(WebInspector.UIString("GPU Memory"), WebInspector.UIString("GPU Memory [KB]: %d"), "#c0c");
}
WebInspector.DOMCountersGraph.prototype = {
/**
* @param {!WebInspector.TimelineModel.Record} record
*/
addRecord: function(record)
{
/**
* @param {!WebInspector.TimelineModel.Record} record
* @this {!WebInspector.DOMCountersGraph}
*/
function addStatistics(record)
{
var counters = record.counters;
if (!counters)
return;
for (var name in counters) {
var counter = this._countersByName[name];
if (counter)
counter.appendSample(record.endTime || record.startTime, counters[name]);
}
}
WebInspector.TimelineModel.forAllRecords([record], null, addStatistics.bind(this));
this.scheduleRefresh();
},
__proto__: WebInspector.CountersGraph.prototype
}
......@@ -67,7 +67,7 @@ WebInspector.TimelineOverviewPane.prototype = {
},
/**
* @param {!WebInspector.TimelineOverviewBase} overviewControl
* @param {!WebInspector.TimelineOverview} overviewControl
*/
setOverviewControl: function(overviewControl)
{
......@@ -297,9 +297,43 @@ WebInspector.TimelineOverviewCalculator.prototype = {
}
}
/**
* @interface
*/
WebInspector.TimelineOverview = function(model)
{
}
WebInspector.TimelineOverview.prototype = {
/**
* @param {?Element} parentElement
* @param {!Element=} insertBefore
*/
show: function(parentElement, insertBefore) { },
update: function() { },
reset: function() { },
/**
* @param {number} windowLeft
* @param {number} windowRight
* @return {!{startTime: number, endTime: number}}
*/
windowTimes: function(windowLeft, windowRight) { },
/**
* @param {number} startTime
* @param {number} endTime
* @return {!{left: number, right: number}}
*/
windowBoundaries: function(startTime, endTime) { }
}
/**
* @constructor
* @extends {WebInspector.VBox}
* @implements {WebInspector.TimelineOverview}
* @param {!WebInspector.TimelineModel} model
*/
WebInspector.TimelineOverviewBase = function(model)
......@@ -312,8 +346,14 @@ WebInspector.TimelineOverviewBase = function(model)
}
WebInspector.TimelineOverviewBase.prototype = {
update: function() { },
reset: function() { },
update: function()
{
this.resetCanvas();
},
reset: function()
{
},
/**
* @param {number} windowLeft
......
......@@ -29,8 +29,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
importScript("MemoryStatistics.js");
importScript("CountersGraph.js");
importScript("DOMCountersGraph.js");
importScript("PieChart.js");
importScript("TimelineModel.js");
importScript("TimelineOverviewPane.js");
......@@ -240,6 +240,7 @@ WebInspector.TimelinePanel.prototype = {
/**
* @param {string} mode
* @return {!{overviewView: !WebInspector.TimelineOverview, mainViews: !Array.<!WebInspector.TimelineView>}}
*/
_viewsForMode: function(mode)
{
......@@ -257,7 +258,7 @@ WebInspector.TimelinePanel.prototype = {
break;
case WebInspector.TimelinePanel.Mode.Memory:
views.overviewView = new WebInspector.TimelineMemoryOverview(this._model);
views.mainViews = [this._timelineView(), new WebInspector.CountersGraph(this, this._model)];
views.mainViews = [this._timelineView(), new WebInspector.DOMCountersGraph(this, this._model)];
break;
case WebInspector.TimelinePanel.Mode.FlameChart:
views.overviewView = new WebInspector.TimelineFrameOverview(this._model, this._frameModel());
......
......@@ -298,7 +298,7 @@
"dependencies": ["components"],
"sources": [
"CountersGraph.js",
"MemoryStatistics.js",
"DOMCountersGraph.js",
"TimelineEventOverview.js",
"TimelineFrameModel.js",
"TimelineFrameOverview.js",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment