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

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

Issue 98953004: DevTools: Introduce Debugger.StackTrace structure in protocol.json (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebased Created 7 years 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/core/inspector/InspectorDebuggerAgent.cpp ('k') | Source/devtools/front_end/Script.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) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 this._scripts[scriptId].editSource(newSource, this._didEditScriptSource. bind(this, scriptId, newSource, callback)); 385 this._scripts[scriptId].editSource(newSource, this._didEditScriptSource. bind(this, scriptId, newSource, callback));
386 }, 386 },
387 387
388 /** 388 /**
389 * @param {DebuggerAgent.ScriptId} scriptId 389 * @param {DebuggerAgent.ScriptId} scriptId
390 * @param {string} newSource 390 * @param {string} newSource
391 * @param {function(?Protocol.Error, DebuggerAgent.SetScriptSourceError=)} c allback 391 * @param {function(?Protocol.Error, DebuggerAgent.SetScriptSourceError=)} c allback
392 * @param {?Protocol.Error} error 392 * @param {?Protocol.Error} error
393 * @param {DebuggerAgent.SetScriptSourceError=} errorData 393 * @param {DebuggerAgent.SetScriptSourceError=} errorData
394 * @param {!Array.<DebuggerAgent.CallFrame>=} callFrames 394 * @param {!Array.<DebuggerAgent.CallFrame>=} callFrames
395 * @param {DebuggerAgent.StackTrace=} asyncStackTrace
395 * @param {boolean=} needsStepIn 396 * @param {boolean=} needsStepIn
396 */ 397 */
397 _didEditScriptSource: function(scriptId, newSource, callback, error, errorDa ta, callFrames, needsStepIn) 398 _didEditScriptSource: function(scriptId, newSource, callback, error, errorDa ta, callFrames, asyncStackTrace, needsStepIn)
398 { 399 {
399 callback(error, errorData); 400 callback(error, errorData);
400 if (needsStepIn) 401 if (needsStepIn)
401 this.stepInto(); 402 this.stepInto();
402 else if (!error && callFrames && callFrames.length) 403 else if (!error && callFrames && callFrames.length)
403 this._pausedScript(callFrames, this._debuggerPausedDetails.reason, t his._debuggerPausedDetails.auxData, this._debuggerPausedDetails.breakpointIds); 404 this._pausedScript(callFrames, this._debuggerPausedDetails.reason, t his._debuggerPausedDetails.auxData, this._debuggerPausedDetails.breakpointIds, a syncStackTrace);
404 }, 405 },
405 406
406 /** 407 /**
407 * @return {?Array.<WebInspector.DebuggerModel.CallFrame>} 408 * @return {?Array.<WebInspector.DebuggerModel.CallFrame>}
408 */ 409 */
409 get callFrames() 410 get callFrames()
410 { 411 {
411 return this._debuggerPausedDetails ? this._debuggerPausedDetails.callFra mes : null; 412 return this._debuggerPausedDetails ? this._debuggerPausedDetails.callFra mes : null;
412 }, 413 },
413 414
(...skipping 22 matching lines...) Expand all
436 this.setSelectedCallFrame(null); 437 this.setSelectedCallFrame(null);
437 DebuggerAgent.setOverlayMessage(); 438 DebuggerAgent.setOverlayMessage();
438 } 439 }
439 }, 440 },
440 441
441 /** 442 /**
442 * @param {!Array.<DebuggerAgent.CallFrame>} callFrames 443 * @param {!Array.<DebuggerAgent.CallFrame>} callFrames
443 * @param {string} reason 444 * @param {string} reason
444 * @param {Object|undefined} auxData 445 * @param {Object|undefined} auxData
445 * @param {!Array.<string>} breakpointIds 446 * @param {!Array.<string>} breakpointIds
447 * @param {DebuggerAgent.StackTrace=} asyncStackTrace
446 */ 448 */
447 _pausedScript: function(callFrames, reason, auxData, breakpointIds) 449 _pausedScript: function(callFrames, reason, auxData, breakpointIds, asyncSta ckTrace)
448 { 450 {
449 if (this._pendingStepIntoLocation) { 451 if (this._pendingStepIntoLocation) {
450 var requestedLocation = this._pendingStepIntoLocation; 452 var requestedLocation = this._pendingStepIntoLocation;
451 delete this._pendingStepIntoLocation; 453 delete this._pendingStepIntoLocation;
452 454
453 if (callFrames.length > 0) { 455 if (callFrames.length > 0) {
454 var topLocation = callFrames[0].location; 456 var topLocation = callFrames[0].location;
455 if (topLocation.lineNumber == requestedLocation.lineNumber && to pLocation.columnNumber == requestedLocation.columnNumber && topLocation.scriptId == requestedLocation.scriptId) { 457 if (topLocation.lineNumber == requestedLocation.lineNumber && to pLocation.columnNumber == requestedLocation.columnNumber && topLocation.scriptId == requestedLocation.scriptId) {
456 this.stepInto(); 458 this.stepInto();
457 return; 459 return;
458 } 460 }
459 } 461 }
460 } 462 }
461 463
462 this._setDebuggerPausedDetails(new WebInspector.DebuggerPausedDetails(th is, callFrames, reason, auxData, breakpointIds)); 464 this._setDebuggerPausedDetails(new WebInspector.DebuggerPausedDetails(th is, callFrames, reason, auxData, breakpointIds, asyncStackTrace));
463 }, 465 },
464 466
465 _resumedScript: function() 467 _resumedScript: function()
466 { 468 {
467 this._setDebuggerPausedDetails(null); 469 this._setDebuggerPausedDetails(null);
468 this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.Debugger Resumed); 470 this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.Debugger Resumed);
469 }, 471 },
470 472
471 /** 473 /**
472 * @param {DebuggerAgent.ScriptId} scriptId 474 * @param {DebuggerAgent.ScriptId} scriptId
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 if (!script) 678 if (!script)
677 return null; 679 return null;
678 return script.rawLocationToUILocation(rawLocation.lineNumber, rawLocatio n.columnNumber); 680 return script.rawLocationToUILocation(rawLocation.lineNumber, rawLocatio n.columnNumber);
679 }, 681 },
680 682
681 /** 683 /**
682 * Handles notification from JavaScript VM about updated stack (liveedit or frame restart action). 684 * Handles notification from JavaScript VM about updated stack (liveedit or frame restart action).
683 * @this {WebInspector.DebuggerModel} 685 * @this {WebInspector.DebuggerModel}
684 * @param {!Array.<DebuggerAgent.CallFrame>=} newCallFrames 686 * @param {!Array.<DebuggerAgent.CallFrame>=} newCallFrames
685 * @param {Object=} details 687 * @param {Object=} details
688 * @param {DebuggerAgent.StackTrace=} asyncStackTrace
686 */ 689 */
687 callStackModified: function(newCallFrames, details) 690 callStackModified: function(newCallFrames, details, asyncStackTrace)
688 { 691 {
689 // FIXME: declare this property in protocol and in JavaScript. 692 // FIXME: declare this property in protocol and in JavaScript.
690 if (details && details["stack_update_needs_step_in"]) 693 if (details && details["stack_update_needs_step_in"])
691 this.stepInto(); 694 this.stepInto();
692 else { 695 else if (newCallFrames && newCallFrames.length)
693 if (newCallFrames && newCallFrames.length) 696 this._pausedScript(newCallFrames, this._debuggerPausedDetails.reason , this._debuggerPausedDetails.auxData, this._debuggerPausedDetails.breakpointIds , asyncStackTrace);
694 this._pausedScript(newCallFrames, this._debuggerPausedDetails.re ason, this._debuggerPausedDetails.auxData, this._debuggerPausedDetails.breakpoin tIds);
695
696 }
697 }, 697 },
698 698
699 __proto__: WebInspector.Object.prototype 699 __proto__: WebInspector.Object.prototype
700 } 700 }
701 701
702 WebInspector.DebuggerModel.applySkipStackFrameSettings = function() 702 WebInspector.DebuggerModel.applySkipStackFrameSettings = function()
703 { 703 {
704 if (!WebInspector.experimentsSettings.frameworksDebuggingSupport.isEnabled() ) 704 if (!WebInspector.experimentsSettings.frameworksDebuggingSupport.isEnabled() )
705 return; 705 return;
706 var settings = WebInspector.settings; 706 var settings = WebInspector.settings;
(...skipping 16 matching lines...) Expand all
723 { 723 {
724 this._debuggerModel = debuggerModel; 724 this._debuggerModel = debuggerModel;
725 } 725 }
726 726
727 WebInspector.DebuggerDispatcher.prototype = { 727 WebInspector.DebuggerDispatcher.prototype = {
728 /** 728 /**
729 * @param {!Array.<DebuggerAgent.CallFrame>} callFrames 729 * @param {!Array.<DebuggerAgent.CallFrame>} callFrames
730 * @param {string} reason 730 * @param {string} reason
731 * @param {Object=} auxData 731 * @param {Object=} auxData
732 * @param {!Array.<string>=} breakpointIds 732 * @param {!Array.<string>=} breakpointIds
733 * @param {DebuggerAgent.StackTrace=} asyncStackTrace
733 */ 734 */
734 paused: function(callFrames, reason, auxData, breakpointIds) 735 paused: function(callFrames, reason, auxData, breakpointIds, asyncStackTrace )
735 { 736 {
736 this._debuggerModel._pausedScript(callFrames, reason, auxData, breakpoin tIds || []); 737 this._debuggerModel._pausedScript(callFrames, reason, auxData, breakpoin tIds || [], asyncStackTrace);
737 }, 738 },
738 739
739 resumed: function() 740 resumed: function()
740 { 741 {
741 this._debuggerModel._resumedScript(); 742 this._debuggerModel._resumedScript();
742 }, 743 },
743 744
744 globalObjectCleared: function() 745 globalObjectCleared: function()
745 { 746 {
746 this._debuggerModel._globalObjectCleared(); 747 this._debuggerModel._globalObjectCleared();
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 /** 894 /**
894 * @param {function(?Protocol.Error=)=} callback 895 * @param {function(?Protocol.Error=)=} callback
895 */ 896 */
896 restart: function(callback) 897 restart: function(callback)
897 { 898 {
898 /** 899 /**
899 * @this {WebInspector.DebuggerModel.CallFrame} 900 * @this {WebInspector.DebuggerModel.CallFrame}
900 * @param {?Protocol.Error} error 901 * @param {?Protocol.Error} error
901 * @param {!Array.<DebuggerAgent.CallFrame>=} callFrames 902 * @param {!Array.<DebuggerAgent.CallFrame>=} callFrames
902 * @param {Object=} details 903 * @param {Object=} details
904 * @param {DebuggerAgent.StackTrace=} asyncStackTrace
903 */ 905 */
904 function protocolCallback(error, callFrames, details) 906 function protocolCallback(error, callFrames, details, asyncStackTrace)
905 { 907 {
906 if (!error) 908 if (!error)
907 WebInspector.debuggerModel.callStackModified(callFrames, details ); 909 WebInspector.debuggerModel.callStackModified(callFrames, details , asyncStackTrace);
908 if (callback) 910 if (callback)
909 callback(error); 911 callback(error);
910 } 912 }
911 DebuggerAgent.restartFrame(this._payload.callFrameId, protocolCallback); 913 DebuggerAgent.restartFrame(this._payload.callFrameId, protocolCallback);
912 }, 914 },
913 915
914 /** 916 /**
915 * @param {function(!Array.<DebuggerAgent.Location>)} callback 917 * @param {function(!Array.<DebuggerAgent.Location>)} callback
916 */ 918 */
917 getStepIntoLocations: function(callback) 919 getStepIntoLocations: function(callback)
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 } 954 }
953 } 955 }
954 956
955 /** 957 /**
956 * @constructor 958 * @constructor
957 * @param {WebInspector.DebuggerModel} model 959 * @param {WebInspector.DebuggerModel} model
958 * @param {!Array.<DebuggerAgent.CallFrame>} callFrames 960 * @param {!Array.<DebuggerAgent.CallFrame>} callFrames
959 * @param {string} reason 961 * @param {string} reason
960 * @param {Object|undefined} auxData 962 * @param {Object|undefined} auxData
961 * @param {!Array.<string>} breakpointIds 963 * @param {!Array.<string>} breakpointIds
964 * @param {DebuggerAgent.StackTrace=} asyncStackTrace
962 */ 965 */
963 WebInspector.DebuggerPausedDetails = function(model, callFrames, reason, auxData , breakpointIds) 966 WebInspector.DebuggerPausedDetails = function(model, callFrames, reason, auxData , breakpointIds, asyncStackTrace)
964 { 967 {
965 this.callFrames = []; 968 this.callFrames = [];
966 for (var i = 0; i < callFrames.length; ++i) { 969 for (var i = 0; i < callFrames.length; ++i) {
967 var callFrame = callFrames[i]; 970 var callFrame = callFrames[i];
968 var script = model.scriptForId(callFrame.location.scriptId); 971 var script = model.scriptForId(callFrame.location.scriptId);
969 if (script) 972 if (script)
970 this.callFrames.push(new WebInspector.DebuggerModel.CallFrame(script , callFrame)); 973 this.callFrames.push(new WebInspector.DebuggerModel.CallFrame(script , callFrame));
971 } 974 }
972 this.reason = reason; 975 this.reason = reason;
973 this.auxData = auxData; 976 this.auxData = auxData;
974 this.breakpointIds = breakpointIds; 977 this.breakpointIds = breakpointIds;
978 this.asyncStackTrace = asyncStackTrace;
975 } 979 }
976 980
977 WebInspector.DebuggerPausedDetails.prototype = { 981 WebInspector.DebuggerPausedDetails.prototype = {
978 dispose: function() 982 dispose: function()
979 { 983 {
980 for (var i = 0; i < this.callFrames.length; ++i) { 984 for (var i = 0; i < this.callFrames.length; ++i) {
981 var callFrame = this.callFrames[i]; 985 var callFrame = this.callFrames[i];
982 callFrame.dispose(); 986 callFrame.dispose();
983 } 987 }
984 } 988 }
985 } 989 }
986 990
987 /** 991 /**
988 * @type {?WebInspector.DebuggerModel} 992 * @type {?WebInspector.DebuggerModel}
989 */ 993 */
990 WebInspector.debuggerModel = null; 994 WebInspector.debuggerModel = null;
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorDebuggerAgent.cpp ('k') | Source/devtools/front_end/Script.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698