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

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: rebased 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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698