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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js

Issue 2939473002: DevTools: show all descendants if a console.group message title matches the filter
Patch Set: aaa Created 3 years, 5 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 /* 1 /*
2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2009 Joseph Pecoraro 3 * Copyright (C) 2009 Joseph Pecoraro
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 /** 458 /**
459 * @param {!Console.ConsoleViewMessage} viewMessage 459 * @param {!Console.ConsoleViewMessage} viewMessage
460 */ 460 */
461 _consoleMessageAddedForTest(viewMessage) { 461 _consoleMessageAddedForTest(viewMessage) {
462 } 462 }
463 463
464 /** 464 /**
465 * @param {!Console.ConsoleViewMessage} viewMessage 465 * @param {!Console.ConsoleViewMessage} viewMessage
466 */ 466 */
467 _appendMessageToEnd(viewMessage) { 467 _appendMessageToEnd(viewMessage) {
468 if (!this._filter.shouldBeVisible(viewMessage)) { 468 var ignoreTextFilter = this._currentGroup.showAllChildren();
469 if (!this._filter.shouldBeVisible(viewMessage, ignoreTextFilter)) {
469 this._hiddenByFilterCount++; 470 this._hiddenByFilterCount++;
470 return; 471 return;
471 } 472 }
472 473
473 if (this._tryToCollapseMessages(viewMessage, this._visibleViewMessages.peekL ast())) 474 if (this._tryToCollapseMessages(viewMessage, this._visibleViewMessages.peekL ast()))
474 return; 475 return;
475 476
476 var lastMessage = this._visibleViewMessages.peekLast(); 477 var lastMessage = this._visibleViewMessages.peekLast();
477 if (viewMessage.consoleMessage().type === ConsoleModel.ConsoleMessage.Messag eType.EndGroup) { 478 if (viewMessage.consoleMessage().type === ConsoleModel.ConsoleMessage.Messag eType.EndGroup) {
478 if (lastMessage && !this._currentGroup.messagesHidden()) 479 if (lastMessage && !this._currentGroup.messagesHidden())
479 lastMessage.incrementCloseGroupDecorationCount(); 480 lastMessage.incrementCloseGroupDecorationCount();
480 this._currentGroup = this._currentGroup.parentGroup() || this._currentGrou p; 481 this._currentGroup = this._currentGroup.parentGroup() || this._currentGrou p;
481 return; 482 return;
482 } 483 }
483 if (!this._currentGroup.messagesHidden()) { 484 if (!this._currentGroup.messagesHidden()) {
484 var originatingMessage = viewMessage.consoleMessage().originatingMessage() ; 485 var originatingMessage = viewMessage.consoleMessage().originatingMessage() ;
485 if (lastMessage && originatingMessage && lastMessage.consoleMessage() === originatingMessage) 486 if (lastMessage && originatingMessage && lastMessage.consoleMessage() === originatingMessage)
486 lastMessage.toMessageElement().classList.add('console-adjacent-user-comm and-result'); 487 lastMessage.toMessageElement().classList.add('console-adjacent-user-comm and-result');
487 488
488 this._visibleViewMessages.push(viewMessage); 489 this._visibleViewMessages.push(viewMessage);
489 this._searchMessage(this._visibleViewMessages.length - 1); 490 this._searchMessage(this._visibleViewMessages.length - 1);
490 } 491 }
491 492
492 if (viewMessage.consoleMessage().isGroupStartMessage()) 493 if (viewMessage.consoleMessage().isGroupStartMessage()) {
493 this._currentGroup = new Console.ConsoleGroup(this._currentGroup, viewMess age); 494 var showAllChildren =
495 ignoreTextFilter || (this._filter.hasFilterText() && this._filter.matc hesTextOrRegex(viewMessage));
chenwilliam 2017/07/20 00:22:33 I don't think you need hasFilterText here because
luoe 2017/07/20 20:59:03 Done.
496 this._currentGroup = new Console.ConsoleGroup(this._currentGroup, viewMess age, showAllChildren);
497 }
494 498
495 this._messageAppendedForTests(); 499 this._messageAppendedForTests();
496 } 500 }
497 501
498 _messageAppendedForTests() { 502 _messageAppendedForTests() {
499 // This method is sniffed in tests. 503 // This method is sniffed in tests.
500 } 504 }
501 505
502 /** 506 /**
503 * @param {!ConsoleModel.ConsoleMessage} message 507 * @param {!ConsoleModel.ConsoleMessage} message
(...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after
1129 1133
1130 /** 1134 /**
1131 * @returns {!Object} 1135 * @returns {!Object}
1132 */ 1136 */
1133 messageURLFilters() { 1137 messageURLFilters() {
1134 return this._messageURLFiltersSetting.get(); 1138 return this._messageURLFiltersSetting.get();
1135 } 1139 }
1136 1140
1137 /** 1141 /**
1138 * @param {!Console.ConsoleViewMessage} viewMessage 1142 * @param {!Console.ConsoleViewMessage} viewMessage
1143 * @param {boolean} ignoreTextFilter
1139 * @return {boolean} 1144 * @return {boolean}
1140 */ 1145 */
1141 shouldBeVisible(viewMessage) { 1146 shouldBeVisible(viewMessage, ignoreTextFilter) {
1142 var message = viewMessage.consoleMessage(); 1147 var message = viewMessage.consoleMessage();
1143 var executionContext = UI.context.flavor(SDK.ExecutionContext); 1148 var executionContext = UI.context.flavor(SDK.ExecutionContext);
1144 1149
1145 if (this._filterByExecutionContextSetting.get() && executionContext) { 1150 if (this._filterByExecutionContextSetting.get() && executionContext) {
1146 if (message.runtimeModel() !== executionContext.runtimeModel) 1151 if (message.runtimeModel() !== executionContext.runtimeModel)
1147 return false; 1152 return false;
1148 if (message.executionContextId && message.executionContextId !== execution Context.id) 1153 if (message.executionContextId && message.executionContextId !== execution Context.id)
1149 return false; 1154 return false;
1150 } 1155 }
1151 1156
1152 if (this._hideNetworkMessagesSetting.get() && 1157 if (this._hideNetworkMessagesSetting.get() &&
1153 viewMessage.consoleMessage().source === ConsoleModel.ConsoleMessage.Mess ageSource.Network) 1158 viewMessage.consoleMessage().source === ConsoleModel.ConsoleMessage.Mess ageSource.Network)
1154 return false; 1159 return false;
1155 1160
1156 if (viewMessage.consoleMessage().isGroupMessage()) 1161 if (viewMessage.consoleMessage().isGroupMessage())
1157 return true; 1162 return true;
1158 1163
1159 if (message.type === ConsoleModel.ConsoleMessage.MessageType.Result || 1164 if (message.type === ConsoleModel.ConsoleMessage.MessageType.Result ||
1160 message.type === ConsoleModel.ConsoleMessage.MessageType.Command) 1165 message.type === ConsoleModel.ConsoleMessage.MessageType.Command)
1161 return true; 1166 return true;
1162 1167
1163 if (message.url && this._messageURLFiltersSetting.get()[message.url]) 1168 if (message.url && this._messageURLFiltersSetting.get()[message.url])
1164 return false; 1169 return false;
1165 1170
1166 var levels = this._messageLevelFiltersSetting.get(); 1171 var levels = this._messageLevelFiltersSetting.get();
1167 if (!levels[message.level]) 1172 if (!levels[message.level])
1168 return false; 1173 return false;
1169 1174
1170 if (this._filterRegex) { 1175 if (!ignoreTextFilter && this.hasFilterText() && !this.matchesTextOrRegex(vi ewMessage))
1171 if (!viewMessage.matchesFilterRegex(this._filterRegex)) 1176 return false;
1172 return false;
1173 } else if (this._filterText) {
1174 if (!viewMessage.matchesFilterText(this._filterText))
1175 return false;
1176 }
1177 1177
1178 if (this._filterByConsoleAPISetting.get() && 1178 if (this._filterByConsoleAPISetting.get() &&
1179 message.source !== ConsoleModel.ConsoleMessage.MessageSource.ConsoleAPI) 1179 message.source !== ConsoleModel.ConsoleMessage.MessageSource.ConsoleAPI)
1180 return false; 1180 return false;
1181 1181
1182 return true; 1182 return true;
1183 } 1183 }
1184 1184
1185 /**
1186 * @param {!Console.ConsoleViewMessage} viewMessage
1187 * @return {boolean}
1188 */
1189 matchesTextOrRegex(viewMessage) {
1190 if (this._filterRegex)
1191 return viewMessage.matchesFilterRegex(this._filterRegex);
1192 if (this._filterText)
1193 return viewMessage.matchesFilterText(this._filterText);
1194 return false;
1195 }
1196
1197 /**
1198 * @return {boolean}
1199 */
1200 hasFilterText() {
chenwilliam 2017/07/20 00:22:33 seems confusing since filterText has two meanings
luoe 2017/07/20 20:59:03 Acknowledged. Actually, per your previous comment
1201 return !!(this._filterRegex || this._filterText);
1202 }
1203
1185 reset() { 1204 reset() {
1186 this._messageURLFiltersSetting.set({}); 1205 this._messageURLFiltersSetting.set({});
1187 this._messageLevelFiltersSetting.set(Console.ConsoleViewFilter.defaultLevels FilterValue()); 1206 this._messageLevelFiltersSetting.set(Console.ConsoleViewFilter.defaultLevels FilterValue());
1188 this._filterByExecutionContextSetting.set(false); 1207 this._filterByExecutionContextSetting.set(false);
1189 this._filterByConsoleAPISetting.set(false); 1208 this._filterByConsoleAPISetting.set(false);
1190 this._hideNetworkMessagesSetting.set(false); 1209 this._hideNetworkMessagesSetting.set(false);
1191 this._textFilterUI.setValue(''); 1210 this._textFilterUI.setValue('');
1192 this._textFilterChanged(); 1211 this._textFilterChanged();
1193 } 1212 }
1194 }; 1213 };
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1272 } 1291 }
1273 } 1292 }
1274 return element; 1293 return element;
1275 } 1294 }
1276 }; 1295 };
1277 1296
1278 Console.ConsoleGroup = class { 1297 Console.ConsoleGroup = class {
1279 /** 1298 /**
1280 * @param {?Console.ConsoleGroup} parentGroup 1299 * @param {?Console.ConsoleGroup} parentGroup
1281 * @param {?Console.ConsoleViewMessage} groupMessage 1300 * @param {?Console.ConsoleViewMessage} groupMessage
1301 * @param {boolean} showAllChildren
1282 */ 1302 */
1283 constructor(parentGroup, groupMessage) { 1303 constructor(parentGroup, groupMessage, showAllChildren) {
1284 this._parentGroup = parentGroup; 1304 this._parentGroup = parentGroup;
1285 this._nestingLevel = parentGroup ? parentGroup.nestingLevel() + 1 : 0; 1305 this._nestingLevel = parentGroup ? parentGroup.nestingLevel() + 1 : 0;
1286 this._messagesHidden = 1306 this._messagesHidden =
1287 groupMessage && groupMessage.collapsed() || this._parentGroup && this._p arentGroup.messagesHidden(); 1307 groupMessage && groupMessage.collapsed() || this._parentGroup && this._p arentGroup.messagesHidden();
1308 this._showAllChildren = showAllChildren;
1288 } 1309 }
1289 1310
1290 /** 1311 /**
1291 * @return {!Console.ConsoleGroup} 1312 * @return {!Console.ConsoleGroup}
1292 */ 1313 */
1293 static createTopGroup() { 1314 static createTopGroup() {
1294 return new Console.ConsoleGroup(null, null); 1315 return new Console.ConsoleGroup(null, null, false);
1295 } 1316 }
1296 1317
1297 /** 1318 /**
1298 * @return {boolean} 1319 * @return {boolean}
1299 */ 1320 */
1300 messagesHidden() { 1321 messagesHidden() {
1301 return this._messagesHidden; 1322 return this._messagesHidden;
1302 } 1323 }
1303 1324
1304 /** 1325 /**
1326 * @return {boolean}
1327 */
1328 showAllChildren() {
1329 return this._showAllChildren;
1330 }
1331
1332 /**
1305 * @return {number} 1333 * @return {number}
1306 */ 1334 */
1307 nestingLevel() { 1335 nestingLevel() {
1308 return this._nestingLevel; 1336 return this._nestingLevel;
1309 } 1337 }
1310 1338
1311 /** 1339 /**
1312 * @return {?Console.ConsoleGroup} 1340 * @return {?Console.ConsoleGroup}
1313 */ 1341 */
1314 parentGroup() { 1342 parentGroup() {
(...skipping 24 matching lines...) Expand all
1339 return true; 1367 return true;
1340 } 1368 }
1341 return false; 1369 return false;
1342 } 1370 }
1343 }; 1371 };
1344 1372
1345 /** 1373 /**
1346 * @typedef {{messageIndex: number, matchIndex: number}} 1374 * @typedef {{messageIndex: number, matchIndex: number}}
1347 */ 1375 */
1348 Console.ConsoleView.RegexMatchRange; 1376 Console.ConsoleView.RegexMatchRange;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698