Changeset 138000 in webkit


Ignore:
Timestamp:
Dec 18, 2012, 2:03:20 AM (13 years ago)
Author:
commit-queue@webkit.org
Message:

Web Inspector: Network: display JavaScript stack in case of script initiator.
https://bugs.webkit.org/show_bug.cgi?id=104899

Patch by Eugene Klyuchnikov <eustas@chromium.org> on 2012-12-18
Reviewed by Vsevolod Vlasov.

Show popup with navigavle stack-trace.

  • inspector/front-end/NetworkPanel.js:

(WebInspector.NetworkLogView.prototype._getPopoverAnchor):
Added new target.
(WebInspector.NetworkLogView.prototype._showPopover):
Added case for new target.
(WebInspector.NetworkLogView.prototype._generateScriptInitiatedPopoverContent):
Generates table with stack trace items.
(WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
Added target marker, removed annoying titles.

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r137999 r138000  
     12012-12-18  Eugene Klyuchnikov  <eustas@chromium.org>
     2
     3        Web Inspector: Network: display JavaScript stack in case of script initiator.
     4        https://bugs.webkit.org/show_bug.cgi?id=104899
     5
     6        Reviewed by Vsevolod Vlasov.
     7
     8        Show popup with navigavle stack-trace.
     9
     10        * inspector/front-end/NetworkPanel.js:
     11        (WebInspector.NetworkLogView.prototype._getPopoverAnchor):
     12        Added new target.
     13        (WebInspector.NetworkLogView.prototype._showPopover):
     14        Added case for new target.
     15        (WebInspector.NetworkLogView.prototype._generateScriptInitiatedPopoverContent):
     16        Generates table with stack trace items.
     17        (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
     18        Added target marker, removed annoying titles.
     19
    1202012-12-18  Tamas Czene  <tczene@inf.u-szeged.hu>
    221
  • trunk/Source/WebCore/inspector/front-end/NetworkPanel.js

    r137136 r138000  
    926926            return;
    927927        var anchor = element.enclosingNodeOrSelfWithClass("network-graph-bar") || element.enclosingNodeOrSelfWithClass("network-graph-label");
    928         if (!anchor)
    929             return null;
    930         var request = anchor.parentElement.request;
    931         return request && request.timing ? anchor : null;
     928        if (anchor && anchor.parentElement.request && anchor.parentElement.request.timing)
     929            return anchor;
     930        anchor = element.enclosingNodeOrSelfWithClass("network-script-initiated");
     931        if (anchor && anchor.request && anchor.request.initiator)
     932            return anchor;
     933
     934        return null;
    932935    },
    933936
     
    938941    _showPopover: function(anchor, popover)
    939942    {
    940         var request = anchor.parentElement.request;
    941         var tableElement = WebInspector.RequestTimingView.createTimingTable(request);
    942         popover.show(tableElement, anchor);
     943        var content;
     944        if (anchor.hasStyleClass("network-script-initiated"))
     945            content = this._generateScriptInitiatedPopoverContent(anchor.request);
     946        else
     947            content = WebInspector.RequestTimingView.createTimingTable(anchor.parentElement.request);
     948        popover.show(content, anchor);
     949    },
     950
     951    /**
     952     * @param {!WebInspector.NetworkRequest} request
     953     * @return {!Element}
     954     */
     955    _generateScriptInitiatedPopoverContent: function(request)
     956    {
     957        var stackTrace = request.initiator.stackTrace;
     958        var framesTable = document.createElement("table");
     959        for (var i = 0; i < stackTrace.length; ++i) {
     960            var stackFrame = stackTrace[i];
     961            var row = document.createElement("tr");
     962            row.createChild("td").textContent = stackFrame.functionName ? stackFrame.functionName : WebInspector.UIString("(anonymous function)");
     963            row.createChild("td").textContent = " @ ";
     964            row.createChild("td").appendChild(this._linkifier.linkifyLocation(stackFrame.url, stackFrame.lineNumber - 1, 0));
     965            framesTable.appendChild(row);
     966        }
     967        return framesTable;
    943968    },
    944969
     
    20112036    _refreshInitiatorCell: function()
    20122037    {
     2038        this._initiatorCell.removeStyleClass("network-dim-cell");
     2039        this._initiatorCell.removeStyleClass("network-script-initiated");
     2040        delete this._initiatorCell.request;
     2041        this._initiatorCell.title = null;
     2042
    20132043        var initiator = this._request.initiator;
    20142044        if ((initiator && initiator.type !== "other") || this._request.redirectSource) {
    2015             this._initiatorCell.removeStyleClass("network-dim-cell");
    20162045            this._initiatorCell.removeChildren();
    20172046            if (this._request.redirectSource) {
     
    20282057                    return;
    20292058                }
    2030                 this._initiatorCell.title = topFrame.url + ":" + topFrame.lineNumber;
    20312059                var urlElement = this._parentView._linkifier.linkifyLocation(topFrame.url, topFrame.lineNumber - 1, 0);
     2060                urlElement.title = null;
    20322061                this._initiatorCell.appendChild(urlElement);
    20332062                this._appendSubtitle(this._initiatorCell, WebInspector.UIString("Script"));
     2063                this._initiatorCell.addStyleClass("network-script-initiated");
     2064                this._initiatorCell.request = this._request;
    20342065            } else { // initiator.type === "parser"
    20352066                this._initiatorCell.title = initiator.url + ":" + initiator.lineNumber;
Note: See TracChangeset for help on using the changeset viewer.