Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(850)

Side by Side Diff: Source/devtools/front_end/timeline/TimelinePanel.js

Issue 1293903002: DevTools: Nuke timeline costly functions flamechart experiment (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: update the test Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/devtools/front_end/timeline/TimelineFlameChart.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * Copyright (C) 2012 Intel Inc. All rights reserved. 3 * Copyright (C) 2012 Intel Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 Events: "Events", 116 Events: "Events",
117 Frames: "Frames" 117 Frames: "Frames"
118 }; 118 };
119 119
120 /** 120 /**
121 * @enum {string} 121 * @enum {string}
122 */ 122 */
123 WebInspector.TimelinePanel.DetailsTab = { 123 WebInspector.TimelinePanel.DetailsTab = {
124 Details: "Details", 124 Details: "Details",
125 BottomUpTree: "BottomUpTree", 125 BottomUpTree: "BottomUpTree",
126 BottomUpChart: "BottomUpChart",
127 PaintProfiler: "PaintProfiler", 126 PaintProfiler: "PaintProfiler",
128 LayerViewer: "LayerViewer" 127 LayerViewer: "LayerViewer"
129 }; 128 };
130 129
131 // Define row and header height, should be in sync with styles for timeline grap hs. 130 // Define row and header height, should be in sync with styles for timeline grap hs.
132 WebInspector.TimelinePanel.rowHeight = 18; 131 WebInspector.TimelinePanel.rowHeight = 18;
133 WebInspector.TimelinePanel.headerHeight = 20; 132 WebInspector.TimelinePanel.headerHeight = 20;
134 133
135 WebInspector.TimelinePanel._aggregatedStatsKey = Symbol("aggregatedStats"); 134 WebInspector.TimelinePanel._aggregatedStatsKey = Symbol("aggregatedStats");
136 135
(...skipping 1209 matching lines...) Expand 10 before | Expand all | Expand 10 after
1346 this._defaultDetailsWidget = new WebInspector.VBox(); 1345 this._defaultDetailsWidget = new WebInspector.VBox();
1347 this._defaultDetailsWidget.element.classList.add("timeline-details-view"); 1346 this._defaultDetailsWidget.element.classList.add("timeline-details-view");
1348 this._defaultDetailsContentElement = this._defaultDetailsWidget.element.crea teChild("div", "timeline-details-view-body vbox"); 1347 this._defaultDetailsContentElement = this._defaultDetailsWidget.element.crea teChild("div", "timeline-details-view-body vbox");
1349 this.appendTab(WebInspector.TimelinePanel.DetailsTab.Details, WebInspector.U IString("Summary"), this._defaultDetailsWidget); 1348 this.appendTab(WebInspector.TimelinePanel.DetailsTab.Details, WebInspector.U IString("Summary"), this._defaultDetailsWidget);
1350 this.setPreferredTab(WebInspector.TimelinePanel.DetailsTab.Details); 1349 this.setPreferredTab(WebInspector.TimelinePanel.DetailsTab.Details);
1351 1350
1352 if (Runtime.experiments.isEnabled("timelineTreeView")) { 1351 if (Runtime.experiments.isEnabled("timelineTreeView")) {
1353 this._heavyTreeView = new WebInspector.TimelineTreeView(timelineModel); 1352 this._heavyTreeView = new WebInspector.TimelineTreeView(timelineModel);
1354 this.appendTab(WebInspector.TimelinePanel.DetailsTab.BottomUpTree, WebIn spector.UIString("Costly Functions"), this._heavyTreeView); 1353 this.appendTab(WebInspector.TimelinePanel.DetailsTab.BottomUpTree, WebIn spector.UIString("Costly Functions"), this._heavyTreeView);
1355 } 1354 }
1356 if (Runtime.experiments.isEnabled("timelineDetailsChart")) {
1357 this._heavyChartView = new WebInspector.TimelineDetailsView.BottomUpChar tView(timelineModel);
1358 this.appendTab(WebInspector.TimelinePanel.DetailsTab.BottomUpChart, WebI nspector.UIString("Costly Functions Chart"), this._heavyChartView);
1359 }
1360 1355
1361 this._staticTabs = [ 1356 this._staticTabs = new Set([
1362 WebInspector.TimelinePanel.DetailsTab.Details, 1357 WebInspector.TimelinePanel.DetailsTab.Details,
1363 WebInspector.TimelinePanel.DetailsTab.BottomUpTree, 1358 WebInspector.TimelinePanel.DetailsTab.BottomUpTree
1364 WebInspector.TimelinePanel.DetailsTab.BottomUpChart 1359 ]);
1365 ];
1366 1360
1367 this.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected, this._ tabSelected, this); 1361 this.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected, this._ tabSelected, this);
1368 } 1362 }
1369 1363
1370 WebInspector.TimelineDetailsView.prototype = { 1364 WebInspector.TimelineDetailsView.prototype = {
1371 /** 1365 /**
1372 * @param {!Node} node 1366 * @param {!Node} node
1373 */ 1367 */
1374 setContent: function(node) 1368 setContent: function(node)
1375 { 1369 {
1376 var allTabs = this.allTabs(); 1370 var allTabs = this.allTabs();
1377 for (var i = 0; i < allTabs.length; ++i) { 1371 for (var i = 0; i < allTabs.length; ++i) {
1378 var tabId = allTabs[i].id; 1372 var tabId = allTabs[i].id;
1379 if (this._staticTabs.indexOf(tabId) !== -1) 1373 if (this._staticTabs.has(tabId))
1380 this.closeTab(tabId); 1374 this.closeTab(tabId);
1381 } 1375 }
1382 this._defaultDetailsContentElement.removeChildren(); 1376 this._defaultDetailsContentElement.removeChildren();
1383 this._defaultDetailsContentElement.appendChild(node); 1377 this._defaultDetailsContentElement.appendChild(node);
1384 }, 1378 },
1385 1379
1386 /** 1380 /**
1387 * @param {!WebInspector.TimelineSelection} selection 1381 * @param {!WebInspector.TimelineSelection} selection
1388 */ 1382 */
1389 updateContents: function(selection) 1383 updateContents: function(selection)
1390 { 1384 {
1391 this._selection = selection; 1385 this._selection = selection;
1392 if (this.selectedTabId === WebInspector.TimelinePanel.DetailsTab.BottomU pChart && this._heavyChartView)
1393 this._heavyChartView.updateContents(selection);
1394 if (this.selectedTabId === WebInspector.TimelinePanel.DetailsTab.BottomU pTree && this._heavyTreeView) 1386 if (this.selectedTabId === WebInspector.TimelinePanel.DetailsTab.BottomU pTree && this._heavyTreeView)
1395 this._heavyTreeView.updateContents(selection); 1387 this._heavyTreeView.updateContents(selection);
1396 }, 1388 },
1397 1389
1398 /** 1390 /**
1399 * @override 1391 * @override
1400 * @param {string} id 1392 * @param {string} id
1401 * @param {string} tabTitle 1393 * @param {string} tabTitle
1402 * @param {!WebInspector.Widget} view 1394 * @param {!WebInspector.Widget} view
1403 * @param {string=} tabTooltip 1395 * @param {string=} tabTooltip
(...skipping 24 matching lines...) Expand all
1428 return; 1420 return;
1429 this.setPreferredTab(event.data.tabId); 1421 this.setPreferredTab(event.data.tabId);
1430 this.updateContents(this._selection); 1422 this.updateContents(this._selection);
1431 }, 1423 },
1432 1424
1433 __proto__: WebInspector.TabbedPane.prototype 1425 __proto__: WebInspector.TabbedPane.prototype
1434 } 1426 }
1435 1427
1436 /** 1428 /**
1437 * @constructor 1429 * @constructor
1438 * @implements {WebInspector.TimelineModeViewDelegate}
1439 * @implements {WebInspector.FlameChartDelegate}
1440 * @extends {WebInspector.VBox}
1441 */
1442 WebInspector.TimelineDetailsView.BottomUpChartView = function(model) {
1443 WebInspector.VBox.call(this);
1444 this._model = model;
1445 }
1446
1447 WebInspector.TimelineDetailsView.BottomUpChartView.prototype = {
1448 _init: function()
1449 {
1450 if (this._heavyChart)
1451 return;
1452 this._dataProvider = new WebInspector.TimelineFlameChartBottomUpDataProv ider(this._model);
1453 this._heavyChart = new WebInspector.FlameChart(this._dataProvider, this, true);
1454 this._heavyChart.show(this.element);
1455 },
1456
1457 /**
1458 * @param {!WebInspector.TimelineSelection} selection
1459 */
1460 updateContents: function(selection)
1461 {
1462 this._init();
1463 this._heavyChart.reset();
1464 this._dataProvider.setWindowTimes(selection._startTime, selection._endTi me);
1465 this._dataProvider.timelineData();
1466 this._heavyChart.setWindowTimes(0, this._dataProvider.totalTime());
1467 },
1468
1469 /**
1470 * @override
1471 * @param {number} startTime
1472 * @param {number} endTime
1473 */
1474 requestWindowTimes: function(startTime, endTime)
1475 {
1476 this._heavyChart.setWindowTimes(startTime, endTime);
1477 },
1478
1479 /**
1480 * @override
1481 * @param {?WebInspector.TimelineSelection} selection
1482 * @param {!WebInspector.TimelinePanel.DetailsTab=} preferredTab
1483 */
1484 select: function(selection, preferredTab) {},
1485
1486 /**
1487 * @override
1488 * @param {!WebInspector.TimelineModel.Record} record
1489 */
1490 showNestedRecordDetails: function(record) {},
1491
1492 /**
1493 * @override
1494 * @param {!Node} node
1495 */
1496 showInDetails: function(node) {},
1497
1498 /**
1499 * @override
1500 * @param {number} startTime
1501 * @param {number} endTime
1502 */
1503 updateRangeSelection: function(startTime, endTime)
1504 {
1505 },
1506
1507 __proto__: WebInspector.VBox.prototype
1508 }
1509
1510
1511 /**
1512 * @constructor
1513 * @param {!WebInspector.TimelineSelection.Type} type 1430 * @param {!WebInspector.TimelineSelection.Type} type
1514 * @param {number} startTime 1431 * @param {number} startTime
1515 * @param {number} endTime 1432 * @param {number} endTime
1516 * @param {!Object=} object 1433 * @param {!Object=} object
1517 */ 1434 */
1518 WebInspector.TimelineSelection = function(type, startTime, endTime, object) 1435 WebInspector.TimelineSelection = function(type, startTime, endTime, object)
1519 { 1436 {
1520 this._type = type; 1437 this._type = type;
1521 this._startTime = startTime; 1438 this._startTime = startTime;
1522 this._endTime = endTime; 1439 this._endTime = endTime;
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
1877 /** 1794 /**
1878 * @override 1795 * @override
1879 * @param {string} value 1796 * @param {string} value
1880 */ 1797 */
1881 handleQueryParam: function(value) 1798 handleQueryParam: function(value)
1882 { 1799 {
1883 WebInspector.TimelinePanel.show(); 1800 WebInspector.TimelinePanel.show();
1884 WebInspector.TimelinePanel.instance()._loadFromURL(value); 1801 WebInspector.TimelinePanel.instance()._loadFromURL(value);
1885 } 1802 }
1886 } 1803 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/timeline/TimelineFlameChart.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698