Changeset 139886 in webkit


Ignore:
Timestamp:
Jan 16, 2013 8:54:49 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

Web Inspector: Show formatted content of JSON request
https://bugs.webkit.org/show_bug.cgi?id=106900

Patch by Sergey Ryazanov <serya@chromium.org> on 2013-01-16
Reviewed by Vsevolod Vlasov.

"Request payload" section showed raw content for POST requests.
This change show it in structured format if it's JSON parsable.
Raw format is also available.

  • inspector/front-end/RequestHeadersView.js:

(WebInspector.RequestHeadersView.prototype._refreshQueryString):
(WebInspector.RequestHeadersView.prototype._refreshFormData):
(WebInspector.RequestHeadersView.prototype.toggleViewSource):
(WebInspector.RequestHeadersView.prototype._refreshParams):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r139885 r139886  
     12013-01-16  Sergey Ryazanov  <serya@chromium.org>
     2
     3        Web Inspector: Show formatted content of JSON request
     4        https://bugs.webkit.org/show_bug.cgi?id=106900
     5
     6        Reviewed by Vsevolod Vlasov.
     7
     8        "Request payload" section showed raw content for POST requests.
     9        This change show it in structured format if it's JSON parsable.
     10        Raw format is also available.
     11
     12        * inspector/front-end/RequestHeadersView.js:
     13        (WebInspector.RequestHeadersView.prototype._refreshQueryString):
     14        (WebInspector.RequestHeadersView.prototype._refreshFormData):
     15        (WebInspector.RequestHeadersView.prototype.toggleViewSource):
     16        (WebInspector.RequestHeadersView.prototype._refreshParams):
     17
    1182013-01-16  Vsevolod Vlasov  <vsevik@chromium.org>
    219
  • trunk/Source/WebCore/inspector/front-end/RequestHeadersView.js

    r139814 r139886  
    140140                try {
    141141                    value = decodeURIComponent(value);
    142                 } catch(e) {
     142                } catch (e) {
    143143                    errorDecoding = true;
    144144                }
     
    203203        } else {
    204204            this._requestPayloadTreeElement.hidden = false;
    205             this._populateTreeElementWithSourceText(this._requestPayloadTreeElement, formData)
     205            try {
     206                var json = JSON.parse(formData);
     207                this._refreshRequestJSONPayload(json, formData, false);
     208            } catch (e) {
     209                this._populateTreeElementWithSourceText(this._requestPayloadTreeElement, formData);
     210            }
    206211        }
    207212    },
     
    240245        }
    241246
    242         var viewSourceToggleTitle = paramsTreeElement._viewSource ? WebInspector.UIString("view parsed") : WebInspector.UIString("view source");
    243         var viewSourceToggleButton = this._createToggleButton(viewSourceToggleTitle);
    244         viewSourceToggleButton.addEventListener("click", toggleViewSource.bind(this));
    245         paramsTreeElement.listItemElement.appendChild(viewSourceToggleButton);
     247        paramsTreeElement.listItemElement.appendChild(this._createViewSourceToggle(paramsTreeElement._viewSource, toggleViewSource.bind(this)));
    246248       
    247249        if (paramsTreeElement._viewSource) {
     
    266268            paramsTreeElement.appendChild(parmTreeElement);
    267269        }
     270    },
     271
     272    /**
     273     * @param {Object} parsedObject
     274     * @param {string} sourceText
     275     * @param {boolean} viewSource
     276     */
     277    _refreshRequestJSONPayload: function(parsedObject, sourceText, viewSource)
     278    {
     279        this._requestPayloadTreeElement.removeChildren();
     280
     281        var listItem = this._requestPayloadTreeElement.listItemElement;
     282        listItem.removeChildren();
     283        listItem.appendChild(document.createTextNode(this._requestPayloadTreeElement.title));
     284
     285        var setViewSource = this._refreshRequestJSONPayload.bind(this, parsedObject, sourceText);
     286
     287        if (viewSource) {
     288            listItem.appendChild(this._createViewSourceToggle(true, setViewSource.bind(this, false)));
     289            this._populateTreeElementWithSourceText(this._requestPayloadTreeElement, sourceText);
     290        } else {
     291            listItem.appendChild(this._createViewSourceToggle(false, setViewSource.bind(this, true)));
     292            var object = WebInspector.RemoteObject.fromLocalObject(parsedObject);
     293            var section = new WebInspector.ObjectPropertiesSection(object, object.description);
     294            section.expand();
     295            section.editable = false;
     296            listItem.appendChild(section.element);
     297        }
     298    },
     299
     300    /**
     301     * @param {boolean} viewSource
     302     * @param {Function} handler
     303     */
     304    _createViewSourceToggle: function(viewSource, handler)
     305    {
     306        var viewSourceToggleTitle = viewSource ? WebInspector.UIString("view parsed") : WebInspector.UIString("view source");
     307        var viewSourceToggleButton = this._createToggleButton(viewSourceToggleTitle);
     308        viewSourceToggleButton.addEventListener("click", handler);
     309        return viewSourceToggleButton;
    268310    },
    269311
  • trunk/Source/WebCore/inspector/front-end/networkPanel.css

    r131161 r139886  
    147147}
    148148
     149.resource-headers-view .outline-disclosure .parent .section * {
     150    font-weight: normal;
     151}
     152
    149153.resource-headers-view .outline-disclosure .children li {
    150154    white-space: nowrap;
Note: See TracChangeset for help on using the changeset viewer.