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

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

Issue 2888843002: DevTools: fix race when revealing formatted source code (Closed)
Patch Set: Created 3 years, 7 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) 2017 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2017 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 Coverage.CoverageListView = class extends UI.VBox { 5 Coverage.CoverageListView = class extends UI.VBox {
6 constructor() { 6 constructor() {
7 super(true); 7 super(true);
8 /** @type {!Map<!Coverage.URLCoverageInfo, !Coverage.CoverageListView.GridNo de>} */ 8 /** @type {!Map<!Coverage.URLCoverageInfo, !Coverage.CoverageListView.GridNo de>} */
9 this._nodeForCoverageInfo = new Map(); 9 this._nodeForCoverageInfo = new Map();
10 /** @type {?RegExp} */ 10 /** @type {?RegExp} */
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 hadTreeUpdates = true; 88 hadTreeUpdates = true;
89 if (!shouldBeVisible) 89 if (!shouldBeVisible)
90 node.remove(); 90 node.remove();
91 else 91 else
92 this._dataGrid.rootNode().appendChild(node); 92 this._dataGrid.rootNode().appendChild(node);
93 } 93 }
94 if (hadTreeUpdates) 94 if (hadTreeUpdates)
95 this._sortingChanged(); 95 this._sortingChanged();
96 } 96 }
97 97
98 /** 98 _onOpenedNode() {
99 * @param {!Common.Event} event 99 this._revealSourceForSelectedNode();
100 */
101 _onOpenedNode(event) {
102 var node = /** @type Coverage.CoverageListView.GridNode */ (event.data);
103 this._revealSourceForNode(node);
104 } 100 }
105 101
106 /** 102 /**
107 * @param {!Coverage.CoverageListView.GridNode} node 103 * @param {!Coverage.CoverageListView.GridNode} node
108 * @return {boolean} 104 * @return {boolean}
109 */ 105 */
110 _isVisible(node) { 106 _isVisible(node) {
111 return !this._filterRegExp || this._filterRegExp.test(node._url); 107 return !this._filterRegExp || this._filterRegExp.test(node._url);
112 } 108 }
113 109
114 /** 110 /**
115 * @param {!Event} event 111 * @param {!Event} event
116 */ 112 */
117 _onKeyDown(event) { 113 _onKeyDown(event) {
118 if (!isEnterKey(event)) 114 if (!isEnterKey(event))
119 return; 115 return;
120 event.consume(true); 116 event.consume(true);
121 this._revealSourceForNode(this._dataGrid.selectedNode); 117 this._revealSourceForSelectedNode();
122 } 118 }
123 119
124 /** 120 async _revealSourceForSelectedNode() {
lushnikov 2017/05/17 23:39:08 is this change necessary?
caseq 2017/05/18 02:04:37 This is not directly related, but seems like a rea
125 * @param {?DataGrid.DataGridNode} node 121 var node = this._dataGrid.selectedNode;
126 */
127 async _revealSourceForNode(node) {
128 if (!node) 122 if (!node)
129 return; 123 return;
130 var coverageInfo = /** @type {!Coverage.CoverageListView.GridNode} */ (node) ._coverageInfo; 124 var coverageInfo = /** @type {!Coverage.CoverageListView.GridNode} */ (node) ._coverageInfo;
131 var sourceCode = Workspace.workspace.uiSourceCodeForURL(coverageInfo.url()); 125 var sourceCode = Workspace.workspace.uiSourceCodeForURL(coverageInfo.url());
132 if (!sourceCode) 126 if (!sourceCode)
133 return; 127 return;
134 var content = await sourceCode.requestContent(); 128 var content = await sourceCode.requestContent();
135 if (TextUtils.isMinified(content)) { 129 if (TextUtils.isMinified(content)) {
136 var formatData = await Sources.sourceFormatter.format(sourceCode); 130 var formatData = await Sources.sourceFormatter.format(sourceCode);
lushnikov 2017/05/17 23:39:08 not: as per decision taken in performance-room, we
caseq 2017/05/18 02:04:37 Done.
137 Common.Revealer.reveal(formatData.formattedSourceCode); 131 sourceCode = formatData.formattedSourceCode;
138 } else {
139 Common.Revealer.reveal(sourceCode);
140 } 132 }
133 if (this._dataGrid.selectedNode !== node)
134 return;
135 Common.Revealer.reveal(sourceCode);
141 } 136 }
142 137
143 _sortingChanged() { 138 _sortingChanged() {
144 var columnId = this._dataGrid.sortColumnId(); 139 var columnId = this._dataGrid.sortColumnId();
145 if (!columnId) 140 if (!columnId)
146 return; 141 return;
147 var sortFunction; 142 var sortFunction;
148 switch (columnId) { 143 switch (columnId) {
149 case 'url': 144 case 'url':
150 sortFunction = compareURL; 145 sortFunction = compareURL;
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 * @param {string} textContent 300 * @param {string} textContent
306 */ 301 */
307 _highlight(element, textContent) { 302 _highlight(element, textContent) {
308 var matches = this._highlightRegExp.exec(textContent); 303 var matches = this._highlightRegExp.exec(textContent);
309 if (!matches || !matches.length) 304 if (!matches || !matches.length)
310 return; 305 return;
311 var range = new TextUtils.SourceRange(matches.index, matches[0].length); 306 var range = new TextUtils.SourceRange(matches.index, matches[0].length);
312 UI.highlightRangesWithStyleClass(element, [range], 'filter-highlight'); 307 UI.highlightRangesWithStyleClass(element, [range], 'filter-highlight');
313 } 308 }
314 }; 309 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698