Title: [89415] trunk/Source/WebCore
Revision
89415
Author
[email protected]
Date
2011-06-22 02:35:35 -0700 (Wed, 22 Jun 2011)

Log Message

2011-06-17  Pavel Podivilov  <[email protected]>

        Reviewed by Yury Semikhatsky.

        Web Inspector: use stack trace to create anchors for console messages.
        https://bugs.webkit.org/show_bug.cgi?id=62856

        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleView.prototype._completions.reportCompletions):
        (WebInspector.ConsoleView.prototype._completions):
        (WebInspector.ConsoleMessage.prototype._formatMessage):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype._updateAnchor):
        * inspector/front-end/Panel.js:
        (WebInspector.Panel.prototype.createAnchor):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.createAnchor):
        (WebInspector.ScriptsPanel.prototype.showAnchorLocation):
        (WebInspector.ScriptsPanel.prototype._updateAnchor):
        * inspector/front-end/inspector.js:
        (WebInspector.linkifyResourceAsNode):
        (WebInspector.linkifyCallFrameAsNode):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (89414 => 89415)


--- trunk/Source/WebCore/ChangeLog	2011-06-22 08:22:33 UTC (rev 89414)
+++ trunk/Source/WebCore/ChangeLog	2011-06-22 09:35:35 UTC (rev 89415)
@@ -1,3 +1,26 @@
+2011-06-17  Pavel Podivilov  <[email protected]>
+
+        Reviewed by Yury Semikhatsky.
+
+        Web Inspector: use stack trace to create anchors for console messages.
+        https://bugs.webkit.org/show_bug.cgi?id=62856
+
+        * inspector/front-end/ConsoleView.js:
+        (WebInspector.ConsoleView.prototype._completions.reportCompletions):
+        (WebInspector.ConsoleView.prototype._completions):
+        (WebInspector.ConsoleMessage.prototype._formatMessage):
+        * inspector/front-end/DebuggerPresentationModel.js:
+        (WebInspector.DebuggerPresentationModel.prototype._updateAnchor):
+        * inspector/front-end/Panel.js:
+        (WebInspector.Panel.prototype.createAnchor):
+        * inspector/front-end/ScriptsPanel.js:
+        (WebInspector.ScriptsPanel.prototype.createAnchor):
+        (WebInspector.ScriptsPanel.prototype.showAnchorLocation):
+        (WebInspector.ScriptsPanel.prototype._updateAnchor):
+        * inspector/front-end/inspector.js:
+        (WebInspector.linkifyResourceAsNode):
+        (WebInspector.linkifyCallFrameAsNode):
+
 2011-06-21  Kent Tamura  <[email protected]>
 
         Reviewed by Dimitri Glazkov.

Modified: trunk/Source/WebCore/inspector/front-end/ConsoleView.js (89414 => 89415)


--- trunk/Source/WebCore/inspector/front-end/ConsoleView.js	2011-06-22 08:22:33 UTC (rev 89414)
+++ trunk/Source/WebCore/inspector/front-end/ConsoleView.js	2011-06-22 09:35:35 UTC (rev 89415)
@@ -398,7 +398,7 @@
                 for (var i = 0; i < commandLineAPI.length; ++i)
                     propertyNames[commandLineAPI[i]] = true;
             }
-            
+
             this._reportCompletions(bestMatchOnly, completionsReadyCallback, dotNotation, bracketNotation, prefix, Object.keys(propertyNames));
         }
     },
@@ -783,7 +783,10 @@
         this._formattedMessage = document.createElement("span");
         this._formattedMessage.className = "console-message-text source-code";
 
-        if (this.url && this.url !== "undefined") {
+        if (this._stackTrace && this._stackTrace.length && this._stackTrace[0].url) {
+            var urlElement = WebInspector.linkifyCallFrameAsNode(this._stackTrace[0], "console-message-url");
+            this._formattedMessage.appendChild(urlElement);
+        } else if (this.url && this.url !== "undefined") {
             var urlElement = WebInspector.linkifyResourceAsNode(this.url, "scripts", this.line, "console-message-url");
             this._formattedMessage.appendChild(urlElement);
         }

Modified: trunk/Source/WebCore/inspector/front-end/DebuggerPresentationModel.js (89414 => 89415)


--- trunk/Source/WebCore/inspector/front-end/DebuggerPresentationModel.js	2011-06-22 08:22:33 UTC (rev 89414)
+++ trunk/Source/WebCore/inspector/front-end/DebuggerPresentationModel.js	2011-06-22 09:35:35 UTC (rev 89415)
@@ -115,11 +115,7 @@
         if (!sourceFile)
             return;
 
-        function didGetUILocation(sourceFileId, lineNumber)
-        {
-            anchor.updateHandler(sourceFile.url, lineNumber);
-        }
-        this.scriptLocationToUILocation(anchor.sourceURL, anchor.sourceId, anchor.lineNumber, anchor.columnNumber, didGetUILocation);
+        this.scriptLocationToUILocation(anchor.sourceURL, anchor.sourceId, anchor.lineNumber, anchor.columnNumber, anchor.updateHandler);
     },
 
     _parsedScriptSource: function(event)

Modified: trunk/Source/WebCore/inspector/front-end/Panel.js (89414 => 89415)


--- trunk/Source/WebCore/inspector/front-end/Panel.js	2011-06-22 08:22:33 UTC (rev 89414)
+++ trunk/Source/WebCore/inspector/front-end/Panel.js	2011-06-22 09:35:35 UTC (rev 89415)
@@ -388,10 +388,11 @@
             visibleView.resize();
     },
 
-    createAnchor: function(url, lineNumber, classes, tooltipText)
+    createAnchor: function(url, lineNumber, columnNumber, classes, tooltipText)
     {
         var linkText = this.formatAnchorText(url, lineNumber);
         var anchor = WebInspector.linkifyURLAsNode(url, linkText, classes, false, tooltipText);
+        anchor.setAttribute("preferred_panel", "resources");
         if (lineNumber !== undefined)
             anchor.setAttribute("line_number", lineNumber);
         return anchor;

Modified: trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js (89414 => 89415)


--- trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js	2011-06-22 08:22:33 UTC (rev 89414)
+++ trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js	2011-06-22 09:35:35 UTC (rev 89415)
@@ -520,16 +520,11 @@
             x.show(this.viewsContainerElement);
     },
 
-    createAnchor: function(url, lineNumber, classes, tooltipText)
+    createAnchor: function(url, lineNumber, columnNumber, classes, tooltipText)
     {
-        var anchor = WebInspector.Panel.prototype.createAnchor.call(this, url, lineNumber, classes, tooltipText);
-        if (lineNumber !== undefined) {
-            function updateAnchor(url, lineNumber)
-            {
-                anchor.textContent = this.formatAnchorText(url, lineNumber)
-            }
-            this._presentationModel.registerAnchor(url, null, lineNumber, 0, updateAnchor.bind(this));
-        }
+        var anchor = WebInspector.Panel.prototype.createAnchor.call(this, url, lineNumber, columnNumber, classes, tooltipText);
+        if (lineNumber !== undefined)
+            this._presentationModel.registerAnchor(url, null, lineNumber, columnNumber, this._updateAnchor.bind(this, anchor));
         return anchor;
     },
 
@@ -540,16 +535,18 @@
 
     showAnchorLocation: function(anchor)
     {
-        var anchorLineNumber = anchor.hasAttribute("line_number") ? parseInt(anchor.getAttribute("line_number")) : 0;
+        this._showSourceLine(anchor.getAttribute("source_file_id"), parseInt(anchor.getAttribute("line_number")));
+    },
 
-        function didGetUILocation(sourceFileId, lineNumber)
-        {
-            if (anchor.hasAttribute("line_number"))
-                this._showSourceLine(sourceFileId, lineNumber);
-            else
-                this._showSourceFrameAndAddToHistory(sourceFileId);
-        }
-        this._presentationModel.scriptLocationToUILocation(anchor.href, null, anchorLineNumber, 0, didGetUILocation.bind(this));
+    _updateAnchor: function(anchor, sourceFileId, lineNumber)
+    {
+        var sourceFile = this._presentationModel.sourceFile(sourceFileId);
+        var url = "" || WebInspector.UIString("(program)");
+        anchor.textContent = this.formatAnchorText(url, lineNumber)
+        // Used for showing anchor location.
+        anchor.setAttribute("preferred_panel", "scripts");
+        anchor.setAttribute("source_file_id", sourceFileId);
+        anchor.setAttribute("line_number", lineNumber);
     },
 
     _showSourceLine: function(sourceFileId, lineNumber)

Modified: trunk/Source/WebCore/inspector/front-end/inspector.js (89414 => 89415)


--- trunk/Source/WebCore/inspector/front-end/inspector.js	2011-06-22 08:22:33 UTC (rev 89414)
+++ trunk/Source/WebCore/inspector/front-end/inspector.js	2011-06-22 09:35:35 UTC (rev 89415)
@@ -1283,11 +1283,16 @@
     preferredPanel = preferredPanel || "scripts";
     // FIXME(62725): stack trace line/column numbers are one-based.
     var lineNumber = oneBasedLineNumber ? oneBasedLineNumber - 1 : undefined;
-    var node = this.panels[preferredPanel].createAnchor(url, lineNumber, classes, tooltipText);
-    node.setAttribute("preferred_panel", preferredPanel);
-    return node;
+    return this.panels[preferredPanel].createAnchor(url, lineNumber, 0, classes, tooltipText);
 }
 
+WebInspector.linkifyCallFrameAsNode = function(callFrame, classes, tooltipText)
+{
+    // FIXME(62725): stack trace line/column numbers are one-based.
+    var columnNumber = callFrame.columnNumber ? callFrame.columnNumber - 1 : 0;
+    return this.panels.scripts.createAnchor(callFrame.url, callFrame.lineNumber - 1, columnNumber, classes, tooltipText);
+}
+
 WebInspector.resourceURLForRelatedNode = function(node, url)
 {
     if (!url || url.indexOf("://") > 0)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to