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 |