Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 } |
| OLD | NEW |