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

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

Issue 23692002: DevTools: Dump function location when printing it in console and support inspect() for functions. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fixed test Created 7 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 | Annotate | Revision Log
« no previous file with comments | « Source/devtools/front_end/CPUProfileView.js ('k') | Source/devtools/front_end/ScriptsPanel.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 533 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 } 544 }
545 545
546 var shortcut = WebInspector.KeyboardShortcut.makeKeyFromEvent(event); 546 var shortcut = WebInspector.KeyboardShortcut.makeKeyFromEvent(event);
547 var handler = this._shortcuts[shortcut]; 547 var handler = this._shortcuts[shortcut];
548 if (handler) { 548 if (handler) {
549 handler(); 549 handler();
550 event.preventDefault(); 550 event.preventDefault();
551 } 551 }
552 }, 552 },
553 553
554 /**
555 * @param {string} expression
556 * @param {boolean} showResultOnly
557 */
554 evaluateUsingTextPrompt: function(expression, showResultOnly) 558 evaluateUsingTextPrompt: function(expression, showResultOnly)
555 { 559 {
556 this._appendCommand(expression, this.prompt.text, false, showResultOnly) ; 560 this._appendCommand(expression, this.prompt.text, false, showResultOnly) ;
557 }, 561 },
558 562
559 _enterKeyPressed: function(event) 563 _enterKeyPressed: function(event)
560 { 564 {
561 if (event.altKey || event.ctrlKey || event.shiftKey) 565 if (event.altKey || event.ctrlKey || event.shiftKey)
562 return; 566 return;
563 567
564 event.consume(true); 568 event.consume(true);
565 569
566 this.prompt.clearAutoComplete(true); 570 this.prompt.clearAutoComplete(true);
567 571
568 var str = this.prompt.text; 572 var str = this.prompt.text;
569 if (!str.length) 573 if (!str.length)
570 return; 574 return;
571 this._appendCommand(str, "", true, false); 575 this._appendCommand(str, "", true, false);
572 }, 576 },
573 577
578 /**
579 * @param {WebInspector.RemoteObject} result
580 * @param {boolean} wasThrown
581 * @param {WebInspector.ConsoleCommand} originatingCommand
582 */
574 _printResult: function(result, wasThrown, originatingCommand) 583 _printResult: function(result, wasThrown, originatingCommand)
575 { 584 {
576 if (!result) 585 if (!result)
577 return; 586 return;
578 var message = new WebInspector.ConsoleCommandResult(result, wasThrown, o riginatingCommand, this._linkifier); 587
579 WebInspector.console.addMessage(message); 588 /**
589 * @param {string=} url
590 * @param {number=} lineNumber
591 * @param {number=} columnNumber
592 */
593 function addMessage(url, lineNumber, columnNumber)
594 {
595 var message = new WebInspector.ConsoleCommandResult(result, wasThrow n, originatingCommand, this._linkifier, url, lineNumber, columnNumber);
596 WebInspector.console.addMessage(message);
597 }
598
599 if (result.type !== "function") {
600 addMessage.call(this);
601 return;
602 }
603
604 DebuggerAgent.getFunctionDetails(result.objectId, didGetDetails.bind(thi s));
605
606 /**
607 * @param {?Protocol.Error} error
608 * @param {DebuggerAgent.FunctionDetails} response
609 */
610 function didGetDetails(error, response)
611 {
612 if (error) {
613 console.error(error);
614 addMessage.call(this);
615 return;
616 }
617
618 var url;
619 var lineNumber;
620 var columnNumber;
621 var script = WebInspector.debuggerModel.scriptForId(response.locatio n.scriptId);
622 console.assert(script);
623 if (script.sourceURL) {
624 url = script.sourceURL;
625 lineNumber = response.location.lineNumber + 1;
626 columnNumber = response.location.columnNumber + 1;
627 }
628 addMessage.call(this, url, lineNumber, columnNumber);
629 }
580 }, 630 },
581 631
632 /**
633 * @param {string} text
634 * @param {string} newPromptText
635 * @param {boolean} useCommandLineAPI
636 * @param {boolean} showResultOnly
637 */
582 _appendCommand: function(text, newPromptText, useCommandLineAPI, showResultO nly) 638 _appendCommand: function(text, newPromptText, useCommandLineAPI, showResultO nly)
583 { 639 {
584 if (!showResultOnly) { 640 if (!showResultOnly) {
585 var commandMessage = new WebInspector.ConsoleCommand(text); 641 var commandMessage = new WebInspector.ConsoleCommand(text);
586 WebInspector.console.addMessage(commandMessage); 642 WebInspector.console.addMessage(commandMessage);
587 } 643 }
588 this.prompt.text = newPromptText; 644 this.prompt.text = newPromptText;
589 645
590 function printResult(result, wasThrown) 646 /**
647 * @param {WebInspector.RemoteObject} result
648 * @param {boolean} wasThrown
649 * @param {RuntimeAgent.RemoteObject=} valueResult
650 */
651 function printResult(result, wasThrown, valueResult)
591 { 652 {
592 if (!result) 653 if (!result)
593 return; 654 return;
594 655
595 if (!showResultOnly) { 656 if (!showResultOnly) {
596 this.prompt.pushHistoryItem(text); 657 this.prompt.pushHistoryItem(text);
597 WebInspector.settings.consoleHistory.set(this.prompt.historyData .slice(-30)); 658 WebInspector.settings.consoleHistory.set(this.prompt.historyData .slice(-30));
598 } 659 }
599 660
600 this._printResult(result, wasThrown, commandMessage); 661 this._printResult(result, wasThrown, commandMessage);
601 } 662 }
602 WebInspector.runtimeModel.evaluate(text, "console", useCommandLineAPI, f alse, false, true, printResult.bind(this)); 663 WebInspector.runtimeModel.evaluate(text, "console", useCommandLineAPI, f alse, false, true, printResult.bind(this));
603 664
604 WebInspector.userMetrics.ConsoleEvaluated.record(); 665 WebInspector.userMetrics.ConsoleEvaluated.record();
605 }, 666 },
606 667
607 elementsToRestoreScrollPositionsFor: function() 668 elementsToRestoreScrollPositionsFor: function()
608 { 669 {
609 return [this.messagesElement]; 670 return [this.messagesElement];
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
1009 }, 1070 },
1010 1071
1011 clearHighlight: function() 1072 clearHighlight: function()
1012 { 1073 {
1013 var highlightedMessage = this._formattedCommand; 1074 var highlightedMessage = this._formattedCommand;
1014 delete this._formattedCommand; 1075 delete this._formattedCommand;
1015 this._formatCommand(); 1076 this._formatCommand();
1016 this._element.replaceChild(this._formattedCommand, highlightedMessage); 1077 this._element.replaceChild(this._formattedCommand, highlightedMessage);
1017 }, 1078 },
1018 1079
1080 /**
1081 * @param {RegExp} regexObject
1082 */
1019 highlightSearchResults: function(regexObject) 1083 highlightSearchResults: function(regexObject)
1020 { 1084 {
1021 regexObject.lastIndex = 0; 1085 regexObject.lastIndex = 0;
1022 var match = regexObject.exec(this.text); 1086 var match = regexObject.exec(this.text);
1023 var matchRanges = []; 1087 var matchRanges = [];
1024 while (match) { 1088 while (match) {
1025 matchRanges.push({ offset: match.index, length: match[0].length }); 1089 matchRanges.push({ offset: match.index, length: match[0].length });
1026 match = regexObject.exec(this.text); 1090 match = regexObject.exec(this.text);
1027 } 1091 }
1028 WebInspector.highlightSearchResults(this._formattedCommand, matchRanges) ; 1092 WebInspector.highlightSearchResults(this._formattedCommand, matchRanges) ;
1029 this._element.scrollIntoViewIfNeeded(); 1093 this._element.scrollIntoViewIfNeeded();
1030 }, 1094 },
1031 1095
1096 /**
1097 * @param {RegExp} regexObject
1098 */
1032 matchesRegex: function(regexObject) 1099 matchesRegex: function(regexObject)
1033 { 1100 {
1034 regexObject.lastIndex = 0; 1101 regexObject.lastIndex = 0;
1035 return regexObject.test(this.text); 1102 return regexObject.test(this.text);
1036 }, 1103 },
1037 1104
1038 toMessageElement: function() 1105 toMessageElement: function()
1039 { 1106 {
1040 if (!this._element) { 1107 if (!this._element) {
1041 this._element = document.createElement("div"); 1108 this._element = document.createElement("div");
(...skipping 12 matching lines...) Expand all
1054 this._formattedCommand.className = "console-message-text source-code"; 1121 this._formattedCommand.className = "console-message-text source-code";
1055 this._formattedCommand.textContent = this.text; 1122 this._formattedCommand.textContent = this.text;
1056 }, 1123 },
1057 1124
1058 __proto__: WebInspector.ConsoleMessage.prototype 1125 __proto__: WebInspector.ConsoleMessage.prototype
1059 } 1126 }
1060 1127
1061 /** 1128 /**
1062 * @extends {WebInspector.ConsoleMessageImpl} 1129 * @extends {WebInspector.ConsoleMessageImpl}
1063 * @constructor 1130 * @constructor
1064 * @param {boolean} result 1131 * @param {WebInspector.RemoteObject} result
1065 * @param {boolean} wasThrown 1132 * @param {boolean} wasThrown
1066 * @param {WebInspector.ConsoleCommand} originatingCommand 1133 * @param {WebInspector.ConsoleCommand} originatingCommand
1067 * @param {WebInspector.Linkifier} linkifier 1134 * @param {WebInspector.Linkifier} linkifier
1135 * @param {string=} url
1136 * @param {number=} lineNumber
1137 * @param {number=} columnNumber
1068 */ 1138 */
1069 WebInspector.ConsoleCommandResult = function(result, wasThrown, originatingComma nd, linkifier) 1139 WebInspector.ConsoleCommandResult = function(result, wasThrown, originatingComma nd, linkifier, url, lineNumber, columnNumber)
1070 { 1140 {
1071 var level = (wasThrown ? WebInspector.ConsoleMessage.MessageLevel.Error : We bInspector.ConsoleMessage.MessageLevel.Log); 1141 var level = (wasThrown ? WebInspector.ConsoleMessage.MessageLevel.Error : We bInspector.ConsoleMessage.MessageLevel.Log);
1072 this.originatingCommand = originatingCommand; 1142 this.originatingCommand = originatingCommand;
1073 WebInspector.ConsoleMessageImpl.call(this, WebInspector.ConsoleMessage.Messa geSource.JS, level, "", linkifier, WebInspector.ConsoleMessage.MessageType.Resul t, undefined, undefined, undefined, undefined, [result]); 1143 WebInspector.ConsoleMessageImpl.call(this, WebInspector.ConsoleMessage.Messa geSource.JS, level, "", linkifier, WebInspector.ConsoleMessage.MessageType.Resul t, url, lineNumber, columnNumber, undefined, [result]);
1074 } 1144 }
1075 1145
1076 WebInspector.ConsoleCommandResult.prototype = { 1146 WebInspector.ConsoleCommandResult.prototype = {
1077 /** 1147 /**
1078 * @override 1148 * @override
1079 * @param {WebInspector.RemoteObject} array 1149 * @param {WebInspector.RemoteObject} array
1080 * @return {boolean} 1150 * @return {boolean}
1081 */ 1151 */
1082 useArrayPreviewInFormatter: function(array) 1152 useArrayPreviewInFormatter: function(array)
1083 { 1153 {
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1161 1231
1162 /** 1232 /**
1163 * @type {?WebInspector.ConsoleView} 1233 * @type {?WebInspector.ConsoleView}
1164 */ 1234 */
1165 WebInspector.consoleView = null; 1235 WebInspector.consoleView = null;
1166 1236
1167 WebInspector.ConsoleMessage.create = function(source, level, message, type, url, line, column, repeatCount, parameters, stackTrace, requestId, isOutdated) 1237 WebInspector.ConsoleMessage.create = function(source, level, message, type, url, line, column, repeatCount, parameters, stackTrace, requestId, isOutdated)
1168 { 1238 {
1169 return new WebInspector.ConsoleMessageImpl(source, level, message, WebInspec tor.consoleView._linkifier, type, url, line, column, repeatCount, parameters, st ackTrace, requestId, isOutdated); 1239 return new WebInspector.ConsoleMessageImpl(source, level, message, WebInspec tor.consoleView._linkifier, type, url, line, column, repeatCount, parameters, st ackTrace, requestId, isOutdated);
1170 } 1240 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/CPUProfileView.js ('k') | Source/devtools/front_end/ScriptsPanel.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698