| 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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 else | 72 else |
| 73 this._stopRecording(); | 73 this._stopRecording(); |
| 74 } | 74 } |
| 75 | 75 |
| 76 _startRecording() { | 76 _startRecording() { |
| 77 this._reset(); | 77 this._reset(); |
| 78 var mainTarget = SDK.targetManager.mainTarget(); | 78 var mainTarget = SDK.targetManager.mainTarget(); |
| 79 if (!mainTarget) | 79 if (!mainTarget) |
| 80 return; | 80 return; |
| 81 var cssModel = mainTarget.model(SDK.CSSModel); | 81 var cssModel = mainTarget.model(SDK.CSSModel); |
| 82 if (!cssModel) | 82 var cpuProfilerModel = mainTarget.model(SDK.CPUProfilerModel); |
| 83 if (!cssModel && !cpuProfilerModel) |
| 83 return; | 84 return; |
| 84 this._toggleRecordAction.setToggled(true); | 85 this._toggleRecordAction.setToggled(true); |
| 85 cssModel.startRuleUsageTracking(); | 86 if (cssModel) |
| 86 mainTarget.profilerAgent().startPreciseCoverage(); | 87 cssModel.startRuleUsageTracking(); |
| 88 if (cpuProfilerModel) |
| 89 cpuProfilerModel.startPreciseCoverage(); |
| 87 | 90 |
| 88 this._progressElement.textContent = Common.UIString('Recording...'); | 91 this._progressElement.textContent = Common.UIString('Recording...'); |
| 89 } | 92 } |
| 90 | 93 |
| 91 async _stopRecording() { | 94 async _stopRecording() { |
| 92 this._toggleRecordAction.setToggled(false); | 95 this._toggleRecordAction.setToggled(false); |
| 93 this._progressElement.textContent = Common.UIString('Fetching results...'); | 96 this._progressElement.textContent = Common.UIString('Fetching results...'); |
| 94 | 97 |
| 95 var cssCoverageInfoPromise = this._stopCSSCoverage(); | 98 var cssCoverageInfoPromise = this._stopCSSCoverage(); |
| 96 var jsCoverageInfoPromise = this._stopJSCoverage(); | 99 var jsCoverageInfoPromise = this._stopJSCoverage(); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 } | 136 } |
| 134 } | 137 } |
| 135 return result; | 138 return result; |
| 136 } | 139 } |
| 137 | 140 |
| 138 /** | 141 /** |
| 139 * @return {!Promise<!Array<!Coverage.CoverageInfo>>} | 142 * @return {!Promise<!Array<!Coverage.CoverageInfo>>} |
| 140 */ | 143 */ |
| 141 async _stopJSCoverage() { | 144 async _stopJSCoverage() { |
| 142 var mainTarget = SDK.targetManager.mainTarget(); | 145 var mainTarget = SDK.targetManager.mainTarget(); |
| 143 var profilerAgent = mainTarget && mainTarget.profilerAgent(); | 146 var cpuProfilerModel = mainTarget ? mainTarget.model(SDK.CPUProfilerModel) :
null; |
| 144 if (!profilerAgent) | 147 if (!cpuProfilerModel) |
| 145 return []; | 148 return []; |
| 146 var coveragePromise = profilerAgent.takePreciseCoverage((error, result) => e
rror ? [] : result); | 149 var coveragePromise = cpuProfilerModel.takePreciseCoverage(); |
| 147 profilerAgent.stopPreciseCoverage(); | 150 cpuProfilerModel.stopPreciseCoverage(); |
| 148 var rawCoverageData = await coveragePromise; | 151 var rawCoverageData = await coveragePromise; |
| 149 return Coverage.CoverageView._processJSCoverage( | 152 return Coverage.CoverageView._processJSCoverage( |
| 150 /** @type !SDK.DebuggerModel */ (SDK.DebuggerModel.fromTarget(mainTarget
)), rawCoverageData); | 153 /** @type !SDK.DebuggerModel */ (SDK.DebuggerModel.fromTarget(mainTarget
)), rawCoverageData); |
| 151 } | 154 } |
| 152 | 155 |
| 153 /** | 156 /** |
| 154 * @param {!SDK.DebuggerModel} debuggerModel | 157 * @param {!SDK.DebuggerModel} debuggerModel |
| 155 * @param {!Array<!Protocol.Profiler.ScriptCoverage>} scriptsCoverage | 158 * @param {!Array<!Protocol.Profiler.ScriptCoverage>} scriptsCoverage |
| 156 * @return {!Promise<!Array<!Coverage.CoverageInfo>>} | 159 * @return {!Promise<!Array<!Coverage.CoverageInfo>>} |
| 157 */ | 160 */ |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 */ | 361 */ |
| 359 handleAction(context, actionId) { | 362 handleAction(context, actionId) { |
| 360 var coverageViewId = 'coverage'; | 363 var coverageViewId = 'coverage'; |
| 361 UI.viewManager.showView(coverageViewId) | 364 UI.viewManager.showView(coverageViewId) |
| 362 .then(() => UI.viewManager.view(coverageViewId).widget()) | 365 .then(() => UI.viewManager.view(coverageViewId).widget()) |
| 363 .then(widget => /** @type !Coverage.CoverageView} */ (widget)._toggleRec
ording()); | 366 .then(widget => /** @type !Coverage.CoverageView} */ (widget)._toggleRec
ording()); |
| 364 | 367 |
| 365 return true; | 368 return true; |
| 366 } | 369 } |
| 367 }; | 370 }; |
| OLD | NEW |