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

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

Issue 2331053002: DevTools: Implement the console prompt with CodeMirror (Closed)
Patch Set: Merge with PageUp fix Created 4 years, 3 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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 this._filterStatusMessageElement.createTextChild(" "); 96 this._filterStatusMessageElement.createTextChild(" ");
97 var resetFiltersLink = this._filterStatusMessageElement.createChild("span", "console-info link"); 97 var resetFiltersLink = this._filterStatusMessageElement.createChild("span", "console-info link");
98 resetFiltersLink.textContent = WebInspector.UIString("Show all messages."); 98 resetFiltersLink.textContent = WebInspector.UIString("Show all messages.");
99 resetFiltersLink.addEventListener("click", this._filter.reset.bind(this._fil ter), true); 99 resetFiltersLink.addEventListener("click", this._filter.reset.bind(this._fil ter), true);
100 100
101 this._topGroup = WebInspector.ConsoleGroup.createTopGroup(); 101 this._topGroup = WebInspector.ConsoleGroup.createTopGroup();
102 this._currentGroup = this._topGroup; 102 this._currentGroup = this._topGroup;
103 103
104 this._promptElement = this._messagesElement.createChild("div", "source-code" ); 104 this._promptElement = this._messagesElement.createChild("div", "source-code" );
105 this._promptElement.id = "console-prompt"; 105 this._promptElement.id = "console-prompt";
106 this._promptElement.spellcheck = false; 106 this._promptElement.addEventListener("input", this._promptInput.bind(this), false);
dgozman 2016/09/12 21:38:57 Should we use CodeMirror api instead? Does it inte
einbinder 2016/09/13 01:07:59 CodeMirror promises to let these events fall throu
107
108 this._searchableView.setDefaultFocusedElement(this._promptElement);
109 107
110 // FIXME: This is a workaround for the selection machinery bug. See crbug.co m/410899 108 // FIXME: This is a workaround for the selection machinery bug. See crbug.co m/410899
111 var selectAllFixer = this._messagesElement.createChild("div", "console-view- fix-select-all"); 109 var selectAllFixer = this._messagesElement.createChild("div", "console-view- fix-select-all");
112 selectAllFixer.textContent = "."; 110 selectAllFixer.textContent = ".";
113 111
114 this._showAllMessagesCheckbox = new WebInspector.ToolbarCheckbox(WebInspecto r.UIString("Show all messages")); 112 this._showAllMessagesCheckbox = new WebInspector.ToolbarCheckbox(WebInspecto r.UIString("Show all messages"));
115 this._showAllMessagesCheckbox.inputElement.checked = true; 113 this._showAllMessagesCheckbox.inputElement.checked = true;
116 this._showAllMessagesCheckbox.inputElement.addEventListener("change", this._ updateMessageList.bind(this), false); 114 this._showAllMessagesCheckbox.inputElement.addEventListener("change", this._ updateMessageList.bind(this), false);
117 115
118 this._showAllMessagesCheckbox.element.classList.add("hidden"); 116 this._showAllMessagesCheckbox.element.classList.add("hidden");
119 117
120 toolbar.appendToolbarItem(this._showAllMessagesCheckbox); 118 toolbar.appendToolbarItem(this._showAllMessagesCheckbox);
121 119
122 this._registerShortcuts(); 120 this._registerShortcuts();
123 121
124 this._messagesElement.addEventListener("contextmenu", this._handleContextMen uEvent.bind(this), false); 122 this._messagesElement.addEventListener("contextmenu", this._handleContextMen uEvent.bind(this), false);
125 WebInspector.moduleSetting("monitoringXHREnabled").addChangeListener(this._m onitoringXHREnabledSettingChanged, this); 123 WebInspector.moduleSetting("monitoringXHREnabled").addChangeListener(this._m onitoringXHREnabledSettingChanged, this);
126 124
127 this._linkifier = new WebInspector.Linkifier(); 125 this._linkifier = new WebInspector.Linkifier();
128 126
129 /** @type {!Array.<!WebInspector.ConsoleViewMessage>} */ 127 /** @type {!Array.<!WebInspector.ConsoleViewMessage>} */
130 this._consoleMessages = []; 128 this._consoleMessages = [];
131 this._viewMessageSymbol = Symbol("viewMessage"); 129 this._viewMessageSymbol = Symbol("viewMessage");
132 130
133 this._prompt = new WebInspector.TextPromptWithHistory(WebInspector.Execution ContextSelector.completionsForTextPromptInCurrentContext);
134 this._prompt.setSuggestBoxEnabled(true);
135 this._prompt.setAutocompletionTimeout(0);
136 this._prompt.renderAsBlock();
137 var proxyElement = this._prompt.attach(this._promptElement);
138 proxyElement.addEventListener("keydown", this._promptKeyDown.bind(this), fal se);
139 proxyElement.addEventListener("input", this._promptInput.bind(this), false);
140 131
141 this._consoleHistorySetting = WebInspector.settings.createLocalSetting("cons oleHistory", []); 132 this._consoleHistorySetting = WebInspector.settings.createLocalSetting("cons oleHistory", []);
142 var historyData = this._consoleHistorySetting.get(); 133 this._needsFocus = false;
143 this._prompt.history().setHistoryData(historyData); 134
135 WebInspector.ConsolePrompt.create().then(promptCreated.bind(this));
136
137 /**
138 * @this {WebInspector.ConsoleView}
139 * @param {!WebInspector.ConsolePrompt} prompt
140 */
141 function promptCreated(prompt)
dgozman 2016/09/12 21:38:57 I'd rather move asynchronicity to ConsolePrompt it
einbinder 2016/09/13 01:07:59 Done.
142 {
143 this._prompt = prompt;
144 this._prompt.attach(this._promptElement);
145 this._prompt.addKeyDownHandler(this._promptKeyDown.bind(this));
146 this._searchableView.setDefaultFocusedElement(this._prompt.element);
147
148 var historyData = this._consoleHistorySetting.get();
149 this._prompt.history().setHistoryData(historyData);
150 this._consoleHistoryAutocompleteChanged();
151 if (this._needsFocus)
152 this.focus();
153 }
144 154
145 this._consoleHistoryAutocompleteSetting = WebInspector.moduleSetting("consol eHistoryAutocomplete"); 155 this._consoleHistoryAutocompleteSetting = WebInspector.moduleSetting("consol eHistoryAutocomplete");
146 this._consoleHistoryAutocompleteSetting.addChangeListener(this._consoleHisto ryAutocompleteChanged, this); 156 this._consoleHistoryAutocompleteSetting.addChangeListener(this._consoleHisto ryAutocompleteChanged, this);
147 this._consoleHistoryAutocompleteChanged();
148 157
149 this._updateFilterStatus(); 158 this._updateFilterStatus();
150 WebInspector.moduleSetting("consoleTimestampsEnabled").addChangeListener(thi s._consoleTimestampsSettingChanged, this); 159 WebInspector.moduleSetting("consoleTimestampsEnabled").addChangeListener(thi s._consoleTimestampsSettingChanged, this);
151 160
152 this._registerWithMessageSink(); 161 this._registerWithMessageSink();
153 WebInspector.targetManager.observeTargets(this); 162 WebInspector.targetManager.observeTargets(this);
154 163
155 this._initConsoleMessages(); 164 this._initConsoleMessages();
156 165
157 WebInspector.context.addFlavorChangeListener(WebInspector.ExecutionContext, this._executionContextChanged, this); 166 WebInspector.context.addFlavorChangeListener(WebInspector.ExecutionContext, this._executionContextChanged, this);
(...skipping 11 matching lines...) Expand all
169 * @return {!WebInspector.SearchableView} 178 * @return {!WebInspector.SearchableView}
170 */ 179 */
171 searchableView: function() 180 searchableView: function()
172 { 181 {
173 return this._searchableView; 182 return this._searchableView;
174 }, 183 },
175 184
176 _clearHistory: function() 185 _clearHistory: function()
177 { 186 {
178 this._consoleHistorySetting.set([]); 187 this._consoleHistorySetting.set([]);
179 this._prompt.history().setHistoryData([]); 188 if (this._prompt)
189 this._prompt.history().setHistoryData([]);
180 }, 190 },
181 191
182 _consoleHistoryAutocompleteChanged: function() 192 _consoleHistoryAutocompleteChanged: function()
183 { 193 {
184 this._prompt.setAddCompletionsFromHistory(this._consoleHistoryAutocomple teSetting.get()); 194 if (this._prompt)
dgozman 2016/09/12 21:38:57 Could this even happen without a prompt? What abou
einbinder 2016/09/13 01:07:59 Removed.
195 this._prompt.setAddCompletionsFromHistory(this._consoleHistoryAutoco mpleteSetting.get());
185 }, 196 },
186 197
187 _initConsoleMessages: function() 198 _initConsoleMessages: function()
188 { 199 {
189 var mainTarget = WebInspector.targetManager.mainTarget(); 200 var mainTarget = WebInspector.targetManager.mainTarget();
190 var resourceTreeModel = mainTarget && WebInspector.ResourceTreeModel.fro mTarget(mainTarget); 201 var resourceTreeModel = mainTarget && WebInspector.ResourceTreeModel.fro mTarget(mainTarget);
191 var resourcesLoaded = !resourceTreeModel || resourceTreeModel.cachedReso urcesLoaded(); 202 var resourcesLoaded = !resourceTreeModel || resourceTreeModel.cachedReso urcesLoaded();
192 if (!mainTarget || !resourcesLoaded) { 203 if (!mainTarget || !resourcesLoaded) {
193 WebInspector.targetManager.addModelListener(WebInspector.ResourceTre eModel, WebInspector.ResourceTreeModel.Events.CachedResourcesLoaded, this._onRes ourceTreeModelLoaded, this); 204 WebInspector.targetManager.addModelListener(WebInspector.ResourceTre eModel, WebInspector.ResourceTreeModel.Events.CachedResourcesLoaded, this._onRes ourceTreeModelLoaded, this);
194 return; 205 return;
(...skipping 13 matching lines...) Expand all
208 this._fetchMultitargetMessages(); 219 this._fetchMultitargetMessages();
209 }, 220 },
210 221
211 _fetchMultitargetMessages: function() 222 _fetchMultitargetMessages: function()
212 { 223 {
213 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.Conso leModel.Events.ConsoleCleared, this._consoleCleared, this); 224 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.Conso leModel.Events.ConsoleCleared, this._consoleCleared, this);
214 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.Conso leModel.Events.MessageAdded, this._onConsoleMessageAdded, this); 225 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.Conso leModel.Events.MessageAdded, this._onConsoleMessageAdded, this);
215 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.Conso leModel.Events.MessageUpdated, this._onConsoleMessageUpdated, this); 226 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.Conso leModel.Events.MessageUpdated, this._onConsoleMessageUpdated, this);
216 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.Conso leModel.Events.CommandEvaluated, this._commandEvaluated, this); 227 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.Conso leModel.Events.CommandEvaluated, this._commandEvaluated, this);
217 WebInspector.multitargetConsoleModel.messages().forEach(this._addConsole Message, this); 228 WebInspector.multitargetConsoleModel.messages().forEach(this._addConsole Message, this);
229 this._viewport.invalidate();
218 }, 230 },
219 231
220 /** 232 /**
221 * @override 233 * @override
222 * @return {number} 234 * @return {number}
223 */ 235 */
224 itemCount: function() 236 itemCount: function()
225 { 237 {
226 return this._visibleViewMessages.length; 238 return this._visibleViewMessages.length;
227 }, 239 },
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 { 328 {
317 var enabled = /** @type {boolean} */ (event.data); 329 var enabled = /** @type {boolean} */ (event.data);
318 this._updateMessageList(); 330 this._updateMessageList();
319 this._consoleMessages.forEach(function(viewMessage) { 331 this._consoleMessages.forEach(function(viewMessage) {
320 viewMessage.updateTimestamp(enabled); 332 viewMessage.updateTimestamp(enabled);
321 }); 333 });
322 }, 334 },
323 335
324 _executionContextChanged: function() 336 _executionContextChanged: function()
325 { 337 {
326 this._prompt.clearAutoComplete(); 338 if (this._prompt)
339 this._prompt.clearAutoComplete();
327 if (!this._showAllMessagesCheckbox.checked()) 340 if (!this._showAllMessagesCheckbox.checked())
328 this._updateMessageList(); 341 this._updateMessageList();
329 }, 342 },
330 343
331 willHide: function() 344 willHide: function()
332 { 345 {
333 this._hidePromptSuggestBox(); 346 this._hidePromptSuggestBox();
334 }, 347 },
335 348
336 wasShown: function() 349 wasShown: function()
337 { 350 {
338 this._viewport.refresh(); 351 this._viewport.refresh();
339 if (!this._prompt.isCaretInsidePrompt()) 352 this.focus();
340 this._prompt.moveCaretToEndOfPrompt();
341 }, 353 },
342 354
343 focus: function() 355 focus: function()
344 { 356 {
345 if (this._promptElement === WebInspector.currentFocusElement()) 357 if (!this._prompt){
358 this._needsFocus = true;
359 return;
360 }
361 if (this._prompt.hasFocus())
346 return; 362 return;
347 // Set caret position before setting focus in order to avoid scrolling 363 // Set caret position before setting focus in order to avoid scrolling
348 // by focus(). 364 // by focus().
349 this._prompt.moveCaretToEndOfPrompt(); 365 this._prompt.moveCaretToEndOfPrompt();
350 WebInspector.setCurrentFocusElement(this._promptElement); 366 this._prompt.focus();
367 this._needsFocus = false;
351 }, 368 },
352 369
353 restoreScrollPositions: function() 370 restoreScrollPositions: function()
354 { 371 {
355 if (this._viewport.stickToBottom()) 372 if (this._viewport.stickToBottom())
356 this._immediatelyScrollToBottom(); 373 this._immediatelyScrollToBottom();
357 else 374 else
358 WebInspector.Widget.prototype.restoreScrollPositions.call(this); 375 WebInspector.Widget.prototype.restoreScrollPositions.call(this);
359 }, 376 },
360 377
361 onResize: function() 378 onResize: function()
362 { 379 {
363 this._scheduleViewportRefresh(); 380 this._scheduleViewportRefresh();
364 this._hidePromptSuggestBox(); 381 this._hidePromptSuggestBox();
365 if (this._viewport.stickToBottom()) 382 if (this._viewport.stickToBottom())
366 this._immediatelyScrollToBottom(); 383 this._immediatelyScrollToBottom();
367 for (var i = 0; i < this._visibleViewMessages.length; ++i) 384 for (var i = 0; i < this._visibleViewMessages.length; ++i)
368 this._visibleViewMessages[i].onResize(); 385 this._visibleViewMessages[i].onResize();
369 }, 386 },
370 387
371 _hidePromptSuggestBox: function() 388 _hidePromptSuggestBox: function()
372 { 389 {
373 this._prompt.clearAutoComplete(); 390 if (this._prompt)
391 this._prompt.clearAutoComplete();
374 }, 392 },
375 393
376 _scheduleViewportRefresh: function() 394 _scheduleViewportRefresh: function()
377 { 395 {
378 /** 396 /**
379 * @this {WebInspector.ConsoleView} 397 * @this {WebInspector.ConsoleView}
380 * @return {!Promise.<undefined>} 398 * @return {!Promise.<undefined>}
381 */ 399 */
382 function invalidateViewport() 400 function invalidateViewport()
383 { 401 {
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 return new WebInspector.ConsoleViewMessage(message, this._linkifier, nestingLevel); 568 return new WebInspector.ConsoleViewMessage(message, this._linkifier, nestingLevel);
551 } 569 }
552 }, 570 },
553 571
554 _consoleCleared: function() 572 _consoleCleared: function()
555 { 573 {
556 this._currentMatchRangeIndex = -1; 574 this._currentMatchRangeIndex = -1;
557 this._consoleMessages = []; 575 this._consoleMessages = [];
558 this._updateMessageList(); 576 this._updateMessageList();
559 this._hidePromptSuggestBox(); 577 this._hidePromptSuggestBox();
578 this._viewport.setStickToBottom(true);
dgozman 2016/09/12 21:38:57 Nice catch!
560 this._linkifier.reset(); 579 this._linkifier.reset();
561 }, 580 },
562 581
563 _handleContextMenuEvent: function(event) 582 _handleContextMenuEvent: function(event)
564 { 583 {
565 if (event.target.enclosingNodeOrSelfWithNodeName("a")) 584 if (event.target.enclosingNodeOrSelfWithNodeName("a"))
566 return; 585 return;
567 586
568 var contextMenu = new WebInspector.ContextMenu(event); 587 var contextMenu = new WebInspector.ContextMenu(event);
569 if (event.target.isSelfOrDescendant(this._promptElement)) { 588 if (event.target.isSelfOrDescendant(this._promptElement)) {
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 var enabled = /** @type {boolean} */ (event.data); 728 var enabled = /** @type {boolean} */ (event.data);
710 WebInspector.targetManager.targets().forEach(function(target) {target.ne tworkAgent().setMonitoringXHREnabled(enabled);}); 729 WebInspector.targetManager.targets().forEach(function(target) {target.ne tworkAgent().setMonitoringXHREnabled(enabled);});
711 }, 730 },
712 731
713 /** 732 /**
714 * @param {!Event} event 733 * @param {!Event} event
715 */ 734 */
716 _messagesClicked: function(event) 735 _messagesClicked: function(event)
717 { 736 {
718 var targetElement = event.deepElementFromPoint(); 737 var targetElement = event.deepElementFromPoint();
719 if (!this._prompt.isCaretInsidePrompt() && (!targetElement || targetElem ent.isComponentSelectionCollapsed())) 738 if (!targetElement || targetElement.isComponentSelectionCollapsed())
720 this._prompt.moveCaretToEndOfPrompt(); 739 this.focus();
721 var groupMessage = event.target.enclosingNodeOrSelfWithClass("console-gr oup-title"); 740 var groupMessage = event.target.enclosingNodeOrSelfWithClass("console-gr oup-title");
722 if (!groupMessage) 741 if (!groupMessage)
723 return; 742 return;
724 var consoleGroupViewMessage = groupMessage.parentElement.message; 743 var consoleGroupViewMessage = groupMessage.parentElement.message;
725 consoleGroupViewMessage.setCollapsed(!consoleGroupViewMessage.collapsed( )); 744 consoleGroupViewMessage.setCollapsed(!consoleGroupViewMessage.collapsed( ));
726 this._updateMessageList(); 745 this._updateMessageList();
727 }, 746 },
728 747
729 _registerShortcuts: function() 748 _registerShortcuts: function()
730 { 749 {
(...skipping 29 matching lines...) Expand all
760 shortcut.makeDescriptor("P", shortcut.Modifiers.Alt) 779 shortcut.makeDescriptor("P", shortcut.Modifiers.Alt)
761 ]; 780 ];
762 section.addRelatedKeys(keys, WebInspector.UIString("Next/previous co mmand")); 781 section.addRelatedKeys(keys, WebInspector.UIString("Next/previous co mmand"));
763 } 782 }
764 783
765 section.addKey(shortcut.makeDescriptor(shortcut.Keys.Enter), WebInspecto r.UIString("Execute command")); 784 section.addKey(shortcut.makeDescriptor(shortcut.Keys.Enter), WebInspecto r.UIString("Execute command"));
766 }, 785 },
767 786
768 _clearPromptBackwards: function() 787 _clearPromptBackwards: function()
769 { 788 {
770 this._prompt.setText(""); 789 if (this._prompt)
790 this._prompt.setText("");
771 }, 791 },
772 792
793 /**
794 * @param {!KeyboardEvent} event
795 */
773 _promptKeyDown: function(event) 796 _promptKeyDown: function(event)
774 { 797 {
775 if (event.key === "PageUp") { 798 if (event.key === "PageUp") {
776 this._updateStickToBottomOnWheel(); 799 this._updateStickToBottomOnWheel();
777 return; 800 return;
778 } else if (isEnterKey(event)) { 801 } else if (isEnterKey(event)) {
779 this._enterKeyPressed(event); 802 this._enterKeyPressed(event);
780 return; 803 return;
781 } 804 }
782 805
783 var shortcut = WebInspector.KeyboardShortcut.makeKeyFromEvent(event); 806 var shortcut = WebInspector.KeyboardShortcut.makeKeyFromEvent(event);
784 var handler = this._shortcuts[shortcut]; 807 var handler = this._shortcuts[shortcut];
785 if (handler) { 808 if (handler) {
786 handler(); 809 handler();
787 event.preventDefault(); 810 event.preventDefault();
788 } 811 }
789 }, 812 },
790 813
791 _enterKeyPressed: function(event) 814 _enterKeyPressed: function(event)
792 { 815 {
793 if (event.altKey || event.ctrlKey || event.shiftKey) 816 if (!this._prompt || event.altKey || event.ctrlKey || event.shiftKey || !this._prompt.hasFocus())
794 return; 817 return;
795 818
796 event.consume(true); 819 event.consume(true);
797 820
798 this._prompt.clearAutoComplete(); 821 this._prompt.clearAutoComplete();
799 822
800 var str = this._prompt.text(); 823 var str = this._prompt.text();
801 if (!str.length) 824 if (!str.length)
802 return; 825 return;
803 this._appendCommand(str, true); 826 this._appendCommand(str, true);
(...skipping 18 matching lines...) Expand all
822 message.setOriginatingMessage(originatingConsoleMessage); 845 message.setOriginatingMessage(originatingConsoleMessage);
823 result.target().consoleModel.addMessage(message); 846 result.target().consoleModel.addMessage(message);
824 }, 847 },
825 848
826 /** 849 /**
827 * @param {string} text 850 * @param {string} text
828 * @param {boolean} useCommandLineAPI 851 * @param {boolean} useCommandLineAPI
829 */ 852 */
830 _appendCommand: function(text, useCommandLineAPI) 853 _appendCommand: function(text, useCommandLineAPI)
831 { 854 {
832 this._prompt.setText(""); 855 if (this._prompt)
856 this._prompt.setText("");
833 var currentExecutionContext = WebInspector.context.flavor(WebInspector.E xecutionContext); 857 var currentExecutionContext = WebInspector.context.flavor(WebInspector.E xecutionContext);
834 if (currentExecutionContext) { 858 if (currentExecutionContext) {
835 WebInspector.ConsoleModel.evaluateCommandInConsole(currentExecutionC ontext, text, useCommandLineAPI); 859 WebInspector.ConsoleModel.evaluateCommandInConsole(currentExecutionC ontext, text, useCommandLineAPI);
836 if (WebInspector.inspectorView.currentPanel() && WebInspector.inspec torView.currentPanel().name === "console") 860 if (WebInspector.inspectorView.currentPanel() && WebInspector.inspec torView.currentPanel().name === "console")
837 WebInspector.userMetrics.actionTaken(WebInspector.UserMetrics.Ac tion.CommandEvaluatedInConsolePanel); 861 WebInspector.userMetrics.actionTaken(WebInspector.UserMetrics.Ac tion.CommandEvaluatedInConsolePanel);
838 } 862 }
839 }, 863 },
840 864
841 /** 865 /**
842 * @param {!WebInspector.Event} event 866 * @param {!WebInspector.Event} event
843 */ 867 */
844 _commandEvaluated: function(event) 868 _commandEvaluated: function(event)
845 { 869 {
870 if (!this._prompt)
871 return;
846 var data = /** @type {{result: ?WebInspector.RemoteObject, text: string, commandMessage: !WebInspector.ConsoleMessage, exceptionDetails: (!RuntimeAgent. ExceptionDetails|undefined)}} */ (event.data); 872 var data = /** @type {{result: ?WebInspector.RemoteObject, text: string, commandMessage: !WebInspector.ConsoleMessage, exceptionDetails: (!RuntimeAgent. ExceptionDetails|undefined)}} */ (event.data);
847 this._prompt.history().pushHistoryItem(data.text); 873 this._prompt.history().pushHistoryItem(data.text);
848 this._consoleHistorySetting.set(this._prompt.history().historyData().sli ce(-WebInspector.ConsoleView.persistedHistorySize)); 874 this._consoleHistorySetting.set(this._prompt.history().historyData().sli ce(-WebInspector.ConsoleView.persistedHistorySize));
849 this._printResult(data.result, data.commandMessage, data.exceptionDetail s); 875 this._printResult(data.result, data.commandMessage, data.exceptionDetail s);
850 }, 876 },
851 877
852 /** 878 /**
853 * @override 879 * @override
854 * @return {!Array.<!Element>} 880 * @return {!Array.<!Element>}
855 */ 881 */
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after
1415 return true; 1441 return true;
1416 } 1442 }
1417 return false; 1443 return false;
1418 } 1444 }
1419 } 1445 }
1420 1446
1421 /** 1447 /**
1422 * @typedef {{messageIndex: number, matchIndex: number}} 1448 * @typedef {{messageIndex: number, matchIndex: number}}
1423 */ 1449 */
1424 WebInspector.ConsoleView.RegexMatchRange; 1450 WebInspector.ConsoleView.RegexMatchRange;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698