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 |