Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 28 matching lines...) Expand all Loading... | |
| 39 super('timeline'); | 39 super('timeline'); |
| 40 this.registerRequiredCSS('timeline/timelinePanel.css'); | 40 this.registerRequiredCSS('timeline/timelinePanel.css'); |
| 41 this.element.addEventListener('contextmenu', this._contextMenu.bind(this), f alse); | 41 this.element.addEventListener('contextmenu', this._contextMenu.bind(this), f alse); |
| 42 this._dropTarget = new UI.DropTarget( | 42 this._dropTarget = new UI.DropTarget( |
| 43 this.element, [UI.DropTarget.Types.Files, UI.DropTarget.Types.URIList], | 43 this.element, [UI.DropTarget.Types.Files, UI.DropTarget.Types.URIList], |
| 44 Common.UIString('Drop timeline file or URL here'), this._handleDrop.bind (this)); | 44 Common.UIString('Drop timeline file or URL here'), this._handleDrop.bind (this)); |
| 45 | 45 |
| 46 /** @type {!Array<!UI.ToolbarItem>} */ | 46 /** @type {!Array<!UI.ToolbarItem>} */ |
| 47 this._recordingOptionUIControls = []; | 47 this._recordingOptionUIControls = []; |
| 48 this._state = Timeline.TimelinePanel.State.Idle; | 48 this._state = Timeline.TimelinePanel.State.Idle; |
| 49 this._recordingPageReload = false; | |
| 49 this._windowStartTime = 0; | 50 this._windowStartTime = 0; |
| 50 this._windowEndTime = Infinity; | 51 this._windowEndTime = Infinity; |
| 51 this._millisecondsToRecordAfterLoadEvent = 3000; | 52 this._millisecondsToRecordAfterLoadEvent = 3000; |
| 52 this._toggleRecordAction = | 53 this._toggleRecordAction = |
| 53 /** @type {!UI.Action }*/ (UI.actionRegistry.action('timeline.toggle-rec ording')); | 54 /** @type {!UI.Action }*/ (UI.actionRegistry.action('timeline.toggle-rec ording')); |
| 54 | 55 |
| 55 /** @type {!Array<!TimelineModel.TimelineModelFilter>} */ | 56 /** @type {!Array<!TimelineModel.TimelineModelFilter>} */ |
| 56 this._filters = []; | 57 this._filters = []; |
| 57 if (!Runtime.experiments.isEnabled('timelineShowAllEvents')) { | 58 if (!Runtime.experiments.isEnabled('timelineShowAllEvents')) { |
| 58 this._filters.push(Timeline.TimelineUIUtils.visibleEventsFilter()); | 59 this._filters.push(Timeline.TimelineUIUtils.visibleEventsFilter()); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 98 PerfUI.TimelineOverviewPane.Events.WindowChanged, this._onWindowChanged. bind(this)); | 99 PerfUI.TimelineOverviewPane.Events.WindowChanged, this._onWindowChanged. bind(this)); |
| 99 this._overviewPane.show(topPaneElement); | 100 this._overviewPane.show(topPaneElement); |
| 100 /** @type {!Array<!Timeline.TimelineEventOverview>} */ | 101 /** @type {!Array<!Timeline.TimelineEventOverview>} */ |
| 101 this._overviewControls = []; | 102 this._overviewControls = []; |
| 102 | 103 |
| 103 this._statusPaneContainer = this._timelinePane.element.createChild('div', 's tatus-pane-container fill'); | 104 this._statusPaneContainer = this._timelinePane.element.createChild('div', 's tatus-pane-container fill'); |
| 104 | 105 |
| 105 this._createFileSelector(); | 106 this._createFileSelector(); |
| 106 | 107 |
| 107 SDK.targetManager.addModelListener( | 108 SDK.targetManager.addModelListener( |
| 108 SDK.ResourceTreeModel, SDK.ResourceTreeModel.Events.PageReloadRequested, this._pageReloadRequested, this); | |
| 109 SDK.targetManager.addModelListener( | |
| 110 SDK.ResourceTreeModel, SDK.ResourceTreeModel.Events.Load, this._loadEven tFired, this); | 109 SDK.ResourceTreeModel, SDK.ResourceTreeModel.Events.Load, this._loadEven tFired, this); |
| 111 | 110 |
| 112 if (Runtime.experiments.isEnabled('timelineMultipleMainViews')) { | 111 if (Runtime.experiments.isEnabled('timelineMultipleMainViews')) { |
| 113 var viewMode = Timeline.TimelinePanel.ViewMode; | 112 var viewMode = Timeline.TimelinePanel.ViewMode; |
| 114 this._tabbedPane = new UI.TabbedPane(); | 113 this._tabbedPane = new UI.TabbedPane(); |
| 115 this._tabbedPane.appendTab(viewMode.FlameChart, Common.UIString('Flame Cha rt'), new UI.VBox()); | 114 this._tabbedPane.appendTab(viewMode.FlameChart, Common.UIString('Flame Cha rt'), new UI.VBox()); |
| 116 this._tabbedPane.appendTab(viewMode.BottomUp, Common.UIString('Bottom-Up') , new UI.VBox()); | 115 this._tabbedPane.appendTab(viewMode.BottomUp, Common.UIString('Bottom-Up') , new UI.VBox()); |
| 117 this._tabbedPane.appendTab(viewMode.CallTree, Common.UIString('Call Tree') , new UI.VBox()); | 116 this._tabbedPane.appendTab(viewMode.CallTree, Common.UIString('Call Tree') , new UI.VBox()); |
| 118 this._tabbedPane.appendTab(viewMode.EventLog, Common.UIString('Event Log') , new UI.VBox()); | 117 this._tabbedPane.appendTab(viewMode.EventLog, Common.UIString('Event Log') , new UI.VBox()); |
| 119 this._tabbedPane.addEventListener(UI.TabbedPane.Events.TabSelected, this._ onMainViewChanged.bind(this)); | 118 this._tabbedPane.addEventListener(UI.TabbedPane.Events.TabSelected, this._ onMainViewChanged.bind(this)); |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 210 */ | 209 */ |
| 211 _createSettingCheckbox(setting, tooltip) { | 210 _createSettingCheckbox(setting, tooltip) { |
| 212 const checkboxItem = new UI.ToolbarSettingCheckbox(setting, tooltip); | 211 const checkboxItem = new UI.ToolbarSettingCheckbox(setting, tooltip); |
| 213 this._recordingOptionUIControls.push(checkboxItem); | 212 this._recordingOptionUIControls.push(checkboxItem); |
| 214 return checkboxItem; | 213 return checkboxItem; |
| 215 } | 214 } |
| 216 | 215 |
| 217 _populateToolbar() { | 216 _populateToolbar() { |
| 218 // Record | 217 // Record |
| 219 this._panelToolbar.appendToolbarItem(UI.Toolbar.createActionButton(this._tog gleRecordAction)); | 218 this._panelToolbar.appendToolbarItem(UI.Toolbar.createActionButton(this._tog gleRecordAction)); |
| 220 this._panelToolbar.appendToolbarItem(UI.Toolbar.createActionButtonForId('mai n.reload')); | 219 this._panelToolbar.appendToolbarItem(UI.Toolbar.createActionButtonForId('tim eline.record-reload')); |
| 221 this._clearButton = new UI.ToolbarButton(Common.UIString('Clear'), 'largeico n-clear'); | 220 this._clearButton = new UI.ToolbarButton(Common.UIString('Clear'), 'largeico n-clear'); |
| 222 this._clearButton.addEventListener(UI.ToolbarButton.Events.Click, () => this ._clear()); | 221 this._clearButton.addEventListener(UI.ToolbarButton.Events.Click, () => this ._clear()); |
| 223 this._panelToolbar.appendToolbarItem(this._clearButton); | 222 this._panelToolbar.appendToolbarItem(this._clearButton); |
| 224 this._panelToolbar.appendSeparator(); | 223 this._panelToolbar.appendSeparator(); |
| 225 | 224 |
| 226 // View | 225 // View |
| 227 this._panelToolbar.appendSeparator(); | 226 this._panelToolbar.appendSeparator(); |
| 228 this._showScreenshotsToolbarCheckbox = | 227 this._showScreenshotsToolbarCheckbox = |
| 229 this._createSettingCheckbox(this._showScreenshotsSetting, Common.UIStrin g('Capture screenshots')); | 228 this._createSettingCheckbox(this._showScreenshotsSetting, Common.UIStrin g('Capture screenshots')); |
| 230 this._panelToolbar.appendToolbarItem(this._showScreenshotsToolbarCheckbox); | 229 this._panelToolbar.appendToolbarItem(this._showScreenshotsToolbarCheckbox); |
| (...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 500 } | 499 } |
| 501 | 500 |
| 502 /** | 501 /** |
| 503 * @param {boolean} enabled | 502 * @param {boolean} enabled |
| 504 */ | 503 */ |
| 505 _setUIControlsEnabled(enabled) { | 504 _setUIControlsEnabled(enabled) { |
| 506 this._recordingOptionUIControls.forEach(control => control.setEnabled(enable d)); | 505 this._recordingOptionUIControls.forEach(control => control.setEnabled(enable d)); |
| 507 } | 506 } |
| 508 | 507 |
| 509 /** | 508 /** |
| 510 * @param {!SDK.TracingManager} tracingManager | |
| 511 * @param {boolean} userInitiated | |
| 512 * @return {!Promise} | 509 * @return {!Promise} |
| 513 */ | 510 */ |
| 514 _startRecording(tracingManager, userInitiated) { | 511 _startRecording() { |
| 512 var tracingManagers = SDK.targetManager.models(SDK.TracingManager); | |
| 513 if (!tracingManagers.length) | |
| 514 return Promise.resolve(); | |
| 515 | |
| 515 console.assert(!this._statusPane, 'Status pane is already opened.'); | 516 console.assert(!this._statusPane, 'Status pane is already opened.'); |
| 516 this._setState(Timeline.TimelinePanel.State.StartPending); | 517 this._setState(Timeline.TimelinePanel.State.StartPending); |
| 517 this._showRecordingStarted(); | 518 this._showRecordingStarted(); |
| 518 | 519 |
| 519 this._autoRecordGeneration = userInitiated ? null : {tracingManager: tracing Manager}; | |
| 520 var enabledTraceProviders = Extensions.extensionServer.traceProviders().filt er( | 520 var enabledTraceProviders = Extensions.extensionServer.traceProviders().filt er( |
| 521 provider => Timeline.TimelinePanel._settingForTraceProvider(provider).ge t()); | 521 provider => Timeline.TimelinePanel._settingForTraceProvider(provider).ge t()); |
| 522 | 522 |
| 523 const recordingOptions = { | 523 const recordingOptions = { |
| 524 enableJSSampling: !this._disableCaptureJSProfileSetting.get(), | 524 enableJSSampling: !this._disableCaptureJSProfileSetting.get(), |
| 525 capturePictures: this._captureLayersAndPicturesSetting.get(), | 525 capturePictures: this._captureLayersAndPicturesSetting.get(), |
| 526 captureFilmStrip: this._showScreenshotsSetting.get() | 526 captureFilmStrip: this._showScreenshotsSetting.get() |
| 527 }; | 527 }; |
| 528 | 528 |
| 529 this._pendingPerformanceModel = new Timeline.PerformanceModel(); | 529 this._pendingPerformanceModel = new Timeline.PerformanceModel(); |
| 530 this._controller = new Timeline.TimelineController(tracingManager, this._pen dingPerformanceModel, this); | 530 this._controller = new Timeline.TimelineController(tracingManagers[0], this. _pendingPerformanceModel, this); |
| 531 Host.userMetrics.actionTaken( | 531 Host.userMetrics.actionTaken(Host.UserMetrics.Action.TimelineStarted); |
| 532 userInitiated ? Host.UserMetrics.Action.TimelineStarted : Host.UserMetri cs.Action.TimelinePageReloadStarted); | |
| 533 this._setUIControlsEnabled(false); | 532 this._setUIControlsEnabled(false); |
| 534 this._hideLandingPage(); | 533 this._hideLandingPage(); |
| 535 return this._controller.startRecording(recordingOptions, enabledTraceProvide rs) | 534 return this._controller.startRecording(recordingOptions, enabledTraceProvide rs) |
| 536 .then(() => this._recordingStarted()); | 535 .then(() => this._recordingStarted()); |
| 537 } | 536 } |
| 538 | 537 |
| 539 _stopRecording() { | 538 _stopRecording() { |
| 540 if (this._statusPane) { | 539 if (this._statusPane) { |
| 541 this._statusPane.finish(); | 540 this._statusPane.finish(); |
| 542 this._statusPane.updateStatus(Common.UIString('Stopping timeline\u2026')); | 541 this._statusPane.updateStatus(Common.UIString('Stopping timeline\u2026')); |
| 543 this._statusPane.updateProgressBar(Common.UIString('Received'), 0); | 542 this._statusPane.updateProgressBar(Common.UIString('Received'), 0); |
| 544 } | 543 } |
| 545 this._setState(Timeline.TimelinePanel.State.StopPending); | 544 this._setState(Timeline.TimelinePanel.State.StopPending); |
| 546 this._autoRecordGeneration = null; | |
| 547 this._controller.stopRecording(); | 545 this._controller.stopRecording(); |
| 548 this._controller = null; | 546 this._controller = null; |
| 549 this._setUIControlsEnabled(true); | 547 this._setUIControlsEnabled(true); |
| 550 } | 548 } |
| 551 | 549 |
| 552 _onSuspendStateChanged() { | 550 _onSuspendStateChanged() { |
| 553 this._updateTimelineControls(); | 551 this._updateTimelineControls(); |
| 554 } | 552 } |
| 555 | 553 |
| 556 _updateTimelineControls() { | 554 _updateTimelineControls() { |
| 557 var state = Timeline.TimelinePanel.State; | 555 var state = Timeline.TimelinePanel.State; |
| 558 this._toggleRecordAction.setToggled(this._state === state.Recording); | 556 this._toggleRecordAction.setToggled(this._state === state.Recording); |
| 559 this._toggleRecordAction.setEnabled(this._state === state.Recording || this. _state === state.Idle); | 557 this._toggleRecordAction.setEnabled(this._state === state.Recording || this. _state === state.Idle); |
| 560 this._clearButton.setEnabled(this._state === state.Idle); | 558 this._clearButton.setEnabled(this._state === state.Idle); |
| 561 this._panelToolbar.setEnabled(this._state !== state.Loading); | 559 this._panelToolbar.setEnabled(this._state !== state.Loading); |
| 562 this._dropTarget.setEnabled(this._state === state.Idle); | 560 this._dropTarget.setEnabled(this._state === state.Idle); |
| 563 } | 561 } |
| 564 | 562 |
| 565 _toggleRecording() { | 563 _toggleRecording() { |
| 566 if (this._state === Timeline.TimelinePanel.State.Idle) { | 564 if (this._state === Timeline.TimelinePanel.State.Idle) { |
| 567 var tracingManagers = SDK.targetManager.models(SDK.TracingManager); | 565 this._recordingPageReload = false; |
| 568 if (tracingManagers.length) | 566 this._startRecording(); |
| 569 this._startRecording(tracingManagers[0], true); | |
| 570 } else if (this._state === Timeline.TimelinePanel.State.Recording) { | 567 } else if (this._state === Timeline.TimelinePanel.State.Recording) { |
| 571 this._stopRecording(); | 568 this._stopRecording(); |
| 572 } | 569 } |
| 573 } | 570 } |
| 574 | 571 |
| 572 _recordReload() { | |
| 573 if (this._state !== Timeline.TimelinePanel.State.Idle) | |
| 574 return; | |
| 575 this._recordingPageReload = true; | |
| 576 this._startRecording(); | |
| 577 } | |
| 578 | |
| 575 _clear() { | 579 _clear() { |
| 576 this._showLandingPage(); | 580 this._showLandingPage(); |
| 577 this._reset(); | 581 this._reset(); |
| 578 } | 582 } |
| 579 | 583 |
| 580 _reset() { | 584 _reset() { |
| 581 PerfUI.LineLevelProfile.instance().reset(); | 585 PerfUI.LineLevelProfile.instance().reset(); |
| 582 this._setModel(null); | 586 this._setModel(null); |
| 583 delete this._selection; | 587 delete this._selection; |
| 584 } | 588 } |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 610 this.requestWindowTimes(0, Infinity); | 614 this.requestWindowTimes(0, Infinity); |
| 611 } | 615 } |
| 612 this._overviewPane.scheduleUpdate(); | 616 this._overviewPane.scheduleUpdate(); |
| 613 | 617 |
| 614 this.select(null); | 618 this.select(null); |
| 615 if (this._flameChart) | 619 if (this._flameChart) |
| 616 this._flameChart.resizeToPreferredHeights(); | 620 this._flameChart.resizeToPreferredHeights(); |
| 617 } | 621 } |
| 618 | 622 |
| 619 _recordingStarted() { | 623 _recordingStarted() { |
| 624 if (this._recordingPageReload) { | |
| 625 var target = this._controller.mainTarget(); | |
| 626 var resourceModel = target.model(SDK.ResourceTreeModel); | |
| 627 if (resourceModel) | |
| 628 resourceModel.reloadPage(); | |
| 629 } | |
| 620 this._reset(); | 630 this._reset(); |
| 621 this._setState(Timeline.TimelinePanel.State.Recording); | 631 this._setState(Timeline.TimelinePanel.State.Recording); |
| 622 this._showRecordingStarted(); | 632 this._showRecordingStarted(); |
| 623 this._statusPane.updateStatus(Common.UIString('Profiling\u2026')); | 633 this._statusPane.updateStatus(Common.UIString('Profiling\u2026')); |
| 624 this._statusPane.updateProgressBar(Common.UIString('Buffer usage'), 0); | 634 this._statusPane.updateProgressBar(Common.UIString('Buffer usage'), 0); |
| 625 this._statusPane.startTimer(); | 635 this._statusPane.startTimer(); |
| 626 this._hideLandingPage(); | 636 this._hideLandingPage(); |
| 627 } | 637 } |
| 628 | 638 |
| 629 /** | 639 /** |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 660 var recordKey = | 670 var recordKey = |
| 661 encloseWithTag('b', UI.shortcutRegistry.shortcutDescriptorsForAction('ti meline.toggle-recording')[0].name); | 671 encloseWithTag('b', UI.shortcutRegistry.shortcutDescriptorsForAction('ti meline.toggle-recording')[0].name); |
| 662 var reloadKey = encloseWithTag('b', UI.shortcutRegistry.shortcutDescriptorsF orAction('main.reload')[0].name); | 672 var reloadKey = encloseWithTag('b', UI.shortcutRegistry.shortcutDescriptorsF orAction('main.reload')[0].name); |
| 663 var navigateNode = encloseWithTag('b', Common.UIString('WASD')); | 673 var navigateNode = encloseWithTag('b', Common.UIString('WASD')); |
| 664 | 674 |
| 665 this._landingPage = new UI.VBox(); | 675 this._landingPage = new UI.VBox(); |
| 666 this._landingPage.contentElement.classList.add('timeline-landing-page', 'fil l'); | 676 this._landingPage.contentElement.classList.add('timeline-landing-page', 'fil l'); |
| 667 var centered = this._landingPage.contentElement.createChild('div'); | 677 var centered = this._landingPage.contentElement.createChild('div'); |
| 668 | 678 |
| 669 var recordButton = UI.createInlineButton(UI.Toolbar.createActionButton(this. _toggleRecordAction)); | 679 var recordButton = UI.createInlineButton(UI.Toolbar.createActionButton(this. _toggleRecordAction)); |
| 670 var reloadButton = UI.createInlineButton(UI.Toolbar.createActionButtonForId( 'main.reload')); | 680 var reloadButton = UI.createInlineButton(UI.Toolbar.createActionButtonForId( 'timeline.record-reload')); |
| 671 | 681 |
| 672 centered.createChild('p').appendChild(UI.formatLocalized( | 682 centered.createChild('p').appendChild(UI.formatLocalized( |
| 673 'Click the record button %s or hit %s to capture a new recording.\n' + | 683 'Click the record button %s or hit %s to capture a new recording.\n' + |
| 674 'Click the reload button %s or hit %s to record and evaluate the page lo ad.', | 684 'Click the reload button %s or hit %s to record and evaluate the page lo ad.', |
| 675 [recordButton, recordKey, reloadButton, reloadKey])); | 685 [recordButton, recordKey, reloadButton, reloadKey])); |
| 676 | 686 |
| 677 centered.createChild('p').appendChild(UI.formatLocalized( | 687 centered.createChild('p').appendChild(UI.formatLocalized( |
| 678 'After recording, select an area of interest in the overview by dragging .\n' + | 688 'After recording, select an area of interest in the overview by dragging .\n' + |
| 679 'Then, zoom and pan the timeline with the mousewheel or %s keys.\n%s', | 689 'Then, zoom and pan the timeline with the mousewheel or %s keys.\n%s', |
| 680 [navigateNode, learnMoreNode])); | 690 [navigateNode, learnMoreNode])); |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 786 if (event.name === recordTypes.TimeStamp || event.name === recordTypes.Con soleTime) | 796 if (event.name === recordTypes.TimeStamp || event.name === recordTypes.Con soleTime) |
| 787 continue; | 797 continue; |
| 788 markers.set(event.startTime, Timeline.TimelineUIUtils.createEventDivider(e vent, zeroTime)); | 798 markers.set(event.startTime, Timeline.TimelineUIUtils.createEventDivider(e vent, zeroTime)); |
| 789 } | 799 } |
| 790 this._overviewPane.setMarkers(markers); | 800 this._overviewPane.setMarkers(markers); |
| 791 } | 801 } |
| 792 | 802 |
| 793 /** | 803 /** |
| 794 * @param {!Common.Event} event | 804 * @param {!Common.Event} event |
| 795 */ | 805 */ |
| 796 _pageReloadRequested(event) { | |
| 797 if (this._state !== Timeline.TimelinePanel.State.Idle || !this.isShowing()) | |
| 798 return; | |
| 799 var resourceTreeModel = /** @type {!SDK.ResourceTreeModel} */ (event.data); | |
| 800 var tracingManager = resourceTreeModel.target().model(SDK.TracingManager); | |
| 801 if (resourceTreeModel.target() !== SDK.targetManager.mainTarget() || !tracin gManager) | |
| 802 return; | |
| 803 | |
| 804 resourceTreeModel.suspendReload(); | |
| 805 this._startRecording(tracingManager, false).then(() => resourceTreeModel.res umeReload()); | |
| 806 } | |
| 807 | |
| 808 /** | |
| 809 * @param {!Common.Event} event | |
| 810 */ | |
| 811 _loadEventFired(event) { | 806 _loadEventFired(event) { |
| 812 if (this._state !== Timeline.TimelinePanel.State.Recording || !this._autoRec ordGeneration || | 807 if (this._state !== Timeline.TimelinePanel.State.Recording || !this._recordi ngPageReload || |
| 813 this._autoRecordGeneration.tracingManager.target() !== event.data.resour ceTreeModel.target()) | 808 this._controller.mainTarget() !== event.data.resourceTreeModel.target()) |
| 814 return; | 809 return; |
| 815 setTimeout(stopRecordingOnReload.bind(this, this._autoRecordGeneration), thi s._millisecondsToRecordAfterLoadEvent); | 810 setTimeout(stopRecordingOnReload.bind(this, this._controller), this._millise condsToRecordAfterLoadEvent); |
|
alph
2017/05/15 23:56:45
await sleep(...)
| |
| 816 | 811 |
| 817 /** | 812 /** |
| 813 * @param {!Timeline.TimelineController} controller | |
| 818 * @this {Timeline.TimelinePanel} | 814 * @this {Timeline.TimelinePanel} |
| 819 * @param {!Object} recordGeneration | |
| 820 */ | 815 */ |
| 821 function stopRecordingOnReload(recordGeneration) { | 816 function stopRecordingOnReload(controller) { |
| 822 // Check if we're still in the same recording session. | 817 // Check if we're still in the same recording session. |
| 823 if (this._state !== Timeline.TimelinePanel.State.Recording || this._autoRe cordGeneration !== recordGeneration) | 818 if (controller !== this._controller) |
| 824 return; | 819 return; |
| 820 this._recordingPageReload = false; | |
| 825 this._stopRecording(); | 821 this._stopRecording(); |
| 826 } | 822 } |
| 827 } | 823 } |
| 828 | 824 |
| 829 /** | 825 /** |
| 830 * @param {!Timeline.TimelineSelection} selection | 826 * @param {!Timeline.TimelineSelection} selection |
| 831 * @return {?TimelineModel.TimelineFrame} | 827 * @return {?TimelineModel.TimelineFrame} |
| 832 */ | 828 */ |
| 833 _frameForSelection(selection) { | 829 _frameForSelection(selection) { |
| 834 switch (selection.type()) { | 830 switch (selection.type()) { |
| (...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1287 * @param {string} actionId | 1283 * @param {string} actionId |
| 1288 * @return {boolean} | 1284 * @return {boolean} |
| 1289 */ | 1285 */ |
| 1290 handleAction(context, actionId) { | 1286 handleAction(context, actionId) { |
| 1291 var panel = UI.context.flavor(Timeline.TimelinePanel); | 1287 var panel = UI.context.flavor(Timeline.TimelinePanel); |
| 1292 console.assert(panel && panel instanceof Timeline.TimelinePanel); | 1288 console.assert(panel && panel instanceof Timeline.TimelinePanel); |
| 1293 switch (actionId) { | 1289 switch (actionId) { |
| 1294 case 'timeline.toggle-recording': | 1290 case 'timeline.toggle-recording': |
| 1295 panel._toggleRecording(); | 1291 panel._toggleRecording(); |
| 1296 return true; | 1292 return true; |
| 1293 case 'timeline.record-reload': | |
| 1294 panel._recordReload(); | |
| 1295 return true; | |
| 1297 case 'timeline.save-to-file': | 1296 case 'timeline.save-to-file': |
| 1298 panel._saveToFile(); | 1297 panel._saveToFile(); |
| 1299 return true; | 1298 return true; |
| 1300 case 'timeline.load-from-file': | 1299 case 'timeline.load-from-file': |
| 1301 panel._selectFileToLoad(); | 1300 panel._selectFileToLoad(); |
| 1302 return true; | 1301 return true; |
| 1303 case 'timeline.jump-to-previous-frame': | 1302 case 'timeline.jump-to-previous-frame': |
| 1304 panel._jumpToFrame(-1); | 1303 panel._jumpToFrame(-1); |
| 1305 return true; | 1304 return true; |
| 1306 case 'timeline.jump-to-next-frame': | 1305 case 'timeline.jump-to-next-frame': |
| 1307 panel._jumpToFrame(1); | 1306 panel._jumpToFrame(1); |
| 1308 return true; | 1307 return true; |
| 1309 } | 1308 } |
| 1310 return false; | 1309 return false; |
| 1311 } | 1310 } |
| 1312 }; | 1311 }; |
| 1313 | 1312 |
| 1314 Timeline.TimelinePanel._traceProviderSettingSymbol = Symbol('traceProviderSettin g'); | 1313 Timeline.TimelinePanel._traceProviderSettingSymbol = Symbol('traceProviderSettin g'); |
| OLD | NEW |