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 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 533 | 533 |
| 534 /** | 534 /** |
| 535 * @param {boolean} enabled | 535 * @param {boolean} enabled |
| 536 */ | 536 */ |
| 537 _setUIControlsEnabled(enabled) { | 537 _setUIControlsEnabled(enabled) { |
| 538 this._recordingOptionUIControls.forEach(control => control.setEnabled(enable d)); | 538 this._recordingOptionUIControls.forEach(control => control.setEnabled(enable d)); |
| 539 } | 539 } |
| 540 | 540 |
| 541 /** | 541 /** |
| 542 * @param {boolean} userInitiated | 542 * @param {boolean} userInitiated |
| 543 * @return {!Promise} | |
| 543 */ | 544 */ |
| 544 _startRecording(userInitiated) { | 545 _startRecording(userInitiated) { |
| 545 console.assert(!this._statusPane, 'Status pane is already opened.'); | 546 console.assert(!this._statusPane, 'Status pane is already opened.'); |
| 546 var mainTarget = SDK.targetManager.mainTarget(); | 547 var mainTarget = SDK.targetManager.mainTarget(); |
| 547 if (!mainTarget) | 548 if (!mainTarget) |
| 548 return; | 549 return Promise.resolve(); |
| 549 this._setState(Timeline.TimelinePanel.State.StartPending); | 550 this._setState(Timeline.TimelinePanel.State.StartPending); |
| 550 this._showRecordingStarted(); | 551 this._showRecordingStarted(); |
| 551 | 552 |
| 552 this._autoRecordGeneration = userInitiated ? null : Symbol('Generation'); | 553 this._autoRecordGeneration = userInitiated ? null : Symbol('Generation'); |
| 553 var enabledTraceProviders = Extensions.extensionServer.traceProviders().filt er( | 554 var enabledTraceProviders = Extensions.extensionServer.traceProviders().filt er( |
| 554 provider => Timeline.TimelinePanel._settingForTraceProvider(provider).ge t()); | 555 provider => Timeline.TimelinePanel._settingForTraceProvider(provider).ge t()); |
| 555 | 556 |
| 556 const recordingOptions = { | 557 const recordingOptions = { |
| 557 enableJSSampling: !this._disableCaptureJSProfileSetting.get(), | 558 enableJSSampling: !this._disableCaptureJSProfileSetting.get(), |
| 558 capturePictures: this._captureLayersAndPicturesSetting.get(), | 559 capturePictures: this._captureLayersAndPicturesSetting.get(), |
| 559 captureFilmStrip: this._showScreenshotsSetting.get() | 560 captureFilmStrip: this._showScreenshotsSetting.get() |
| 560 }; | 561 }; |
| 561 | 562 |
| 562 this._pendingPerformanceModel = new Timeline.PerformanceModel(); | 563 this._pendingPerformanceModel = new Timeline.PerformanceModel(); |
| 563 this._controller = new Timeline.TimelineController(mainTarget, this._pending PerformanceModel, this); | 564 this._controller = new Timeline.TimelineController(mainTarget, this._pending PerformanceModel, this); |
| 564 this._controller.startRecording(recordingOptions, enabledTraceProviders); | |
| 565 | |
| 566 Host.userMetrics.actionTaken( | 565 Host.userMetrics.actionTaken( |
| 567 userInitiated ? Host.UserMetrics.Action.TimelineStarted : Host.UserMetri cs.Action.TimelinePageReloadStarted); | 566 userInitiated ? Host.UserMetrics.Action.TimelineStarted : Host.UserMetri cs.Action.TimelinePageReloadStarted); |
| 568 this._setUIControlsEnabled(false); | 567 this._setUIControlsEnabled(false); |
| 569 this._hideLandingPage(); | 568 this._hideLandingPage(); |
| 569 return this._controller.startRecording(recordingOptions, enabledTraceProvide rs) | |
|
alph
2017/02/28 03:11:25
nit: await
| |
| 570 .then(() => this._recordingStarted()); | |
| 570 } | 571 } |
| 571 | 572 |
| 572 _stopRecording() { | 573 _stopRecording() { |
| 573 if (this._statusPane) { | 574 if (this._statusPane) { |
| 574 this._statusPane.finish(); | 575 this._statusPane.finish(); |
| 575 this._statusPane.updateStatus(Common.UIString('Stopping timeline\u2026')); | 576 this._statusPane.updateStatus(Common.UIString('Stopping timeline\u2026')); |
| 576 this._statusPane.updateProgressBar(Common.UIString('Received'), 0); | 577 this._statusPane.updateProgressBar(Common.UIString('Received'), 0); |
| 577 } | 578 } |
| 578 this._setState(Timeline.TimelinePanel.State.StopPending); | 579 this._setState(Timeline.TimelinePanel.State.StopPending); |
| 579 this._autoRecordGeneration = null; | 580 this._autoRecordGeneration = null; |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 642 } | 643 } |
| 643 this._overviewPane.scheduleUpdate(); | 644 this._overviewPane.scheduleUpdate(); |
| 644 if (this._detailsView) | 645 if (this._detailsView) |
| 645 this._detailsView.setModel(model); | 646 this._detailsView.setModel(model); |
| 646 | 647 |
| 647 this.select(null); | 648 this.select(null); |
| 648 if (this._flameChart) | 649 if (this._flameChart) |
| 649 this._flameChart.resizeToPreferredHeights(); | 650 this._flameChart.resizeToPreferredHeights(); |
| 650 } | 651 } |
| 651 | 652 |
| 652 /** | 653 _recordingStarted() { |
| 653 * @override | |
| 654 */ | |
| 655 recordingStarted() { | |
| 656 this._reset(); | 654 this._reset(); |
| 657 this._setState(Timeline.TimelinePanel.State.Recording); | 655 this._setState(Timeline.TimelinePanel.State.Recording); |
| 658 this._showRecordingStarted(); | 656 this._showRecordingStarted(); |
| 659 this._statusPane.updateStatus(Common.UIString('Profiling\u2026')); | 657 this._statusPane.updateStatus(Common.UIString('Profiling\u2026')); |
| 660 this._statusPane.updateProgressBar(Common.UIString('Buffer usage'), 0); | 658 this._statusPane.updateProgressBar(Common.UIString('Buffer usage'), 0); |
| 661 this._statusPane.startTimer(); | 659 this._statusPane.startTimer(); |
| 662 this._hideLandingPage(); | 660 this._hideLandingPage(); |
| 663 } | 661 } |
| 664 | 662 |
| 665 /** | 663 /** |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 680 * @param {string} tagName | 678 * @param {string} tagName |
| 681 * @param {string} contents | 679 * @param {string} contents |
| 682 */ | 680 */ |
| 683 function encloseWithTag(tagName, contents) { | 681 function encloseWithTag(tagName, contents) { |
| 684 var e = createElement(tagName); | 682 var e = createElement(tagName); |
| 685 e.textContent = contents; | 683 e.textContent = contents; |
| 686 return e; | 684 return e; |
| 687 } | 685 } |
| 688 | 686 |
| 689 var learnMoreNode = UI.createExternalLink( | 687 var learnMoreNode = UI.createExternalLink( |
| 690 'https://developers.google.com/web/tools/chrome-devtools/evaluate-perfor mance/', Common.UIString('Learn\xa0more')); | 688 'https://developers.google.com/web/tools/chrome-devtools/evaluate-perfor mance/', |
| 689 Common.UIString('Learn\xa0more')); | |
| 691 var recordKey = | 690 var recordKey = |
| 692 encloseWithTag('b', UI.shortcutRegistry.shortcutDescriptorsForAction('ti meline.toggle-recording')[0].name); | 691 encloseWithTag('b', UI.shortcutRegistry.shortcutDescriptorsForAction('ti meline.toggle-recording')[0].name); |
| 693 var reloadKey = encloseWithTag('b', UI.shortcutRegistry.shortcutDescriptorsF orAction('main.reload')[0].name); | 692 var reloadKey = encloseWithTag('b', UI.shortcutRegistry.shortcutDescriptorsF orAction('main.reload')[0].name); |
| 694 var navigateNode = encloseWithTag('b', Common.UIString('WASD')); | 693 var navigateNode = encloseWithTag('b', Common.UIString('WASD')); |
| 695 | 694 |
| 696 this._landingPage = new UI.VBox(); | 695 this._landingPage = new UI.VBox(); |
| 697 this._landingPage.contentElement.classList.add('timeline-landing-page', 'fil l'); | 696 this._landingPage.contentElement.classList.add('timeline-landing-page', 'fil l'); |
| 698 var centered = this._landingPage.contentElement.createChild('div'); | 697 var centered = this._landingPage.contentElement.createChild('div'); |
| 699 | 698 |
| 700 var recordButton = UI.Toolbar.createActionButton(this._toggleRecordAction).e lement; | 699 var recordButton = UI.Toolbar.createActionButton(this._toggleRecordAction).e lement; |
| 701 var reloadButton = UI.Toolbar.createActionButtonForId('main.reload').element ; | 700 var reloadButton = UI.Toolbar.createActionButtonForId('main.reload').element ; |
| 702 | 701 |
| 703 centered.createChild('p').appendChild(UI.formatLocalized( | 702 centered.createChild('p').appendChild(UI.formatLocalized( |
| 704 'Click the record button %s or hit %s to capture a new recording.\n' + | 703 'Click the record button %s or hit %s to capture a new recording.\n' + |
| 705 'Click the reload button %s or hit %s to record and evaluate the page lo ad.', | 704 'Click the reload button %s or hit %s to record and evaluate the pag e load.', |
|
alph
2017/02/28 03:11:25
revert?
dgozman
2017/02/28 08:59:01
That's what formatter does for me.
| |
| 706 [recordButton, recordKey, reloadButton, reloadKey])); | 705 [recordButton, recordKey, reloadButton, reloadKey])); |
| 707 | 706 |
| 708 centered.createChild('p').appendChild(UI.formatLocalized( | 707 centered.createChild('p').appendChild(UI.formatLocalized( |
| 709 'After recording, select an area of interest in the overview by dragging .\n' + | 708 'After recording, select an area of interest in the overview by dragging .\n' + |
| 710 'Then, zoom and pan the timeline with the mousewheel or %s keys.\n%s', | 709 'Then, zoom and pan the timeline with the mousewheel or %s keys.\n%s ', |
|
alph
2017/02/28 03:11:25
ditto
| |
| 711 [navigateNode, learnMoreNode])); | 710 [navigateNode, learnMoreNode])); |
| 712 | 711 |
| 713 var cpuProfilerHintSetting = Common.settings.createSetting('timelineShowProf ilerHint', true); | 712 var cpuProfilerHintSetting = Common.settings.createSetting('timelineShowProf ilerHint', true); |
| 714 if (cpuProfilerHintSetting.get()) { | 713 if (cpuProfilerHintSetting.get()) { |
| 715 var warning = centered.createChild('p', 'timeline-landing-warning'); | 714 var warning = centered.createChild('p', 'timeline-landing-warning'); |
| 716 var closeButton = warning.createChild('div', 'timeline-landing-warning-clo se', 'dt-close-button'); | 715 var closeButton = warning.createChild('div', 'timeline-landing-warning-clo se', 'dt-close-button'); |
| 717 closeButton.addEventListener('click', () => { | 716 closeButton.addEventListener('click', () => { |
| 718 warning.style.visibility = 'hidden'; | 717 warning.style.visibility = 'hidden'; |
| 719 cpuProfilerHintSetting.set(false); | 718 cpuProfilerHintSetting.set(false); |
| 720 }, false); | 719 }, false); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 823 } | 822 } |
| 824 this._overviewPane.setMarkers(markers); | 823 this._overviewPane.setMarkers(markers); |
| 825 } | 824 } |
| 826 | 825 |
| 827 /** | 826 /** |
| 828 * @param {!Common.Event} event | 827 * @param {!Common.Event} event |
| 829 */ | 828 */ |
| 830 _pageReloadRequested(event) { | 829 _pageReloadRequested(event) { |
| 831 if (this._state !== Timeline.TimelinePanel.State.Idle || !this.isShowing()) | 830 if (this._state !== Timeline.TimelinePanel.State.Idle || !this.isShowing()) |
| 832 return; | 831 return; |
| 833 this._startRecording(false); | 832 var resourceTreeModel = /** @type {!SDK.ResourceTreeModel} */ (event.data); |
| 833 resourceTreeModel.suspendReload(); | |
| 834 this._startRecording(false).then(() => resourceTreeModel.resumeReload()); | |
| 834 } | 835 } |
| 835 | 836 |
| 836 /** | 837 /** |
| 837 * @param {!Common.Event} event | 838 * @param {!Common.Event} event |
| 838 */ | 839 */ |
| 839 _loadEventFired(event) { | 840 _loadEventFired(event) { |
| 840 if (this._state !== Timeline.TimelinePanel.State.Recording || !this._autoRec ordGeneration) | 841 if (this._state !== Timeline.TimelinePanel.State.Recording || !this._autoRec ordGeneration) |
| 841 return; | 842 return; |
| 842 setTimeout(stopRecordingOnReload.bind(this, this._autoRecordGeneration), thi s._millisecondsToRecordAfterLoadEvent); | 843 setTimeout(stopRecordingOnReload.bind(this, this._autoRecordGeneration), thi s._millisecondsToRecordAfterLoadEvent); |
| 843 | 844 |
| (...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1338 return true; | 1339 return true; |
| 1339 case 'timeline.jump-to-next-frame': | 1340 case 'timeline.jump-to-next-frame': |
| 1340 panel._jumpToFrame(1); | 1341 panel._jumpToFrame(1); |
| 1341 return true; | 1342 return true; |
| 1342 } | 1343 } |
| 1343 return false; | 1344 return false; |
| 1344 } | 1345 } |
| 1345 }; | 1346 }; |
| 1346 | 1347 |
| 1347 Timeline.TimelinePanel._traceProviderSettingSymbol = Symbol('traceProviderSettin g'); | 1348 Timeline.TimelinePanel._traceProviderSettingSymbol = Symbol('traceProviderSettin g'); |
| OLD | NEW |