Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** @typedef {{range: !Common.TextRange, wasUsed: boolean}} */ | 5 /** @typedef {{range: !Common.TextRange, wasUsed: boolean}} */ |
| 6 Coverage.RangeUsage; | 6 Coverage.RangeUsage; |
| 7 | 7 |
| 8 /** @typedef {{styleSheetHeader: !SDK.CSSStyleSheetHeader, ranges: !Array<!Cover age.RangeUsage>}} */ | 8 /** @typedef {{styleSheetHeader: !SDK.CSSStyleSheetHeader, ranges: !Array<!Cover age.RangeUsage>}} */ |
| 9 Coverage.StyleSheetUsage; | 9 Coverage.StyleSheetUsage; |
| 10 | 10 |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 32 super(true); | 32 super(true); |
| 33 | 33 |
| 34 this.registerRequiredCSS('coverage/coverageView.css'); | 34 this.registerRequiredCSS('coverage/coverageView.css'); |
| 35 | 35 |
| 36 var toolbarContainer = this.contentElement.createChild('div', 'coverage-tool bar-container'); | 36 var toolbarContainer = this.contentElement.createChild('div', 'coverage-tool bar-container'); |
| 37 var topToolbar = new UI.Toolbar('coverage-toolbar', toolbarContainer); | 37 var topToolbar = new UI.Toolbar('coverage-toolbar', toolbarContainer); |
| 38 | 38 |
| 39 this._toggleRecordAction = | 39 this._toggleRecordAction = |
| 40 /** @type {!UI.Action }*/ (UI.actionRegistry.action('coverage.toggle-rec ording')); | 40 /** @type {!UI.Action }*/ (UI.actionRegistry.action('coverage.toggle-rec ording')); |
| 41 topToolbar.appendToolbarItem(UI.Toolbar.createActionButton(this._toggleRecor dAction)); | 41 topToolbar.appendToolbarItem(UI.Toolbar.createActionButton(this._toggleRecor dAction)); |
| 42 topToolbar.appendToolbarItem(UI.Toolbar.createActionButtonForId('coverage.ta ke-snapshot')); | |
| 42 | 43 |
| 43 var clearButton = new UI.ToolbarButton(Common.UIString('Clear all'), 'largei con-clear'); | 44 var clearButton = new UI.ToolbarButton(Common.UIString('Clear all'), 'largei con-clear'); |
| 44 clearButton.addEventListener(UI.ToolbarButton.Events.Click, this._reset.bind (this)); | 45 clearButton.addEventListener(UI.ToolbarButton.Events.Click, this._reset.bind (this)); |
| 45 topToolbar.appendToolbarItem(clearButton); | 46 topToolbar.appendToolbarItem(clearButton); |
| 46 | 47 |
| 47 this._coverageResultsElement = this.contentElement.createChild('div', 'cover age-results'); | 48 this._coverageResultsElement = this.contentElement.createChild('div', 'cover age-results'); |
| 48 this._progressElement = this._coverageResultsElement.createChild('div', 'pro gress-view'); | 49 this._progressElement = this._coverageResultsElement.createChild('div', 'pro gress-view'); |
| 49 this._listView = new Coverage.CoverageListView(); | 50 this._listView = new Coverage.CoverageListView(); |
| 50 | 51 |
| 51 this._statusToolbarElement = this.contentElement.createChild('div', 'coverag e-toolbar-summary'); | 52 this._statusToolbarElement = this.contentElement.createChild('div', 'coverag e-toolbar-summary'); |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 81 var cssModel = mainTarget.model(SDK.CSSModel); | 82 var cssModel = mainTarget.model(SDK.CSSModel); |
| 82 if (!cssModel) | 83 if (!cssModel) |
| 83 return; | 84 return; |
| 84 this._toggleRecordAction.setToggled(true); | 85 this._toggleRecordAction.setToggled(true); |
| 85 cssModel.startRuleUsageTracking(); | 86 cssModel.startRuleUsageTracking(); |
| 86 mainTarget.profilerAgent().startPreciseCoverage(); | 87 mainTarget.profilerAgent().startPreciseCoverage(); |
| 87 | 88 |
| 88 this._progressElement.textContent = Common.UIString('Recording...'); | 89 this._progressElement.textContent = Common.UIString('Recording...'); |
| 89 } | 90 } |
| 90 | 91 |
| 92 async _takeSnapshot() { | |
| 93 this._reset(); | |
| 94 var mainTarget = SDK.targetManager.mainTarget(); | |
| 95 var profilerAgent = mainTarget && mainTarget.profilerAgent(); | |
| 96 if (!profilerAgent) | |
| 97 return []; | |
| 98 var debuggerModel = /** @type !SDK.DebuggerModel */ (SDK.DebuggerModel.fromT arget(mainTarget)); | |
| 99 var cssModel = mainTarget.model(SDK.CSSModel); | |
| 100 if (!cssModel) | |
| 101 return; | |
| 102 | |
| 103 cssModel.startRuleUsageTracking(); | |
| 104 this._progressElement.textContent = Common.UIString('Taking a snapshot...'); | |
| 105 var cssCoverageInfoPromise = this._stopCSSCoverage(); | |
| 106 var jsCoverageInfoPromise = profilerAgent.getBestEffortCoverage((error, resu lt) => error ? [] : result) | |
|
alph
2017/02/28 22:01:31
await
| |
| 107 .then(Coverage.CoverageView._processJSCovera ge.bind(null, debuggerModel)); | |
| 108 var cssCoverageInfo = await cssCoverageInfoPromise; | |
| 109 var jsCoverageInfo = await jsCoverageInfoPromise; | |
| 110 this._updateViews(cssCoverageInfo.concat(jsCoverageInfo)); | |
| 111 } | |
| 112 | |
| 91 async _stopRecording() { | 113 async _stopRecording() { |
| 92 this._toggleRecordAction.setToggled(false); | 114 this._toggleRecordAction.setToggled(false); |
| 93 this._progressElement.textContent = Common.UIString('Fetching results...'); | 115 this._progressElement.textContent = Common.UIString('Fetching results...'); |
| 94 | 116 |
| 95 var cssCoverageInfoPromise = this._stopCSSCoverage(); | 117 var cssCoverageInfoPromise = this._stopCSSCoverage(); |
| 96 var jsCoverageInfoPromise = this._stopJSCoverage(); | 118 var jsCoverageInfoPromise = this._stopJSCoverage(); |
| 97 var cssCoverageInfo = await cssCoverageInfoPromise; | 119 var cssCoverageInfo = await cssCoverageInfoPromise; |
| 98 var jsCoverageInfo = await jsCoverageInfoPromise; | 120 var jsCoverageInfo = await jsCoverageInfoPromise; |
| 99 this._updateViews(cssCoverageInfo.concat(jsCoverageInfo)); | 121 this._updateViews(cssCoverageInfo.concat(jsCoverageInfo)); |
| 100 } | 122 } |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 342 } | 364 } |
| 343 } | 365 } |
| 344 } | 366 } |
| 345 }; | 367 }; |
| 346 | 368 |
| 347 Coverage.CoverageView.LineDecorator.type = 'coverage'; | 369 Coverage.CoverageView.LineDecorator.type = 'coverage'; |
| 348 | 370 |
| 349 /** | 371 /** |
| 350 * @implements {UI.ActionDelegate} | 372 * @implements {UI.ActionDelegate} |
| 351 */ | 373 */ |
| 352 Coverage.CoverageView.RecordActionDelegate = class { | 374 Coverage.CoverageView.ActionDelegate = class { |
| 353 /** | 375 /** |
| 354 * @override | 376 * @override |
| 355 * @param {!UI.Context} context | 377 * @param {!UI.Context} context |
| 356 * @param {string} actionId | 378 * @param {string} actionId |
| 357 * @return {boolean} | 379 * @return {boolean} |
| 358 */ | 380 */ |
| 359 handleAction(context, actionId) { | 381 handleAction(context, actionId) { |
| 360 var coverageViewId = 'coverage'; | 382 var coverageViewId = 'coverage'; |
| 383 | |
| 361 UI.viewManager.showView(coverageViewId) | 384 UI.viewManager.showView(coverageViewId) |
| 362 .then(() => UI.viewManager.view(coverageViewId).widget()) | 385 .then(() => UI.viewManager.view(coverageViewId).widget()) |
| 363 .then(widget => /** @type !Coverage.CoverageView} */ (widget)._toggleRec ording()); | 386 .then(widget => this._handleActionOnWidget(/** @type !Coverage.CoverageV iew} */ (widget), actionId)); |
| 364 | 387 |
| 365 return true; | 388 return true; |
| 366 } | 389 } |
| 390 | |
| 391 /** | |
| 392 * @param {!Coverage.CoverageView} widget | |
| 393 * @param {string} actionId | |
| 394 */ | |
| 395 _handleActionOnWidget(widget, actionId) { | |
| 396 if (actionId === 'coverage.toggle-recording') | |
| 397 widget._toggleRecording(); | |
| 398 else if (actionId === 'coverage.take-snapshot') | |
| 399 widget._takeSnapshot(); | |
| 400 } | |
| 367 }; | 401 }; |
| OLD | NEW |