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

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

Issue 1755123003: Timeline: quit using Progress, introduce TimelineLifecycleDelegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments addressed Created 4 years, 9 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 | « third_party/WebKit/Source/devtools/front_end/timeline/TimelineModel.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 14 matching lines...) Expand all
25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 */ 30 */
31 31
32 /** 32 /**
33 * @constructor 33 * @constructor
34 * @extends {WebInspector.Panel} 34 * @extends {WebInspector.Panel}
35 * @implements {WebInspector.TimelineLifecycleDelegate}
35 * @implements {WebInspector.TimelineModeViewDelegate} 36 * @implements {WebInspector.TimelineModeViewDelegate}
36 * @implements {WebInspector.Searchable} 37 * @implements {WebInspector.Searchable}
37 */ 38 */
38 WebInspector.TimelinePanel = function() 39 WebInspector.TimelinePanel = function()
39 { 40 {
40 WebInspector.Panel.call(this, "timeline"); 41 WebInspector.Panel.call(this, "timeline");
41 this.registerRequiredCSS("timeline/timelinePanel.css"); 42 this.registerRequiredCSS("timeline/timelinePanel.css");
42 this.element.addEventListener("contextmenu", this._contextMenu.bind(this), f alse); 43 this.element.addEventListener("contextmenu", this._contextMenu.bind(this), f alse);
43 this._dropTarget = new WebInspector.DropTarget(this.element, [WebInspector.D ropTarget.Types.Files, WebInspector.DropTarget.Types.URIList], WebInspector.UISt ring("Drop timeline file or URL here"), this._handleDrop.bind(this)); 44 this._dropTarget = new WebInspector.DropTarget(this.element, [WebInspector.D ropTarget.Types.Files, WebInspector.DropTarget.Types.URIList], WebInspector.UISt ring("Drop timeline file or URL here"), this._handleDrop.bind(this));
44 45
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 if (Runtime.experiments.isEnabled("timelineRecordingPerspectives") && pe rspectiveSetting.get() === WebInspector.TimelinePanel.Perspectives.Load) { 382 if (Runtime.experiments.isEnabled("timelineRecordingPerspectives") && pe rspectiveSetting.get() === WebInspector.TimelinePanel.Perspectives.Load) {
382 this._reloadButton = new WebInspector.ToolbarButton(WebInspector.UIS tring("Record & Reload"), "refresh-toolbar-item"); 383 this._reloadButton = new WebInspector.ToolbarButton(WebInspector.UIS tring("Record & Reload"), "refresh-toolbar-item");
383 this._reloadButton.addEventListener("click", () => WebInspector.targ etManager.reloadPage()); 384 this._reloadButton.addEventListener("click", () => WebInspector.targ etManager.reloadPage());
384 this._panelToolbar.appendToolbarItem(this._reloadButton); 385 this._panelToolbar.appendToolbarItem(this._reloadButton);
385 } else { 386 } else {
386 this._panelToolbar.appendToolbarItem(WebInspector.Toolbar.createActi onButton(this._toggleRecordAction)); 387 this._panelToolbar.appendToolbarItem(WebInspector.Toolbar.createActi onButton(this._toggleRecordAction));
387 } 388 }
388 389
389 this._updateTimelineControls(); 390 this._updateTimelineControls();
390 var clearButton = new WebInspector.ToolbarButton(WebInspector.UIString(" Clear recording"), "clear-toolbar-item"); 391 var clearButton = new WebInspector.ToolbarButton(WebInspector.UIString(" Clear recording"), "clear-toolbar-item");
391 clearButton.addEventListener("click", this._onClearButtonClick, this); 392 clearButton.addEventListener("click", this._clear, this);
392 this._panelToolbar.appendToolbarItem(clearButton); 393 this._panelToolbar.appendToolbarItem(clearButton);
393 394
394 this._panelToolbar.appendSeparator(); 395 this._panelToolbar.appendSeparator();
395 396
396 this._panelToolbar.appendText(WebInspector.UIString("Capture:")); 397 this._panelToolbar.appendText(WebInspector.UIString("Capture:"));
397 398
398 this._captureNetworkSetting.addChangeListener(this._onNetworkChanged, th is); 399 this._captureNetworkSetting.addChangeListener(this._onNetworkChanged, th is);
399 if (!Runtime.experiments.isEnabled("timelineRecordingPerspectives") || p erspectiveSetting.get() === WebInspector.TimelinePanel.Perspectives.Custom) { 400 if (!Runtime.experiments.isEnabled("timelineRecordingPerspectives") || p erspectiveSetting.get() === WebInspector.TimelinePanel.Perspectives.Custom) {
400 if (Runtime.experiments.isEnabled("networkRequestsOnTimeline")) { 401 if (Runtime.experiments.isEnabled("networkRequestsOnTimeline")) {
401 this._panelToolbar.appendToolbarItem(this._createSettingCheckbox (WebInspector.UIString("Network"), 402 this._panelToolbar.appendToolbarItem(this._createSettingCheckbox (WebInspector.UIString("Network"),
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 var option = this._cpuThrottlingCombobox.createOption(name, "", String(value)); 438 var option = this._cpuThrottlingCombobox.createOption(name, "", String(value));
438 this._cpuThrottlingCombobox.addOption(option); 439 this._cpuThrottlingCombobox.addOption(option);
439 if (value === this._cpuThrottlingManager.rate()) 440 if (value === this._cpuThrottlingManager.rate())
440 this._cpuThrottlingCombobox.select(option); 441 this._cpuThrottlingCombobox.select(option);
441 } 442 }
442 addGroupingOption.call(this, WebInspector.UIString("No CPU throttlin g"), 1); 443 addGroupingOption.call(this, WebInspector.UIString("No CPU throttlin g"), 1);
443 for (var rate of [1.2, 1.5, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20, 30, 50]) 444 for (var rate of [1.2, 1.5, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20, 30, 50])
444 addGroupingOption.call(this, WebInspector.UIString("%fx slowdown ", rate), rate); 445 addGroupingOption.call(this, WebInspector.UIString("%fx slowdown ", rate), rate);
445 this._panelToolbar.appendToolbarItem(this._cpuThrottlingCombobox); 446 this._panelToolbar.appendToolbarItem(this._cpuThrottlingCombobox);
446 } 447 }
447
448 this._progressToolbarItem = new WebInspector.ToolbarItem(createElement(" div"));
449 this._progressToolbarItem.setVisible(false);
450 this._panelToolbar.appendToolbarItem(this._progressToolbarItem);
451 }, 448 },
452 449
453 /**
454 * @return {!WebInspector.Progress}
455 */
456 _prepareToLoadTimeline: function() 450 _prepareToLoadTimeline: function()
457 { 451 {
458 /** 452 console.assert(this._state === WebInspector.TimelinePanel.State.Idle);
459 * @this {!WebInspector.TimelinePanel} 453 this._setState(WebInspector.TimelinePanel.State.Loading);
460 */
461 function finishLoading()
462 {
463 this._setState(WebInspector.TimelinePanel.State.Idle);
464 this._progressToolbarItem.setVisible(false);
465 this._progressToolbarItem.element.removeChildren();
466 this._hideRecordingHelpMessage();
467 }
468 console.assert(this._state === WebInspector.TimelinePanel.State.Idle);
469 this._setState(WebInspector.TimelinePanel.State.Loading);
470 var progressIndicator = new WebInspector.ProgressIndicator();
471 this._progressToolbarItem.setVisible(true);
472 this._progressToolbarItem.element.appendChild(progressIndicator.element) ;
473 return new WebInspector.ProgressProxy(progressIndicator, finishLoading.b ind(this));
474 }, 454 },
475 455
476 _createFileSelector: function() 456 _createFileSelector: function()
477 { 457 {
478 if (this._fileSelectorElement) 458 if (this._fileSelectorElement)
479 this._fileSelectorElement.remove(); 459 this._fileSelectorElement.remove();
480 this._fileSelectorElement = WebInspector.createFileSelectorElement(this. _loadFromFile.bind(this)); 460 this._fileSelectorElement = WebInspector.createFileSelectorElement(this. _loadFromFile.bind(this));
481 this.element.appendChild(this._fileSelectorElement); 461 this.element.appendChild(this._fileSelectorElement);
482 }, 462 },
483 463
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 return true; 509 return true;
530 }, 510 },
531 511
532 /** 512 /**
533 * @param {!File} file 513 * @param {!File} file
534 */ 514 */
535 _loadFromFile: function(file) 515 _loadFromFile: function(file)
536 { 516 {
537 if (this._state !== WebInspector.TimelinePanel.State.Idle) 517 if (this._state !== WebInspector.TimelinePanel.State.Idle)
538 return; 518 return;
539 WebInspector.TimelineLoader.loadFromFile(this._model, file, this._prepar eToLoadTimeline()); 519 this._prepareToLoadTimeline();
520 this._loader = WebInspector.TimelineLoader.loadFromFile(this._tracingMod el, file, this);
540 this._createFileSelector(); 521 this._createFileSelector();
541 }, 522 },
542 523
543 /** 524 /**
544 * @param {string} url 525 * @param {string} url
545 */ 526 */
546 _loadFromURL: function(url) 527 _loadFromURL: function(url)
547 { 528 {
548 if (this._state !== WebInspector.TimelinePanel.State.Idle) 529 if (this._state !== WebInspector.TimelinePanel.State.Idle)
549 return; 530 return;
550 WebInspector.TimelineLoader.loadFromURL(this._model, url, this._prepareT oLoadTimeline()); 531 this._prepareToLoadTimeline();
532 this._loader = WebInspector.TimelineLoader.loadFromURL(this._tracingMode l, url, this);
551 }, 533 },
552 534
553 _refreshViews: function() 535 _refreshViews: function()
554 { 536 {
555 for (var i = 0; i < this._currentViews.length; ++i) { 537 for (var i = 0; i < this._currentViews.length; ++i) {
556 var view = this._currentViews[i]; 538 var view = this._currentViews[i];
557 view.refreshRecords(); 539 view.refreshRecords();
558 } 540 }
559 this._updateSelectionDetails(); 541 this._updateSelectionDetails();
560 }, 542 },
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 this._recordingOptionUIControls.forEach(handler); 612 this._recordingOptionUIControls.forEach(handler);
631 }, 613 },
632 614
633 /** 615 /**
634 * @param {boolean} userInitiated 616 * @param {boolean} userInitiated
635 */ 617 */
636 _startRecording: function(userInitiated) 618 _startRecording: function(userInitiated)
637 { 619 {
638 console.assert(!this._statusPane, "Status pane is already opened."); 620 console.assert(!this._statusPane, "Status pane is already opened.");
639 this._setState(WebInspector.TimelinePanel.State.StartPending); 621 this._setState(WebInspector.TimelinePanel.State.StartPending);
640 this._statusPane = new WebInspector.TimelinePanel.StatusPane(); 622 this._statusPane = new WebInspector.TimelinePanel.StatusPane(true, this. _stopRecording.bind(this));
641 this._statusPane.addEventListener(WebInspector.TimelinePanel.StatusPane. Events.Finish, this._stopRecording, this);
642 this._statusPane.showPane(this._statusPaneContainer); 623 this._statusPane.showPane(this._statusPaneContainer);
643 this._statusPane.updateStatus(WebInspector.UIString("Initializing record ing\u2026")); 624 this._statusPane.updateStatus(WebInspector.UIString("Initializing record ing\u2026"));
644 625
645 this._autoRecordGeneration = userInitiated ? null : Symbol("Generation") ; 626 this._autoRecordGeneration = userInitiated ? null : Symbol("Generation") ;
646 this._model.startRecording(true, this._captureJSProfileSetting.get(), th is._captureMemorySetting.get(), this._captureLayersAndPicturesSetting.get(), thi s._captureFilmStripSetting && this._captureFilmStripSetting.get()); 627 this._model.startRecording(true, this._captureJSProfileSetting.get(), th is._captureMemorySetting.get(), this._captureLayersAndPicturesSetting.get(), thi s._captureFilmStripSetting && this._captureFilmStripSetting.get());
647 628
648 for (var i = 0; i < this._overviewControls.length; ++i) 629 for (var i = 0; i < this._overviewControls.length; ++i)
649 this._overviewControls[i].timelineStarted(); 630 this._overviewControls[i].timelineStarted();
650 631
651 if (userInitiated) 632 if (userInitiated)
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
691 this._stopRecording(); 672 this._stopRecording();
692 }, 673 },
693 674
694 _garbageCollectButtonClicked: function() 675 _garbageCollectButtonClicked: function()
695 { 676 {
696 var targets = WebInspector.targetManager.targets(); 677 var targets = WebInspector.targetManager.targets();
697 for (var i = 0; i < targets.length; ++i) 678 for (var i = 0; i < targets.length; ++i)
698 targets[i].heapProfilerAgent().collectGarbage(); 679 targets[i].heapProfilerAgent().collectGarbage();
699 }, 680 },
700 681
701 _onClearButtonClick: function() 682 _clear: function()
702 { 683 {
703 this._tracingModel.reset(); 684 this._tracingModel.reset();
704 this._model.reset(); 685 this._model.reset();
705 this._showRecordingHelpMessage(); 686 this._showRecordingHelpMessage();
706 }, 687 },
707 688
708 _onRecordsCleared: function() 689 _onRecordsCleared: function()
709 { 690 {
710 this.requestWindowTimes(0, Infinity); 691 this.requestWindowTimes(0, Infinity);
711 delete this._selection; 692 delete this._selection;
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
809 this._setMarkers(); 790 this._setMarkers();
810 this._overviewPane.scheduleUpdate(); 791 this._overviewPane.scheduleUpdate();
811 this._updateSearchHighlight(false, true); 792 this._updateSearchHighlight(false, true);
812 if (this._statusPane) { 793 if (this._statusPane) {
813 this._statusPane.hide(); 794 this._statusPane.hide();
814 delete this._statusPane; 795 delete this._statusPane;
815 } 796 }
816 this._detailsSplitWidget.showBoth(); 797 this._detailsSplitWidget.showBoth();
817 }, 798 },
818 799
800 /**
801 * @override
802 */
803 loadingStarted: function()
804 {
805 this._hideRecordingHelpMessage();
806 this._model.startCollectingTraceEvents(true);
807
808 if (this._statusPane)
809 this._statusPane.hide();
810 this._statusPane = new WebInspector.TimelinePanel.StatusPane(false, this ._cancelLoading.bind(this));
811 this._statusPane.showPane(this._statusPaneContainer);
812 this._statusPane.updateStatus(WebInspector.UIString("Loading timeline\u2 026"));
813 this.loadingProgress(0);
814 },
815
816 /**
817 * @override
818 * @param {number=} progress
819 */
820 loadingProgress: function(progress)
821 {
822 if (typeof progress === "number")
823 this._statusPane.updateProgressBar(WebInspector.UIString("Received") , progress * 100);
824 },
825
826 /**
827 * @override
828 * @param {boolean} success
829 */
830 loadingComplete: function(success)
831 {
832 if (!success) {
833 this._onRecordingStopped();
834 this._clear();
835 } else {
836 this._model.tracingComplete();
837 }
838 delete this._loader;
839 },
840
841 _cancelLoading: function()
842 {
843 if (this._loader)
844 this._loader.cancel();
845 },
846
819 _setMarkers: function() 847 _setMarkers: function()
820 { 848 {
821 var markers = new Map(); 849 var markers = new Map();
822 var recordTypes = WebInspector.TimelineModel.RecordType; 850 var recordTypes = WebInspector.TimelineModel.RecordType;
823 var zeroTime = this._model.minimumRecordTime(); 851 var zeroTime = this._model.minimumRecordTime();
824 for (var record of this._model.eventDividerRecords()) { 852 for (var record of this._model.eventDividerRecords()) {
825 if (record.type() === recordTypes.TimeStamp || record.type() === rec ordTypes.ConsoleTime) 853 if (record.type() === recordTypes.TimeStamp || record.type() === rec ordTypes.ConsoleTime)
826 continue; 854 continue;
827 markers.set(record.startTime(), WebInspector.TimelineUIUtils.createD ividerForRecord(record, zeroTime, 0)); 855 markers.set(record.startTime(), WebInspector.TimelineUIUtils.createD ividerForRecord(record, zeroTime, 0));
828 } 856 }
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after
1238 leftTime = Math.max(leftTime - 0.05 * span, this._tracingModel.minim umRecordTime()); 1266 leftTime = Math.max(leftTime - 0.05 * span, this._tracingModel.minim umRecordTime());
1239 rightTime = Math.min(rightTime + 0.05 * span, this._tracingModel.max imumRecordTime()); 1267 rightTime = Math.min(rightTime + 0.05 * span, this._tracingModel.max imumRecordTime());
1240 } 1268 }
1241 this.requestWindowTimes(leftTime, rightTime); 1269 this.requestWindowTimes(leftTime, rightTime);
1242 }, 1270 },
1243 1271
1244 __proto__: WebInspector.Panel.prototype 1272 __proto__: WebInspector.Panel.prototype
1245 } 1273 }
1246 1274
1247 /** 1275 /**
1276 * @interface
1277 */
1278 WebInspector.TimelineLifecycleDelegate = function()
1279 {
1280 }
1281
1282 WebInspector.TimelineLifecycleDelegate.prototype = {
1283 loadingStarted: function() {},
1284
1285 /**
1286 * @param {number=} progress
1287 */
1288 loadingProgress: function(progress) {},
1289
1290 /**
1291 * @param {boolean} success
1292 */
1293 loadingComplete: function(success) {},
1294 };
1295
1296
1297 /**
1248 * @constructor 1298 * @constructor
1249 * @extends {WebInspector.VBox} 1299 * @extends {WebInspector.VBox}
1250 * @implements {WebInspector.TimelineModeView} 1300 * @implements {WebInspector.TimelineModeView}
1251 * @param {!WebInspector.TimelineModeViewDelegate} delegate 1301 * @param {!WebInspector.TimelineModeViewDelegate} delegate
1252 * @param {!WebInspector.TimelineTreeView} innerTreeView 1302 * @param {!WebInspector.TimelineTreeView} innerTreeView
1253 */ 1303 */
1254 WebInspector.TimelineTreeModeView = function(delegate, innerTreeView) 1304 WebInspector.TimelineTreeModeView = function(delegate, innerTreeView)
1255 { 1305 {
1256 WebInspector.VBox.call(this); 1306 WebInspector.VBox.call(this);
1257 this._treeView = innerTreeView; 1307 this._treeView = innerTreeView;
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
1733 return true; 1783 return true;
1734 } 1784 }
1735 }, 1785 },
1736 1786
1737 __proto__: WebInspector.TimelineModel.Filter.prototype 1787 __proto__: WebInspector.TimelineModel.Filter.prototype
1738 } 1788 }
1739 1789
1740 /** 1790 /**
1741 * @constructor 1791 * @constructor
1742 * @extends {WebInspector.VBox} 1792 * @extends {WebInspector.VBox}
1793 * @param {boolean} showTimer
1794 * @param {function()} stopCallback
1743 */ 1795 */
1744 WebInspector.TimelinePanel.StatusPane = function() 1796 WebInspector.TimelinePanel.StatusPane = function(showTimer, stopCallback)
1745 { 1797 {
1746 WebInspector.VBox.call(this, true); 1798 WebInspector.VBox.call(this, true);
1747 this.registerRequiredCSS("timeline/timelineStatusDialog.css"); 1799 this.registerRequiredCSS("timeline/timelineStatusDialog.css");
1748 this.contentElement.classList.add("timeline-status-dialog"); 1800 this.contentElement.classList.add("timeline-status-dialog");
1749 1801
1750 var statusLine = this.contentElement.createChild("div", "status-dialog-line status"); 1802 var statusLine = this.contentElement.createChild("div", "status-dialog-line status");
1751 statusLine.createChild("div", "label").textContent = WebInspector.UIString(" Status"); 1803 statusLine.createChild("div", "label").textContent = WebInspector.UIString(" Status");
1752 this._status = statusLine.createChild("div", "content"); 1804 this._status = statusLine.createChild("div", "content");
1753 1805
1754 var timeLine = this.contentElement.createChild("div", "status-dialog-line ti me"); 1806 if (showTimer) {
1755 timeLine.createChild("div", "label").textContent = WebInspector.UIString("Ti me"); 1807 var timeLine = this.contentElement.createChild("div", "status-dialog-lin e time");
1756 this._time = timeLine.createChild("div", "content"); 1808 timeLine.createChild("div", "label").textContent = WebInspector.UIString ("Time");
1757 1809 this._time = timeLine.createChild("div", "content");
1810 }
1758 var progressLine = this.contentElement.createChild("div", "status-dialog-lin e progress"); 1811 var progressLine = this.contentElement.createChild("div", "status-dialog-lin e progress");
1759 this._progressLabel = progressLine.createChild("div", "label"); 1812 this._progressLabel = progressLine.createChild("div", "label");
1760 this._progressBar = progressLine.createChild("div", "indicator-container").c reateChild("div", "indicator"); 1813 this._progressBar = progressLine.createChild("div", "indicator-container").c reateChild("div", "indicator");
1761 1814
1762 this._stopButton = createTextButton(WebInspector.UIString("Finish"), this._o nFinish.bind(this)); 1815 this._stopButton = createTextButton(WebInspector.UIString("Stop"), stopCallb ack);
1763 this.contentElement.createChild("div", "stop-button").appendChild(this._stop Button); 1816 this.contentElement.createChild("div", "stop-button").appendChild(this._stop Button);
1764 } 1817 }
1765 1818
1766 WebInspector.TimelinePanel.StatusPane.Events = {
1767 Finish: "Finish"
1768 }
1769
1770 WebInspector.TimelinePanel.StatusPane.prototype = { 1819 WebInspector.TimelinePanel.StatusPane.prototype = {
1771 finish: function() 1820 finish: function()
1772 { 1821 {
1773 this._stopTimer(); 1822 this._stopTimer();
1774 this._stopButton.disabled = true; 1823 this._stopButton.disabled = true;
1775 }, 1824 },
1776 1825
1777 hide: function() 1826 hide: function()
1778 { 1827 {
1779 this.element.parentNode.classList.remove("tinted"); 1828 this.element.parentNode.classList.remove("tinted");
(...skipping 21 matching lines...) Expand all
1801 * @param {string} activity 1850 * @param {string} activity
1802 * @param {number} percent 1851 * @param {number} percent
1803 */ 1852 */
1804 updateProgressBar: function(activity, percent) 1853 updateProgressBar: function(activity, percent)
1805 { 1854 {
1806 this._progressLabel.textContent = activity; 1855 this._progressLabel.textContent = activity;
1807 this._progressBar.style.width = percent.toFixed(1) + "%"; 1856 this._progressBar.style.width = percent.toFixed(1) + "%";
1808 this._updateTimer(); 1857 this._updateTimer();
1809 }, 1858 },
1810 1859
1811 _onFinish: function()
1812 {
1813 this.dispatchEventToListeners(WebInspector.TimelinePanel.StatusPane.Even ts.Finish);
1814 },
1815
1816 startTimer: function() 1860 startTimer: function()
1817 { 1861 {
1818 this._startTime = Date.now(); 1862 this._startTime = Date.now();
1819 this._timeUpdateTimer = setInterval(this._updateTimer.bind(this, false), 1000); 1863 this._timeUpdateTimer = setInterval(this._updateTimer.bind(this, false), 1000);
1820 this._updateTimer(); 1864 this._updateTimer();
1821 }, 1865 },
1822 1866
1823 _stopTimer: function() 1867 _stopTimer: function()
1824 { 1868 {
1825 if (!this._timeUpdateTimer) 1869 if (!this._timeUpdateTimer)
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
2116 * @override 2160 * @override
2117 * @param {!WebInspector.Target} target 2161 * @param {!WebInspector.Target} target
2118 */ 2162 */
2119 targetRemoved: function(target) 2163 targetRemoved: function(target)
2120 { 2164 {
2121 this._targets.remove(target, true); 2165 this._targets.remove(target, true);
2122 }, 2166 },
2123 2167
2124 __proto__: WebInspector.Object.prototype 2168 __proto__: WebInspector.Object.prototype
2125 } 2169 }
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/timeline/TimelineModel.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698