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

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

Issue 24027002: DevTools: implement console.timeline/timelineEnd. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 3 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 | Annotate | Revision Log
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 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 128
129 this._mainThreadTasks = /** @type {!Array.<{startTime: number, endTime: numb er}>} */ ([]); 129 this._mainThreadTasks = /** @type {!Array.<{startTime: number, endTime: numb er}>} */ ([]);
130 this._cpuBarsElement = this._timelineGrid.gridHeaderElement.createChild("div ", "timeline-cpu-bars"); 130 this._cpuBarsElement = this._timelineGrid.gridHeaderElement.createChild("div ", "timeline-cpu-bars");
131 this._mainThreadMonitoringEnabled = WebInspector.settings.showCpuOnTimelineR uler.get(); 131 this._mainThreadMonitoringEnabled = WebInspector.settings.showCpuOnTimelineR uler.get();
132 WebInspector.settings.showCpuOnTimelineRuler.addChangeListener(this._showCpu OnTimelineRulerChanged, this); 132 WebInspector.settings.showCpuOnTimelineRuler.addChangeListener(this._showCpu OnTimelineRulerChanged, this);
133 133
134 this._createFileSelector(); 134 this._createFileSelector();
135 135
136 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordAdded, this._onTimelineEventRecorded, this); 136 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordAdded, this._onTimelineEventRecorded, this);
137 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordsCleare d, this._onRecordsCleared, this); 137 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordsCleare d, this._onRecordsCleared, this);
138 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingStar ted, this._onRecordingStarted, this);
139 this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingStop ped, this._onRecordingStopped, this);
138 140
139 this._registerShortcuts(); 141 this._registerShortcuts();
140 142
141 this._allRecordsCount = 0; 143 this._allRecordsCount = 0;
142 144
143 this._presentationModel.addFilter(new WebInspector.TimelineWindowFilter(this ._overviewPane)); 145 this._presentationModel.addFilter(new WebInspector.TimelineWindowFilter(this ._overviewPane));
144 this._presentationModel.addFilter(new WebInspector.TimelineCategoryFilter()) ; 146 this._presentationModel.addFilter(new WebInspector.TimelineCategoryFilter()) ;
145 this._presentationModel.addFilter(this._durationFilter); 147 this._presentationModel.addFilter(this._durationFilter);
146 } 148 }
147 149
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 408
407 /** 409 /**
408 * @return {?WebInspector.ProgressIndicator} 410 * @return {?WebInspector.ProgressIndicator}
409 */ 411 */
410 _prepareToLoadTimeline: function() 412 _prepareToLoadTimeline: function()
411 { 413 {
412 if (this._operationInProgress) 414 if (this._operationInProgress)
413 return null; 415 return null;
414 if (this.toggleTimelineButton.toggled) { 416 if (this.toggleTimelineButton.toggled) {
415 this.toggleTimelineButton.toggled = false; 417 this.toggleTimelineButton.toggled = false;
416 this._model.stopRecord(); 418 this._model.stopRecording();
417 } 419 }
418 var progressIndicator = new WebInspector.ProgressIndicator(); 420 var progressIndicator = new WebInspector.ProgressIndicator();
419 progressIndicator.addEventListener(WebInspector.ProgressIndicator.Events .Done, this._setOperationInProgress.bind(this, null)); 421 progressIndicator.addEventListener(WebInspector.ProgressIndicator.Events .Done, this._setOperationInProgress.bind(this, null));
420 this._setOperationInProgress(progressIndicator); 422 this._setOperationInProgress(progressIndicator);
421 return progressIndicator; 423 return progressIndicator;
422 }, 424 },
423 425
424 _rootRecord: function() 426 _rootRecord: function()
425 { 427 {
426 return this._presentationModel.rootRecord(); 428 return this._presentationModel.rootRecord();
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 }, 572 },
571 573
572 /** 574 /**
573 * @return {boolean} 575 * @return {boolean}
574 */ 576 */
575 _toggleTimelineButtonClicked: function() 577 _toggleTimelineButtonClicked: function()
576 { 578 {
577 if (this._operationInProgress) 579 if (this._operationInProgress)
578 return true; 580 return true;
579 if (this.toggleTimelineButton.toggled) { 581 if (this.toggleTimelineButton.toggled) {
580 this._model.stopRecord(); 582 this._model.stopRecording();
581 this.toggleTimelineButton.title = WebInspector.UIString("Record");
582 } else { 583 } else {
583 this._model.startRecord(this._includeDomCounters); 584 this._model.startRecording(this._includeDomCounters);
584 this.toggleTimelineButton.title = WebInspector.UIString("Stop");
585 WebInspector.userMetrics.TimelineStarted.record(); 585 WebInspector.userMetrics.TimelineStarted.record();
586 } 586 }
587 this.toggleTimelineButton.toggled = !this.toggleTimelineButton.toggled;
588 return true; 587 return true;
589 }, 588 },
590 589
591 _durationFilterChanged: function() 590 _durationFilterChanged: function()
592 { 591 {
593 var option = this._durationFilterSelector.selectedOption(); 592 var option = this._durationFilterSelector.selectedOption();
594 var minimumRecordDuration = +option._durationMs / 1000.0; 593 var minimumRecordDuration = +option._durationMs / 1000.0;
595 this._durationFilter.setMinimumRecordDuration(minimumRecordDuration); 594 this._durationFilter.setMinimumRecordDuration(minimumRecordDuration);
596 this._durationFilterSelector.element.title = option.title; 595 this._durationFilterSelector.element.title = option.title;
597 this._invalidateAndScheduleRefresh(true, true); 596 this._invalidateAndScheduleRefresh(true, true);
(...skipping 18 matching lines...) Expand all
616 this._resetPanel(); 615 this._resetPanel();
617 this._automaticallySizeWindow = false; 616 this._automaticallySizeWindow = false;
618 var records = this._model.records; 617 var records = this._model.records;
619 for (var i = 0; i < records.length; ++i) 618 for (var i = 0; i < records.length; ++i)
620 this._innerAddRecordToTimeline(records[i]); 619 this._innerAddRecordToTimeline(records[i]);
621 this._invalidateAndScheduleRefresh(false, false); 620 this._invalidateAndScheduleRefresh(false, false);
622 }, 621 },
623 622
624 _onTimelineEventRecorded: function(event) 623 _onTimelineEventRecorded: function(event)
625 { 624 {
626 if (this._innerAddRecordToTimeline(event.data)) 625 if (this._innerAddRecordToTimeline(/** @type {TimelineAgent.TimelineEven t} */(event.data)))
627 this._invalidateAndScheduleRefresh(false, false); 626 this._invalidateAndScheduleRefresh(false, false);
628 }, 627 },
629 628
629 /**
630 * @param {TimelineAgent.TimelineEvent} record
631 */
630 _innerAddRecordToTimeline: function(record) 632 _innerAddRecordToTimeline: function(record)
631 { 633 {
632 if (record.type === WebInspector.TimelineModel.RecordType.Program) { 634 if (record.type === WebInspector.TimelineModel.RecordType.Program) {
633 this._mainThreadTasks.push({ 635 this._mainThreadTasks.push({
634 startTime: WebInspector.TimelineModel.startTimeInSeconds(record) , 636 startTime: WebInspector.TimelineModel.startTimeInSeconds(record) ,
635 endTime: WebInspector.TimelineModel.endTimeInSeconds(record) 637 endTime: WebInspector.TimelineModel.endTimeInSeconds(record)
636 }); 638 });
637 } 639 }
638 640
639 var records = this._presentationModel.addRecord(record); 641 var records = this._presentationModel.addRecord(record);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
687 { 689 {
688 this._model.reset(); 690 this._model.reset();
689 }, 691 },
690 692
691 _onRecordsCleared: function() 693 _onRecordsCleared: function()
692 { 694 {
693 this._resetPanel(); 695 this._resetPanel();
694 this._invalidateAndScheduleRefresh(true, true); 696 this._invalidateAndScheduleRefresh(true, true);
695 }, 697 },
696 698
699 _onRecordingStarted: function()
700 {
701 this.toggleTimelineButton.title = WebInspector.UIString("Stop");
702 this.toggleTimelineButton.toggled = true;
703 },
704
705 _onRecordingStopped: function()
706 {
707 this.toggleTimelineButton.title = WebInspector.UIString("Record");
708 this.toggleTimelineButton.toggled = false;
709 },
710
697 _resetPanel: function() 711 _resetPanel: function()
698 { 712 {
699 this._presentationModel.reset(); 713 this._presentationModel.reset();
700 this._boundariesAreValid = false; 714 this._boundariesAreValid = false;
701 this._adjustScrollPosition(0); 715 this._adjustScrollPosition(0);
702 this._closeRecordDetails(); 716 this._closeRecordDetails();
703 this._allRecordsCount = 0; 717 this._allRecordsCount = 0;
704 this._automaticallySizeWindow = true; 718 this._automaticallySizeWindow = true;
705 this._mainThreadTasks = []; 719 this._mainThreadTasks = [];
706 }, 720 },
(...skipping 906 matching lines...) Expand 10 before | Expand all | Expand 10 after
1613 1627
1614 /** 1628 /**
1615 * @param {!WebInspector.TimelinePresentationModel.Record} record 1629 * @param {!WebInspector.TimelinePresentationModel.Record} record
1616 * @return {boolean} 1630 * @return {boolean}
1617 */ 1631 */
1618 accept: function(record) 1632 accept: function(record)
1619 { 1633 {
1620 return WebInspector.TimelineRecordListRow.testContentMatching(record, th is._regExp); 1634 return WebInspector.TimelineRecordListRow.testContentMatching(record, th is._regExp);
1621 } 1635 }
1622 } 1636 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698