Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(424)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js

Issue 2721663005: [DevTools] Access cpu profiler only when JS capability is present. (Closed)
Patch Set: coverage Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698