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 21 matching lines...) Expand all Loading... | |
32 super(true); | 32 super(true); |
33 | 33 |
34 this.registerRequiredCSS('coverage/coverageView.css'); | 34 this.registerRequiredCSS('coverage/coverageView.css'); |
35 | 35 |
36 var toolbarContainer = this.contentElement.createChild('div', 'coverage-tool bar-container'); | 36 var toolbarContainer = this.contentElement.createChild('div', 'coverage-tool bar-container'); |
37 var topToolbar = new UI.Toolbar('coverage-toolbar', toolbarContainer); | 37 var topToolbar = new UI.Toolbar('coverage-toolbar', toolbarContainer); |
38 | 38 |
39 this._toggleRecordAction = | 39 this._toggleRecordAction = |
40 /** @type {!UI.Action }*/ (UI.actionRegistry.action('coverage.toggle-rec ording')); | 40 /** @type {!UI.Action }*/ (UI.actionRegistry.action('coverage.toggle-rec ording')); |
41 topToolbar.appendToolbarItem(UI.Toolbar.createActionButton(this._toggleRecor dAction)); | 41 topToolbar.appendToolbarItem(UI.Toolbar.createActionButton(this._toggleRecor dAction)); |
42 topToolbar.appendToolbarItem(UI.Toolbar.createActionButtonForId('coverage.ta ke-snapshot')); | |
42 | 43 |
43 var clearButton = new UI.ToolbarButton(Common.UIString('Clear all'), 'largei con-clear'); | 44 var clearButton = new UI.ToolbarButton(Common.UIString('Clear all'), 'largei con-clear'); |
44 clearButton.addEventListener(UI.ToolbarButton.Events.Click, this._reset.bind (this)); | 45 clearButton.addEventListener(UI.ToolbarButton.Events.Click, this._reset.bind (this)); |
45 topToolbar.appendToolbarItem(clearButton); | 46 topToolbar.appendToolbarItem(clearButton); |
46 | 47 |
47 this._coverageResultsElement = this.contentElement.createChild('div', 'cover age-results'); | 48 this._coverageResultsElement = this.contentElement.createChild('div', 'cover age-results'); |
48 this._progressElement = this._coverageResultsElement.createChild('div', 'pro gress-view'); | 49 this._progressElement = this._coverageResultsElement.createChild('div', 'pro gress-view'); |
49 this._listView = new Coverage.CoverageListView(); | 50 this._listView = new Coverage.CoverageListView(); |
50 | 51 |
51 this._statusToolbarElement = this.contentElement.createChild('div', 'coverag e-toolbar-summary'); | 52 this._statusToolbarElement = this.contentElement.createChild('div', 'coverag e-toolbar-summary'); |
(...skipping 29 matching lines...) Expand all Loading... | |
81 var cssModel = mainTarget.model(SDK.CSSModel); | 82 var cssModel = mainTarget.model(SDK.CSSModel); |
82 if (!cssModel) | 83 if (!cssModel) |
83 return; | 84 return; |
84 this._toggleRecordAction.setToggled(true); | 85 this._toggleRecordAction.setToggled(true); |
85 cssModel.startRuleUsageTracking(); | 86 cssModel.startRuleUsageTracking(); |
86 mainTarget.profilerAgent().startPreciseCoverage(); | 87 mainTarget.profilerAgent().startPreciseCoverage(); |
87 | 88 |
88 this._progressElement.textContent = Common.UIString('Recording...'); | 89 this._progressElement.textContent = Common.UIString('Recording...'); |
89 } | 90 } |
90 | 91 |
92 async _takeSnapshot() { | |
93 this._reset(); | |
94 var mainTarget = SDK.targetManager.mainTarget(); | |
95 var profilerAgent = mainTarget && mainTarget.profilerAgent(); | |
96 if (!profilerAgent) | |
97 return []; | |
98 var debuggerModel = /** @type !SDK.DebuggerModel */ (SDK.DebuggerModel.fromT arget(mainTarget)); | |
99 var cssModel = mainTarget.model(SDK.CSSModel); | |
100 if (!cssModel) | |
101 return; | |
102 | |
103 cssModel.startRuleUsageTracking(); | |
104 this._progressElement.textContent = Common.UIString('Taking a snapshot...'); | |
105 var cssCoverageInfoPromise = this._stopCSSCoverage(); | |
106 var jsCoverageInfoPromise = profilerAgent.getBestEffortCoverage((error, resu lt) => error ? [] : result) | |
alph
2017/02/28 22:01:31
await
| |
107 .then(Coverage.CoverageView._processJSCovera ge.bind(null, debuggerModel)); | |
108 var cssCoverageInfo = await cssCoverageInfoPromise; | |
109 var jsCoverageInfo = await jsCoverageInfoPromise; | |
110 this._updateViews(cssCoverageInfo.concat(jsCoverageInfo)); | |
111 } | |
112 | |
91 async _stopRecording() { | 113 async _stopRecording() { |
92 this._toggleRecordAction.setToggled(false); | 114 this._toggleRecordAction.setToggled(false); |
93 this._progressElement.textContent = Common.UIString('Fetching results...'); | 115 this._progressElement.textContent = Common.UIString('Fetching results...'); |
94 | 116 |
95 var cssCoverageInfoPromise = this._stopCSSCoverage(); | 117 var cssCoverageInfoPromise = this._stopCSSCoverage(); |
96 var jsCoverageInfoPromise = this._stopJSCoverage(); | 118 var jsCoverageInfoPromise = this._stopJSCoverage(); |
97 var cssCoverageInfo = await cssCoverageInfoPromise; | 119 var cssCoverageInfo = await cssCoverageInfoPromise; |
98 var jsCoverageInfo = await jsCoverageInfoPromise; | 120 var jsCoverageInfo = await jsCoverageInfoPromise; |
99 this._updateViews(cssCoverageInfo.concat(jsCoverageInfo)); | 121 this._updateViews(cssCoverageInfo.concat(jsCoverageInfo)); |
100 } | 122 } |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
342 } | 364 } |
343 } | 365 } |
344 } | 366 } |
345 }; | 367 }; |
346 | 368 |
347 Coverage.CoverageView.LineDecorator.type = 'coverage'; | 369 Coverage.CoverageView.LineDecorator.type = 'coverage'; |
348 | 370 |
349 /** | 371 /** |
350 * @implements {UI.ActionDelegate} | 372 * @implements {UI.ActionDelegate} |
351 */ | 373 */ |
352 Coverage.CoverageView.RecordActionDelegate = class { | 374 Coverage.CoverageView.ActionDelegate = class { |
353 /** | 375 /** |
354 * @override | 376 * @override |
355 * @param {!UI.Context} context | 377 * @param {!UI.Context} context |
356 * @param {string} actionId | 378 * @param {string} actionId |
357 * @return {boolean} | 379 * @return {boolean} |
358 */ | 380 */ |
359 handleAction(context, actionId) { | 381 handleAction(context, actionId) { |
360 var coverageViewId = 'coverage'; | 382 var coverageViewId = 'coverage'; |
383 | |
361 UI.viewManager.showView(coverageViewId) | 384 UI.viewManager.showView(coverageViewId) |
362 .then(() => UI.viewManager.view(coverageViewId).widget()) | 385 .then(() => UI.viewManager.view(coverageViewId).widget()) |
363 .then(widget => /** @type !Coverage.CoverageView} */ (widget)._toggleRec ording()); | 386 .then(widget => this._handleActionOnWidget(/** @type !Coverage.CoverageV iew} */ (widget), actionId)); |
364 | 387 |
365 return true; | 388 return true; |
366 } | 389 } |
390 | |
391 /** | |
392 * @param {!Coverage.CoverageView} widget | |
393 * @param {string} actionId | |
394 */ | |
395 _handleActionOnWidget(widget, actionId) { | |
396 if (actionId === 'coverage.toggle-recording') | |
397 widget._toggleRecording(); | |
398 else if (actionId === 'coverage.take-snapshot') | |
399 widget._takeSnapshot(); | |
400 } | |
367 }; | 401 }; |
OLD | NEW |