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

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

Issue 254833004: DevTools: [Console] use filtering to collapse and expand console groups (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: update tests Created 6 years, 8 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 | Annotate | Revision Log
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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 this._scrolledToBottom = true; 84 this._scrolledToBottom = true;
85 85
86 this._filterStatusMessageElement = this._messagesElement.createChild("div", "console-message"); 86 this._filterStatusMessageElement = this._messagesElement.createChild("div", "console-message");
87 this._filterStatusTextElement = this._filterStatusMessageElement.createChild ("span", "console-info"); 87 this._filterStatusTextElement = this._filterStatusMessageElement.createChild ("span", "console-info");
88 this._filterStatusMessageElement.createTextChild(" "); 88 this._filterStatusMessageElement.createTextChild(" ");
89 var resetFiltersLink = this._filterStatusMessageElement.createChild("span", "console-info node-link"); 89 var resetFiltersLink = this._filterStatusMessageElement.createChild("span", "console-info node-link");
90 resetFiltersLink.textContent = WebInspector.UIString("Show all messages."); 90 resetFiltersLink.textContent = WebInspector.UIString("Show all messages.");
91 resetFiltersLink.addEventListener("click", this._filter.reset.bind(this._fil ter), true); 91 resetFiltersLink.addEventListener("click", this._filter.reset.bind(this._fil ter), true);
92 92
93 this._messagesContainer = this._messagesElement.createChild("div", "console- group"); 93 this._messagesContainer = this._messagesElement.createChild("div", "console- group");
94 this._topGroup = WebInspector.ConsoleGroup.createTopGroup(this._messagesCont ainer); 94 this._topGroup = WebInspector.ConsoleGroup.createTopGroup();
95 this._currentGroup = this._topGroup; 95 this._currentGroup = this._topGroup;
96 96
97 this._promptElement = this._messagesElement.createChild("div", "source-code" ); 97 this._promptElement = this._messagesElement.createChild("div", "source-code" );
98 this._promptElement.id = "console-prompt"; 98 this._promptElement.id = "console-prompt";
99 this._promptElement.spellcheck = false; 99 this._promptElement.spellcheck = false;
100 this._promptElement.addEventListener("paste", this._onPasteIntoPrompt.bind(t his), false); 100 this._promptElement.addEventListener("paste", this._onPasteIntoPrompt.bind(t his), false);
101 this._promptElement.addEventListener("drop", this._onPasteIntoPrompt.bind(th is), false); 101 this._promptElement.addEventListener("drop", this._onPasteIntoPrompt.bind(th is), false);
102 this._messagesElement.appendChild(this._promptElement); 102 this._messagesElement.appendChild(this._promptElement);
103 this._messagesElement.appendChild(document.createElement("br")); 103 this._messagesElement.appendChild(document.createElement("br"));
104 104
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 _onConsoleMessageAdded: function(event) 404 _onConsoleMessageAdded: function(event)
405 { 405 {
406 var message = /** @type {!WebInspector.ConsoleMessage} */ (event.data); 406 var message = /** @type {!WebInspector.ConsoleMessage} */ (event.data);
407 var viewMessage = this._createViewMessage(message); 407 var viewMessage = this._createViewMessage(message);
408 this._consoleMessageAdded(viewMessage); 408 this._consoleMessageAdded(viewMessage);
409 }, 409 },
410 410
411 /** 411 /**
412 * @param {!WebInspector.ConsoleViewMessage} viewMessage 412 * @param {!WebInspector.ConsoleViewMessage} viewMessage
413 */ 413 */
414 _showConsoleMessage: function(viewMessage) 414 _showConsoleMessage: function(viewMessage)
pfeldman 2014/04/28 09:00:33 _addConsoleMessage ?
415 { 415 {
416 var lastMessage = this._visibleViewMessages.peekLast();
416 if (viewMessage.consoleMessage().type === WebInspector.ConsoleMessage.Me ssageType.EndGroup) { 417 if (viewMessage.consoleMessage().type === WebInspector.ConsoleMessage.Me ssageType.EndGroup) {
417 this._currentGroup = this._currentGroup.endGroup(); 418 if (lastMessage && !this._currentGroup.messagesHidden())
pfeldman 2014/04/28 09:00:33 .collapsed()
419 lastMessage.incrementCloseGroupDecorationCount();
420 this._currentGroup = this._currentGroup.parentGroup();
418 return; 421 return;
419 } 422 }
423 if (!this._currentGroup.messagesHidden()) {
424 // this._messagesElement.isScrolledToBottom() is forcing style recal culation.
425 // We just skip it if the scroll action has been scheduled.
426 if (!this._isScrollIntoViewScheduled() && ((viewMessage instanceof W ebInspector.ConsoleCommandResult) || this._messagesElement.isScrolledToBottom()) )
427 this._scheduleScrollIntoView();
420 428
421 // this._messagesElement.isScrolledToBottom() is forcing style recalcula tion. 429 var originatingMessage = viewMessage.consoleMessage().originatingMes sage();
422 // We just skip it if the scroll action has been scheduled. 430 if (lastMessage && originatingMessage && lastMessage.consoleMessage( ) === originatingMessage)
423 if (!this._isScrollIntoViewScheduled() && ((viewMessage instanceof WebIn spector.ConsoleCommandResult) || this._messagesElement.isScrolledToBottom())) 431 lastMessage.toMessageElement().classList.add("console-adjacent-u ser-command-result");
424 this._scheduleScrollIntoView();
425 432
426 this._visibleViewMessages.push(viewMessage); 433 this._messagesContainer.appendChild(viewMessage.toMessageElement());
427 if (WebInspector.ConsoleGroup.isGroupStartMessage(viewMessage)) 434 viewMessage.wasShown();
428 this._currentGroup = this._currentGroup.createChildGroup(viewMessage ); 435 this._visibleViewMessages.push(viewMessage);
429 else
430 this._currentGroup.addMessage(viewMessage);
431 436
432 if (this._searchRegex && viewMessage.matchesRegex(this._searchRegex)) { 437 if (this._searchRegex && viewMessage.matchesRegex(this._searchRegex) ) {
433 this._searchResults.push(viewMessage); 438 this._searchResults.push(viewMessage);
434 this._searchableView.updateSearchMatchesCount(this._searchResults.le ngth); 439 this._searchableView.updateSearchMatchesCount(this._searchResult s.length);
440 }
435 } 441 }
442
443 if (viewMessage.consoleMessage().isGroupStartMessage())
444 this._currentGroup = new WebInspector.ConsoleGroup(this._currentGrou p, viewMessage);
436 }, 445 },
437 446
438 /** 447 /**
439 * @param {!WebInspector.ConsoleMessage} message 448 * @param {!WebInspector.ConsoleMessage} message
440 * @return {!WebInspector.ConsoleViewMessage} 449 * @return {!WebInspector.ConsoleViewMessage}
441 */ 450 */
442 _createViewMessage: function(message) 451 _createViewMessage: function(message)
443 { 452 {
444 var nestingLevel = this._currentGroup.nestingLevel(); 453 var nestingLevel = this._currentGroup.nestingLevel();
445 switch (message.type) { 454 switch (message.type) {
446 case WebInspector.ConsoleMessage.MessageType.Command: 455 case WebInspector.ConsoleMessage.MessageType.Command:
447 return new WebInspector.ConsoleCommand(message, nestingLevel); 456 return new WebInspector.ConsoleCommand(message, nestingLevel);
448 case WebInspector.ConsoleMessage.MessageType.Result: 457 case WebInspector.ConsoleMessage.MessageType.Result:
449 return new WebInspector.ConsoleCommandResult(message, this._linkifie r, nestingLevel); 458 return new WebInspector.ConsoleCommandResult(message, this._linkifie r, nestingLevel);
459 case WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed:
460 case WebInspector.ConsoleMessage.MessageType.StartGroup:
461 return new WebInspector.ConsoleGroupViewMessage(message, this._linki fier, nestingLevel);
450 default: 462 default:
451 return new WebInspector.ConsoleViewMessage(message, this._linkifier, nestingLevel); 463 return new WebInspector.ConsoleViewMessage(message, this._linkifier, nestingLevel);
452 } 464 }
453 }, 465 },
454 466
455 _consoleCleared: function() 467 _consoleCleared: function()
456 { 468 {
457 this._clearCurrentSearchResultHighlight(); 469 this._clearCurrentSearchResultHighlight();
458 this._consoleMessages = []; 470 this._consoleMessages = [];
459 this._scrolledToBottom = true; 471 this._scrolledToBottom = true;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 if (!WebInspector.settings.consoleTimestampsEnabled.get() && viewMessage && !lastMessage.consoleMessage().isGroupMessage() && lastMessage.consoleMessage ().isEqual(viewMessage.consoleMessage())) { 541 if (!WebInspector.settings.consoleTimestampsEnabled.get() && viewMessage && !lastMessage.consoleMessage().isGroupMessage() && lastMessage.consoleMessage ().isEqual(viewMessage.consoleMessage())) {
530 viewMessage.incrementRepeatCount(); 542 viewMessage.incrementRepeatCount();
531 return true; 543 return true;
532 } 544 }
533 545
534 return false; 546 return false;
535 }, 547 },
536 548
537 _updateMessageList: function() 549 _updateMessageList: function()
538 { 550 {
539 this._topGroup.detach(); 551 this._topGroup = WebInspector.ConsoleGroup.createTopGroup();
540 this._topGroup = WebInspector.ConsoleGroup.createTopGroup(this._messages Container);
541 this._currentGroup = this._topGroup; 552 this._currentGroup = this._topGroup;
542 this._searchResults = []; 553 this._searchResults = [];
543 this._hiddenByFilterCount = 0; 554 this._hiddenByFilterCount = 0;
555 for (var i = 0; i < this._visibleViewMessages.length; ++i) {
556 var visibleMessage = this._visibleViewMessages[i];
557 visibleMessage.willHide();
558 visibleMessage.toMessageElement().remove();
559 visibleMessage.resetCloseGroupDecorationCount();
560 visibleMessage.resetIncrementRepeatCount();
561 }
562
544 this._visibleViewMessages = []; 563 this._visibleViewMessages = [];
545 for (var i = 0; i < this._consoleMessages.length; ++i) { 564 for (var i = 0; i < this._consoleMessages.length; ++i) {
546 var viewMessage = this._consoleMessages[i]; 565 var viewMessage = this._consoleMessages[i];
547 viewMessage.resetIncrementRepeatCount();
548 if (this._tryToCollapseMessages(viewMessage, this._visibleViewMessag es.peekLast())) 566 if (this._tryToCollapseMessages(viewMessage, this._visibleViewMessag es.peekLast()))
549 continue; 567 continue;
550 if (this._filter.shouldBeVisible(viewMessage)) 568 if (this._filter.shouldBeVisible(viewMessage))
551 this._showConsoleMessage(viewMessage); 569 this._showConsoleMessage(viewMessage);
552 else 570 else
553 this._hiddenByFilterCount++; 571 this._hiddenByFilterCount++;
554 } 572 }
555 this._updateFilterStatus(); 573 this._updateFilterStatus();
556 }, 574 },
557 575
558 /** 576 /**
559 * @param {!WebInspector.Target} target 577 * @param {!WebInspector.Target} target
560 * @param {!WebInspector.Event} event 578 * @param {!WebInspector.Event} event
561 */ 579 */
562 _monitoringXHREnabledSettingChanged: function(target, event) 580 _monitoringXHREnabledSettingChanged: function(target, event)
563 { 581 {
564 var enabled = /** @type {boolean} */ (event.data); 582 var enabled = /** @type {boolean} */ (event.data);
565 WebInspector.targetManager.targets().forEach(function(target) {target.co nsoleAgent().setMonitoringXHREnabled(enabled);}); 583 WebInspector.targetManager.targets().forEach(function(target) {target.co nsoleAgent().setMonitoringXHREnabled(enabled);});
566 }, 584 },
567 585
568 _messagesClicked: function() 586 /**
587 * @param {?Event} event
588 */
589 _messagesClicked: function(event)
569 { 590 {
570 if (!this._prompt.isCaretInsidePrompt() && window.getSelection().isColla psed) 591 if (!this._prompt.isCaretInsidePrompt() && window.getSelection().isColla psed)
571 this._prompt.moveCaretToEndOfPrompt(); 592 this._prompt.moveCaretToEndOfPrompt();
593 var groupMessage = event.target.enclosingNodeOrSelfWithClass("console-gr oup-title");
594 if (!groupMessage)
595 return;
596 var consoleGroupViewMessage = groupMessage.parentElement.message;
597 consoleGroupViewMessage.setCollapsed(!consoleGroupViewMessage.collapsed( ));
598 var originalScrollPosition = this._messagesElement.scrollTop;
599 this._updateMessageList();
600 this._cancelScheduledScrollIntoView();
601 this._messagesElement.scrollTop = originalScrollPosition;
572 }, 602 },
573 603
574 _registerShortcuts: function() 604 _registerShortcuts: function()
575 { 605 {
576 this._shortcuts = {}; 606 this._shortcuts = {};
577 607
578 var shortcut = WebInspector.KeyboardShortcut; 608 var shortcut = WebInspector.KeyboardShortcut;
579 var section = WebInspector.shortcutsScreen.section(WebInspector.UIString ("Console")); 609 var section = WebInspector.shortcutsScreen.section(WebInspector.UIString ("Console"));
580 610
581 var shortcutL = shortcut.makeDescriptor("l", WebInspector.KeyboardShortc ut.Modifiers.Ctrl); 611 var shortcutL = shortcut.makeDescriptor("l", WebInspector.KeyboardShortc ut.Modifiers.Ctrl);
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
898 * @param {!WebInspector.ConsoleViewMessage} viewMessage 928 * @param {!WebInspector.ConsoleViewMessage} viewMessage
899 * @return {boolean} 929 * @return {boolean}
900 */ 930 */
901 shouldBeVisible: function(viewMessage) 931 shouldBeVisible: function(viewMessage)
902 { 932 {
903 var message = viewMessage.consoleMessage(); 933 var message = viewMessage.consoleMessage();
904 var executionContext = WebInspector.context.flavor(WebInspector.Executio nContext); 934 var executionContext = WebInspector.context.flavor(WebInspector.Executio nContext);
905 if (!this._view._showAllMessagesCheckbox.checked() && executionContext & & (message.target() !== executionContext.target() || message.executionContextId !== executionContext.id)) 935 if (!this._view._showAllMessagesCheckbox.checked() && executionContext & & (message.target() !== executionContext.target() || message.executionContextId !== executionContext.id))
906 return false; 936 return false;
907 937
908 if (WebInspector.ConsoleGroup.isGroupStartMessage(viewMessage) || messag e.type === WebInspector.ConsoleMessage.MessageType.EndGroup) 938 if (viewMessage.consoleMessage().isGroupMessage())
909 return true; 939 return true;
910 940
911 if (message.type === WebInspector.ConsoleMessage.MessageType.Result || m essage.type === WebInspector.ConsoleMessage.MessageType.Command) 941 if (message.type === WebInspector.ConsoleMessage.MessageType.Result || m essage.type === WebInspector.ConsoleMessage.MessageType.Command)
912 return true; 942 return true;
913 943
914 if (message.url && this._messageURLFilters[message.url]) 944 if (message.url && this._messageURLFilters[message.url])
915 return false; 945 return false;
916 946
917 if (message.level && !this._levelFilterUI.accept(message.level)) 947 if (message.level && !this._levelFilterUI.accept(message.level))
918 return false; 948 return false;
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1051 var element = WebInspector.ConsoleViewMessage.prototype.contentElement.c all(this); 1081 var element = WebInspector.ConsoleViewMessage.prototype.contentElement.c all(this);
1052 element.classList.add("console-user-command-result"); 1082 element.classList.add("console-user-command-result");
1053 return element; 1083 return element;
1054 }, 1084 },
1055 1085
1056 __proto__: WebInspector.ConsoleViewMessage.prototype 1086 __proto__: WebInspector.ConsoleViewMessage.prototype
1057 } 1087 }
1058 1088
1059 /** 1089 /**
1060 * @constructor 1090 * @constructor
1061 * @param {!Element} container
1062 * @param {?WebInspector.ConsoleGroup} parentGroup 1091 * @param {?WebInspector.ConsoleGroup} parentGroup
1063 * @param {?WebInspector.ConsoleViewMessage} groupMessage 1092 * @param {?WebInspector.ConsoleViewMessage} groupMessage
1064 */ 1093 */
1065 WebInspector.ConsoleGroup = function(container, parentGroup, groupMessage) 1094 WebInspector.ConsoleGroup = function(parentGroup, groupMessage)
1066 { 1095 {
1067 this._parentGroup = parentGroup; 1096 this._parentGroup = parentGroup;
1068 this._nestingLevel = parentGroup ? parentGroup.nestingLevel() + 1 : 0; 1097 this._nestingLevel = parentGroup ? parentGroup.nestingLevel() + 1 : 0;
1069 this._childMessages = []; 1098 this._messagesHidden = groupMessage && groupMessage.collapsed() || this._par entGroup && this._parentGroup.messagesHidden();
1070 this._childGroups = [];
1071
1072 if (groupMessage) {
1073 this._titleClicked = this._titleClicked.bind(this);
1074 this._titleElement = groupMessage.toMessageElement();
1075 this._titleElement.addEventListener("click", this._titleClicked, false);
1076 if (groupMessage.consoleMessage().type === WebInspector.ConsoleMessage.M essageType.StartGroupCollapsed)
1077 this._titleElement.classList.add("collapsed");
1078 }
1079
1080 this._messagesElement = container;
1081 } 1099 }
1082 1100
1083 /** 1101 /**
1084 * @param {!WebInspector.ConsoleViewMessage} viewMessage
1085 * @return {boolean}
1086 */
1087 WebInspector.ConsoleGroup.isGroupStartMessage = function(viewMessage)
1088 {
1089 var messageType = viewMessage.consoleMessage().type;
1090 return messageType === WebInspector.ConsoleMessage.MessageType.StartGroup || messageType === WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed;
1091 }
1092
1093 /**
1094 * @param {!Element} messagesContainer
1095 * @return {!WebInspector.ConsoleGroup} 1102 * @return {!WebInspector.ConsoleGroup}
1096 */ 1103 */
1097 WebInspector.ConsoleGroup.createTopGroup = function(messagesContainer) 1104 WebInspector.ConsoleGroup.createTopGroup = function()
1098 { 1105 {
1099 return new WebInspector.ConsoleGroup(messagesContainer, null, null); 1106 return new WebInspector.ConsoleGroup(null, null);
1100 } 1107 }
1101 1108
1102 WebInspector.ConsoleGroup.prototype = { 1109 WebInspector.ConsoleGroup.prototype = {
1103 /** 1110 /**
1111 * @return {boolean}
1112 */
1113 messagesHidden: function()
1114 {
1115 return this._messagesHidden;
1116 },
1117
1118 /**
1104 * @return {number} 1119 * @return {number}
1105 */ 1120 */
1106 nestingLevel: function() 1121 nestingLevel: function()
1107 { 1122 {
1108 return this._nestingLevel; 1123 return this._nestingLevel;
1109 }, 1124 },
1110 1125
1111 /** 1126 /**
1112 * @param {!WebInspector.ConsoleViewMessage} viewMessage
1113 * @return {!WebInspector.ConsoleGroup}
1114 */
1115 createChildGroup: function(viewMessage)
1116 {
1117 var group = new WebInspector.ConsoleGroup(this._messagesElement, this, v iewMessage);
1118 this._childGroups.push(group);
1119 this._addChild(viewMessage);
1120 return group;
1121 },
1122
1123 /**
1124 * @return {?WebInspector.ConsoleGroup} 1127 * @return {?WebInspector.ConsoleGroup}
1125 */ 1128 */
1126 endGroup: function() 1129 parentGroup: function()
1127 { 1130 {
1128 if (this._childMessages.length) {
1129 var lastDescendant = this._lastDescendantViewMessage();
1130 lastDescendant.setCloseGroupDecorationCount(lastDescendant.closeGrou pDecorationCount() + 1);
1131 }
1132 return this._parentGroup || this; 1131 return this._parentGroup || this;
1133 }, 1132 },
1134
1135 /**
1136 * @return {!WebInspector.ConsoleViewMessage}
1137 */
1138 _lastDescendantViewMessage: function()
1139 {
1140 if (!this._childMessages.length)
1141 return this._titleElement.message;
1142 var lastChild = this._childMessages.peekLast();
1143 return WebInspector.ConsoleGroup.isGroupStartMessage(lastChild) ? this._ childGroups.peekLast()._lastDescendantViewMessage() : lastChild;
1144 },
1145
1146 /**
1147 * @param {!WebInspector.ConsoleViewMessage} viewMessage
1148 */
1149 addMessage: function(viewMessage)
1150 {
1151 this._addChild(viewMessage);
1152 this._toggleHideViewMessage(viewMessage, this._collapsed());
1153
1154 var originatingMessage = viewMessage.consoleMessage().originatingMessage ();
1155 var element = viewMessage.toMessageElement();
1156 if (element.previousSibling && originatingMessage && element.previousSib ling.message && element.previousSibling.message.consoleMessage() === originating Message)
1157 element.previousSibling.classList.add("console-adjacent-user-command -result");
1158 },
1159
1160 /**
1161 * @param {?Event} event
1162 */
1163 _titleClicked: function(event)
1164 {
1165 var isCollapsed = this._titleElement.classList.toggle("collapsed")
1166 if (isCollapsed) {
1167 var lastVisibleDescendant = this._lastDescendantViewMessage();
1168 var closeGroupCount = lastVisibleDescendant.closeGroupDecorationCoun t();
1169 this._titleElement.message.setCloseGroupDecorationCount(closeGroupCo unt - (lastVisibleDescendant.nestingLevel() - this.nestingLevel() + 1));
1170 } else if (this._childMessages.length) {
1171 this._titleElement.message.setCloseGroupDecorationCount(0);
1172 }
1173 this._toggleHideChildren(isCollapsed);
1174 this._titleElement.scrollIntoViewIfNeeded(true);
1175 event.consume(true);
1176 },
1177
1178 /**
1179 * @param {!WebInspector.ConsoleViewMessage} viewMessage
1180 */
1181 _addChild: function(viewMessage)
1182 {
1183 this._childMessages.push(viewMessage);
1184 this._messagesElement.appendChild(viewMessage.toMessageElement());
1185 viewMessage.wasShown();
1186 },
1187
1188 /**
1189 * @return {boolean}
1190 */
1191 _collapsed: function()
1192 {
1193 return this._titleElement && this._titleElement.classList.contains("coll apsed");
1194 },
1195
1196 /**
1197 * @param {!WebInspector.ConsoleViewMessage} viewMessage
1198 * @param {boolean} state
1199 */
1200 _toggleHideViewMessage: function(viewMessage, state)
1201 {
1202 viewMessage.toMessageElement().classList.toggle("hidden", state);
1203 },
1204
1205 /**
1206 * @param {boolean} hideChildren
1207 */
1208 _toggleHideChildren: function(hideChildren)
1209 {
1210 if (!hideChildren && this._collapsed())
1211 return;
1212 for (var i = 0; i < this._childMessages.length; ++i)
1213 this._toggleHideViewMessage(this._childMessages[i], hideChildren);
1214 for (var i = 0; i < this._childGroups.length; ++i)
1215 this._childGroups[i]._toggleHideChildren(hideChildren);
1216 },
1217
1218 detach: function()
1219 {
1220 if (this._titleElement)
1221 this._titleElement.removeEventListener("click", this._titleClicked, false);
1222 for (var i = 0; i < this._childGroups.length; ++i)
1223 this._childGroups[i].detach();
1224 for (var i = 0; i < this._childMessages.length; ++i) {
1225 this._childMessages[i].willHide();
1226 this._childMessages[i].toMessageElement().remove();
1227 this._childMessages[i].setCloseGroupDecorationCount(0);
1228 }
1229 },
1230 } 1133 }
1231 1134
1232 /** 1135 /**
1233 * @constructor 1136 * @constructor
1234 * @implements {WebInspector.ActionDelegate} 1137 * @implements {WebInspector.ActionDelegate}
1235 */ 1138 */
1236 WebInspector.ConsoleView.ShowConsoleActionDelegate = function() 1139 WebInspector.ConsoleView.ShowConsoleActionDelegate = function()
1237 { 1140 {
1238 } 1141 }
1239 1142
1240 WebInspector.ConsoleView.ShowConsoleActionDelegate.prototype = { 1143 WebInspector.ConsoleView.ShowConsoleActionDelegate.prototype = {
1241 /** 1144 /**
1242 * @return {boolean} 1145 * @return {boolean}
1243 */ 1146 */
1244 handleAction: function() 1147 handleAction: function()
1245 { 1148 {
1246 WebInspector.console.show(); 1149 WebInspector.console.show();
1247 return true; 1150 return true;
1248 } 1151 }
1249 } 1152 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698