RESOLVED FIXED 57036
Web Inspector: fix call frames positions for formatted scripts.
https://bugs.webkit.org/show_bug.cgi?id=57036
Summary Web Inspector: fix call frames positions for formatted scripts.
Pavel Podivilov
Reported 2011-03-24 10:31:13 PDT
Web Inspector: fix call frames positions for formatted scripts. Introduce PresentationCallFrame class that encapsulates source mapping details from UI components.
Attachments
Patch. (24.16 KB, patch)
2011-03-24 10:31 PDT, Pavel Podivilov
no flags
Rebase. (25.24 KB, patch)
2011-03-28 07:46 PDT, Pavel Podivilov
yurys: review+
Pavel Podivilov
Comment 1 2011-03-24 10:31:54 PDT
Pavel Podivilov
Comment 2 2011-03-28 07:46:44 PDT
Created attachment 87142 [details] Rebase.
Yury Semikhatsky
Comment 3 2011-03-28 08:07:47 PDT
Comment on attachment 86795 [details] Patch. View in context: https://bugs.webkit.org/attachment.cgi?id=86795&action=review > Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:401 > + _wrapCallFrames: function(callFrames) _wrapCallFrames -> _createPresentationCallFrames ? > Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:485 > + callback(WebInspector.RemoteObject.fromPayload(result)); The callback should be called in any case even if there is an error. > Source/WebCore/inspector/front-end/ScriptsPanel.js:352 > + selectedCallFrame.evaluate(code, objectGroup, includeCommandLineAPI, callback); You should report to the caller an error, otherwise the callback will not be invoked in some cases.
Pavel Podivilov
Comment 4 2011-03-29 05:29:00 PDT
Andrey Adaikin
Comment 5 2011-03-31 06:42:05 PDT
View in context: https://bugs.webkit.org/attachment.cgi?id=87142&action=review > Source/WebCore/inspector/front-end/DebuggerModel.js:188 > + this._debuggerPausedDetails.callFrames = callFrames; FYI. I keep seeing callFrames coming as an array of length 0, thus the first call of this callback is fine, but it sets a zero-length array to the this._debuggerPausedDetails.callFrames, which will cause an exception on a subsequent live edit commit. Here is a "pseudo" stack trace: In the DebuggerPresentationModel.js @editScriptSource if (WebInspector.debuggerModel.callFrames) this._debuggerPaused(); This will fire an exception: callFrames[0].sourceLocation(didGetSourceLocation.bind(this)); because callFrames is defined, but of zero length.
Note You need to log in before you can comment on or make changes to this bug.