| 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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 else | 57 else |
| 58 this._stopRecording(); | 58 this._stopRecording(); |
| 59 } | 59 } |
| 60 | 60 |
| 61 _startRecording() { | 61 _startRecording() { |
| 62 this._reset(); | 62 this._reset(); |
| 63 var mainTarget = SDK.targetManager.mainTarget(); | 63 var mainTarget = SDK.targetManager.mainTarget(); |
| 64 if (!mainTarget) | 64 if (!mainTarget) |
| 65 return; | 65 return; |
| 66 var cssModel = mainTarget.model(SDK.CSSModel); | 66 var cssModel = mainTarget.model(SDK.CSSModel); |
| 67 if (!cssModel) | 67 var cpuProfilerModel = mainTarget.model(SDK.CPUProfilerModel); |
| 68 if (!cssModel && !cpuProfilerModel) |
| 68 return; | 69 return; |
| 69 this._toggleRecordAction.setToggled(true); | 70 this._toggleRecordAction.setToggled(true); |
| 70 cssModel.startRuleUsageTracking(); | 71 if (cssModel) |
| 71 mainTarget.profilerAgent().startPreciseCoverage(); | 72 cssModel.startRuleUsageTracking(); |
| 73 if (cpuProfilerModel) |
| 74 cpuProfilerModel.startPreciseCoverage(); |
| 72 | 75 |
| 73 this._progressElement.textContent = Common.UIString('Recording...'); | 76 this._progressElement.textContent = Common.UIString('Recording...'); |
| 74 } | 77 } |
| 75 | 78 |
| 76 async _stopRecording() { | 79 async _stopRecording() { |
| 77 this._toggleRecordAction.setToggled(false); | 80 this._toggleRecordAction.setToggled(false); |
| 78 this._progressElement.textContent = Common.UIString('Fetching results...'); | 81 this._progressElement.textContent = Common.UIString('Fetching results...'); |
| 79 | 82 |
| 80 var cssCoverageInfoPromise = this._stopCSSCoverage(); | 83 var cssCoverageInfoPromise = this._stopCSSCoverage(); |
| 81 var jsCoverageInfoPromise = this._stopJSCoverage(); | 84 var jsCoverageInfoPromise = this._stopJSCoverage(); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 } | 120 } |
| 118 } | 121 } |
| 119 return result; | 122 return result; |
| 120 } | 123 } |
| 121 | 124 |
| 122 /** | 125 /** |
| 123 * @return {!Promise<!Array<!Coverage.CoverageInfo>>} | 126 * @return {!Promise<!Array<!Coverage.CoverageInfo>>} |
| 124 */ | 127 */ |
| 125 async _stopJSCoverage() { | 128 async _stopJSCoverage() { |
| 126 var mainTarget = SDK.targetManager.mainTarget(); | 129 var mainTarget = SDK.targetManager.mainTarget(); |
| 127 var profilerAgent = mainTarget && mainTarget.profilerAgent(); | 130 var cpuProfilerModel = mainTarget ? mainTarget.model(SDK.CPUProfilerModel) :
null; |
| 128 if (!profilerAgent) | 131 if (!cpuProfilerModel) |
| 129 return []; | 132 return []; |
| 130 var coveragePromise = profilerAgent.takePreciseCoverage((error, result) => e
rror ? [] : result); | 133 var coveragePromise = cpuProfilerModel.takePreciseCoverage(); |
| 131 profilerAgent.stopPreciseCoverage(); | 134 cpuProfilerModel.stopPreciseCoverage(); |
| 132 var rawCoverageData = await coveragePromise; | 135 var rawCoverageData = await coveragePromise; |
| 133 return Coverage.CoverageView._processJSCoverage( | 136 return Coverage.CoverageView._processJSCoverage( |
| 134 /** @type !SDK.DebuggerModel */ (SDK.DebuggerModel.fromTarget(mainTarget
)), rawCoverageData); | 137 /** @type !SDK.DebuggerModel */ (SDK.DebuggerModel.fromTarget(mainTarget
)), rawCoverageData); |
| 135 } | 138 } |
| 136 | 139 |
| 137 /** | 140 /** |
| 138 * @param {!SDK.DebuggerModel} debuggerModel | 141 * @param {!SDK.DebuggerModel} debuggerModel |
| 139 * @param {!Array<!Protocol.Profiler.ScriptCoverage>} scriptsCoverage | 142 * @param {!Array<!Protocol.Profiler.ScriptCoverage>} scriptsCoverage |
| 140 * @return {!Promise<!Array<!Coverage.CoverageInfo>>} | 143 * @return {!Promise<!Array<!Coverage.CoverageInfo>>} |
| 141 */ | 144 */ |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 */ | 359 */ |
| 357 handleAction(context, actionId) { | 360 handleAction(context, actionId) { |
| 358 var coverageViewId = 'coverage'; | 361 var coverageViewId = 'coverage'; |
| 359 UI.viewManager.showView(coverageViewId) | 362 UI.viewManager.showView(coverageViewId) |
| 360 .then(() => UI.viewManager.view(coverageViewId).widget()) | 363 .then(() => UI.viewManager.view(coverageViewId).widget()) |
| 361 .then(widget => /** @type !Coverage.CoverageView} */ (widget)._toggleRec
ording()); | 364 .then(widget => /** @type !Coverage.CoverageView} */ (widget)._toggleRec
ording()); |
| 362 | 365 |
| 363 return true; | 366 return true; |
| 364 } | 367 } |
| 365 }; | 368 }; |
| OLD | NEW |