Title: [139886] trunk/Source/WebCore
Revision
139886
Author
[email protected]
Date
2013-01-16 08:54:49 -0800 (Wed, 16 Jan 2013)

Log Message

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

Patch by Sergey Ryazanov <[email protected]> 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):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (139885 => 139886)


--- trunk/Source/WebCore/ChangeLog	2013-01-16 16:48:30 UTC (rev 139885)
+++ trunk/Source/WebCore/ChangeLog	2013-01-16 16:54:49 UTC (rev 139886)
@@ -1,3 +1,20 @@
+2013-01-16  Sergey Ryazanov  <[email protected]>
+
+        Web Inspector: Show formatted content of JSON request
+        https://bugs.webkit.org/show_bug.cgi?id=106900
+
+        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):
+
 2013-01-16  Vsevolod Vlasov  <[email protected]>
 
         Web Inspector: UISourceCode scriptFile / styleFile should be reset on navigation (debugger or css model reset).

Modified: trunk/Source/WebCore/inspector/front-end/RequestHeadersView.js (139885 => 139886)


--- trunk/Source/WebCore/inspector/front-end/RequestHeadersView.js	2013-01-16 16:48:30 UTC (rev 139885)
+++ trunk/Source/WebCore/inspector/front-end/RequestHeadersView.js	2013-01-16 16:54:49 UTC (rev 139886)
@@ -139,7 +139,7 @@
             if (value.indexOf("%") >= 0) {
                 try {
                     value = decodeURIComponent(value);
-                } catch(e) {
+                } catch (e) {
                     errorDecoding = true;
                 }
             }
@@ -202,7 +202,12 @@
             this._refreshParams(WebInspector.UIString("Form Data"), formParameters, formData, this._formDataTreeElement);
         } else {
             this._requestPayloadTreeElement.hidden = false;
-            this._populateTreeElementWithSourceText(this._requestPayloadTreeElement, formData)
+            try {
+                var json = JSON.parse(formData);
+                this._refreshRequestJSONPayload(json, formData, false);
+            } catch (e) {
+                this._populateTreeElementWithSourceText(this._requestPayloadTreeElement, formData);
+            }
         }
     },
 
@@ -239,10 +244,7 @@
             this._refreshParams(title, params, sourceText, paramsTreeElement);
         }
 
-        var viewSourceToggleTitle = paramsTreeElement._viewSource ? WebInspector.UIString("view parsed") : WebInspector.UIString("view source");
-        var viewSourceToggleButton = this._createToggleButton(viewSourceToggleTitle);
-        viewSourceToggleButton.addEventListener("click", toggleViewSource.bind(this));
-        paramsTreeElement.listItemElement.appendChild(viewSourceToggleButton);
+        paramsTreeElement.listItemElement.appendChild(this._createViewSourceToggle(paramsTreeElement._viewSource, toggleViewSource.bind(this)));
         
         if (paramsTreeElement._viewSource) {
             this._populateTreeElementWithSourceText(paramsTreeElement, sourceText);
@@ -267,6 +269,46 @@
         }
     },
 
+    /**
+     * @param {Object} parsedObject
+     * @param {string} sourceText
+     * @param {boolean} viewSource
+     */
+    _refreshRequestJSONPayload: function(parsedObject, sourceText, viewSource)
+    {
+        this._requestPayloadTreeElement.removeChildren();
+
+        var listItem = this._requestPayloadTreeElement.listItemElement;
+        listItem.removeChildren();
+        listItem.appendChild(document.createTextNode(this._requestPayloadTreeElement.title));
+
+        var setViewSource = this._refreshRequestJSONPayload.bind(this, parsedObject, sourceText);
+
+        if (viewSource) {
+            listItem.appendChild(this._createViewSourceToggle(true, setViewSource.bind(this, false)));
+            this._populateTreeElementWithSourceText(this._requestPayloadTreeElement, sourceText);
+        } else {
+            listItem.appendChild(this._createViewSourceToggle(false, setViewSource.bind(this, true)));
+            var object = WebInspector.RemoteObject.fromLocalObject(parsedObject);
+            var section = new WebInspector.ObjectPropertiesSection(object, object.description);
+            section.expand();
+            section.editable = false;
+            listItem.appendChild(section.element);
+        }
+    },
+
+    /**
+     * @param {boolean} viewSource
+     * @param {Function} handler
+     */
+    _createViewSourceToggle: function(viewSource, handler)
+    {
+        var viewSourceToggleTitle = viewSource ? WebInspector.UIString("view parsed") : WebInspector.UIString("view source");
+        var viewSourceToggleButton = this._createToggleButton(viewSourceToggleTitle);
+        viewSourceToggleButton.addEventListener("click", handler);
+        return viewSourceToggleButton;
+    },
+
     _toggleURLDecoding: function(event)
     {
         this._decodeRequestParameters = !this._decodeRequestParameters;

Modified: trunk/Source/WebCore/inspector/front-end/networkPanel.css (139885 => 139886)


--- trunk/Source/WebCore/inspector/front-end/networkPanel.css	2013-01-16 16:48:30 UTC (rev 139885)
+++ trunk/Source/WebCore/inspector/front-end/networkPanel.css	2013-01-16 16:54:49 UTC (rev 139886)
@@ -146,6 +146,10 @@
     font-weight: bold;
 }
 
+.resource-headers-view .outline-disclosure .parent .section * {
+    font-weight: normal;
+}
+
 .resource-headers-view .outline-disclosure .children li {
     white-space: nowrap;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to