Title: [128749] trunk
Revision
128749
Author
[email protected]
Date
2012-09-17 06:27:45 -0700 (Mon, 17 Sep 2012)

Log Message

Web Inspector: XHR replay fixes: should remove replayed xhr from memory cache, should not assert.
https://bugs.webkit.org/show_bug.cgi?id=96904

Reviewed by Yury Semikhatsky.

Source/WebCore:

Replayed request is now removed from meory cache before replaying.
Request body is now set to 0 when it was not present in original request.

Test: http/tests/inspector/network/network-xhr-replay.html

* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::replayXHR):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::sendFromInspector):

LayoutTests:

Re-enabled http/tests/inspector/network/network-xhr-replay.html test.

* http/tests/inspector/network/network-xhr-replay.html: Renamed from LayoutTests/http/tests/inspector/network/network-xhr-replay.html_disabled.

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (128748 => 128749)


--- trunk/LayoutTests/ChangeLog	2012-09-17 12:52:19 UTC (rev 128748)
+++ trunk/LayoutTests/ChangeLog	2012-09-17 13:27:45 UTC (rev 128749)
@@ -1,3 +1,14 @@
+2012-09-17  Vsevolod Vlasov  <[email protected]>
+
+        Web Inspector: XHR replay fixes: should remove replayed xhr from memory cache, should not assert.
+        https://bugs.webkit.org/show_bug.cgi?id=96904
+
+        Reviewed by Yury Semikhatsky.
+
+        Re-enabled http/tests/inspector/network/network-xhr-replay.html test.
+
+        * http/tests/inspector/network/network-xhr-replay.html: Renamed from LayoutTests/http/tests/inspector/network/network-xhr-replay.html_disabled.
+
 2012-09-17  Alejandro Piñeiro  <[email protected]>
 
         AX: Regression (r126369) - toggle buttons no longer return accessible titles

Copied: trunk/LayoutTests/http/tests/inspector/network/network-xhr-replay.html (from rev 128748, trunk/LayoutTests/http/tests/inspector/network/network-xhr-replay.html_disabled) (0 => 128749)


--- trunk/LayoutTests/http/tests/inspector/network/network-xhr-replay.html	                        (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/network-xhr-replay.html	2012-09-17 13:27:45 UTC (rev 128749)
@@ -0,0 +1,109 @@
+<html>
+<head>
+<script src=""
+<script src=""
+<script>
+
+function test()
+{
+    var networkPanel = WebInspector.showPanel("network");
+
+    function lastRequest()
+    {
+        return networkPanel.requests[networkPanel.requests.length - 1];
+    }
+
+    function dumpRequest(request)
+    {
+        InspectorTest.addResult("Dumping request: ");
+        InspectorTest.addResult("    url: " + request.url);
+        if (request.requestFormData)
+            InspectorTest.addResult("    requestFormData: " + request.requestFormData);
+        InspectorTest.addResult("    requestMethod: " + request.requestMethod);
+        InspectorTest.addResult("    test request header value: " + request.requestHeaderValue("headerName"));
+    }
+
+    function assertRequestEqual(request1, request2)
+    {
+        InspectorTest.assertEquals(request1.url, request2.url, "Requests have different url");
+        InspectorTest.assertEquals(request1.requestFormData, request2.requestFormData, "Requests have different requestFormData");
+        InspectorTest.assertEquals(request1.requestMethod, request2.requestMethod, "Requests have different requestMethod");
+        InspectorTest.assertEquals(request1.requestHeadersText, request2.requestHeadersText, "Requests have different requestHeadersText");
+    }
+
+    function testXHRReplay(method, url, async, user, password, headers, withCredentials, payload, callback)
+    {
+        InspectorTest.resetInspectorResourcesData(step1);
+
+        function step1()
+        {
+            InspectorTest.makeXHR(method, url, async, user, password, headers, withCredentials, payload, step2);
+        }
+
+        var originalRequest;
+        function step2()
+        {
+            originalRequest = lastRequest();
+            dumpRequest(originalRequest);
+            NetworkAgent.replayXHR(originalRequest.requestId);
+            InspectorTest.addSniffer(WebInspector.NetworkLogView.prototype, "_appendRequest", step3);
+        }
+
+        function step3()
+        {
+            var replayedRequest = lastRequest();
+            assertRequestEqual(originalRequest, replayedRequest);
+            callback();
+        }
+    }
+
+
+    InspectorTest.runTestSuite([
+        function testGetStaticAsync(next)
+        {
+            testXHRReplay("GET", "resources/empty.html", true, "user", "password", [["headerName", "headerValue"]], false, undefined, next);
+        },
+
+        function testGetStaticSync(next)
+        {
+            testXHRReplay("GET", "resources/empty.html", false, "user", "password", [["headerName", "headerValue"]], false, undefined, next);
+        },
+
+        function testGetCachedAsync(next)
+        {
+            testXHRReplay("GET", "resources/random-cached.php", true, "user", "password", [["headerName", "headerValue"]], false, undefined, next);
+        },
+
+        function testGetCachedSync(next)
+        {
+            testXHRReplay("GET", "resources/random-cached.php", false, "user", "password", [["headerName", "headerValue"]], false, undefined, next);
+        },
+
+        function testGetRandomAsync(next)
+        {
+            testXHRReplay("GET", "resources/random.php", true, "user", "password", [["headerName", "headerValue"]], false, undefined, next);
+        },
+
+        function testGetRandomSync(next)
+        {
+            testXHRReplay("GET", "resources/random.php", false, "user", "password", [["headerName", "headerValue"]], false, undefined, next);
+        },
+
+        function testPostAsync(next)
+        {
+            testXHRReplay("POST", "resources/random.php", true, "user", "password", [["headerName", "headerValue"]], false, "payload", next);
+        },
+
+        function testPostSync(next)
+        {
+            testXHRReplay("POST", "resources/random.php", false, "user", "password", [["headerName", "headerValue"]], false, "payload", next);
+        }
+    ]);
+}
+</script>
+</head>
+<body _onload_="runTest()">
+Tests XHR replaying.
+<a href="" 95187</a>
+</body>
+</html>

Property changes: trunk/LayoutTests/http/tests/inspector/network/network-xhr-replay.html


Added: svn:eol-style

Deleted: trunk/LayoutTests/http/tests/inspector/network/network-xhr-replay.html_disabled (128748 => 128749)


--- trunk/LayoutTests/http/tests/inspector/network/network-xhr-replay.html_disabled	2012-09-17 12:52:19 UTC (rev 128748)
+++ trunk/LayoutTests/http/tests/inspector/network/network-xhr-replay.html_disabled	2012-09-17 13:27:45 UTC (rev 128749)
@@ -1,109 +0,0 @@
-<html>
-<head>
-<script src=""
-<script src=""
-<script>
-
-function test()
-{
-    var networkPanel = WebInspector.showPanel("network");
-
-    function lastRequest()
-    {
-        return networkPanel.requests[networkPanel.requests.length - 1];
-    }
-
-    function dumpRequest(request)
-    {
-        InspectorTest.addResult("Dumping request: ");
-        InspectorTest.addResult("    url: " + request.url);
-        if (request.requestFormData)
-            InspectorTest.addResult("    requestFormData: " + request.requestFormData);
-        InspectorTest.addResult("    requestMethod: " + request.requestMethod);
-        InspectorTest.addResult("    test request header value: " + request.requestHeaderValue("headerName"));
-    }
-
-    function assertRequestEqual(request1, request2)
-    {
-        InspectorTest.assertEquals(request1.url, request2.url, "Requests have different url");
-        InspectorTest.assertEquals(request1.requestFormData, request2.requestFormData, "Requests have different requestFormData");
-        InspectorTest.assertEquals(request1.requestMethod, request2.requestMethod, "Requests have different requestMethod");
-        InspectorTest.assertEquals(request1.requestHeadersText, request2.requestHeadersText, "Requests have different requestHeadersText");
-    }
-
-    function testXHRReplay(method, url, async, user, password, headers, withCredentials, payload, callback)
-    {
-        InspectorTest.resetInspectorResourcesData(step1);
-
-        function step1()
-        {
-            InspectorTest.makeXHR(method, url, async, user, password, headers, withCredentials, payload, step2);
-        }
-
-        var originalRequest;
-        function step2()
-        {
-            originalRequest = lastRequest();
-            dumpRequest(originalRequest);
-            NetworkAgent.replayXHR(originalRequest.requestId);
-            InspectorTest.addSniffer(WebInspector.NetworkLogView.prototype, "_appendRequest", step3);
-        }
-
-        function step3()
-        {
-            var replayedRequest = lastRequest();
-            assertRequestEqual(originalRequest, replayedRequest);
-            callback();
-        }
-    }
-
-
-    InspectorTest.runTestSuite([
-        function testGetStaticAsync(next)
-        {
-            testXHRReplay("GET", "resources/empty.html", true, "user", "password", [["headerName", "headerValue"]], false, undefined, next);
-        },
-
-        function testGetStaticSync(next)
-        {
-            testXHRReplay("GET", "resources/empty.html", false, "user", "password", [["headerName", "headerValue"]], false, undefined, next);
-        },
-
-        function testGetCachedAsync(next)
-        {
-            testXHRReplay("GET", "resources/random-cached.php", true, "user", "password", [["headerName", "headerValue"]], false, undefined, next);
-        },
-
-        function testGetCachedSync(next)
-        {
-            testXHRReplay("GET", "resources/random-cached.php", false, "user", "password", [["headerName", "headerValue"]], false, undefined, next);
-        },
-
-        function testGetRandomAsync(next)
-        {
-            testXHRReplay("GET", "resources/random.php", true, "user", "password", [["headerName", "headerValue"]], false, undefined, next);
-        },
-
-        function testGetRandomSync(next)
-        {
-            testXHRReplay("GET", "resources/random.php", false, "user", "password", [["headerName", "headerValue"]], false, undefined, next);
-        },
-
-        function testPostAsync(next)
-        {
-            testXHRReplay("POST", "resources/random.php", true, "user", "password", [["headerName", "headerValue"]], false, "payload", next);
-        },
-
-        function testPostSync(next)
-        {
-            testXHRReplay("POST", "resources/random.php", false, "user", "password", [["headerName", "headerValue"]], false, "payload", next);
-        }
-    ]);
-}
-</script>
-</head>
-<body _onload_="runTest()">
-Tests XHR replaying.
-<a href="" 95187</a>
-</body>
-</html>

Modified: trunk/Source/WebCore/ChangeLog (128748 => 128749)


--- trunk/Source/WebCore/ChangeLog	2012-09-17 12:52:19 UTC (rev 128748)
+++ trunk/Source/WebCore/ChangeLog	2012-09-17 13:27:45 UTC (rev 128749)
@@ -1,3 +1,20 @@
+2012-09-17  Vsevolod Vlasov  <[email protected]>
+
+        Web Inspector: XHR replay fixes: should remove replayed xhr from memory cache, should not assert.
+        https://bugs.webkit.org/show_bug.cgi?id=96904
+
+        Reviewed by Yury Semikhatsky.
+
+        Replayed request is now removed from meory cache before replaying.
+        Request body is now set to 0 when it was not present in original request.
+
+        Test: http/tests/inspector/network/network-xhr-replay.html
+
+        * inspector/InspectorResourceAgent.cpp:
+        (WebCore::InspectorResourceAgent::replayXHR):
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::XMLHttpRequest::sendFromInspector):
+
 2012-09-17  Alejandro Piñeiro  <[email protected]>
 
         AX: Regression (r126369) - toggle buttons no longer return accessible titles

Modified: trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp (128748 => 128749)


--- trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp	2012-09-17 12:52:19 UTC (rev 128748)
+++ trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp	2012-09-17 13:27:45 UTC (rev 128749)
@@ -617,6 +617,10 @@
     if (!xhrReplayData)
         return;
 
+    CachedResource* cachedResource = memoryCache()->resourceForURL(xhrReplayData->url());
+    if (cachedResource)
+        memoryCache()->remove(cachedResource);
+
     xhr->open(xhrReplayData->method(), xhrReplayData->url(), xhrReplayData->async(), code);
     HTTPHeaderMap::const_iterator end = xhrReplayData->headers().end();
     for (HTTPHeaderMap::const_iterator it = xhrReplayData->headers().begin(); it!= end; ++it)

Modified: trunk/Source/WebCore/xml/XMLHttpRequest.cpp (128748 => 128749)


--- trunk/Source/WebCore/xml/XMLHttpRequest.cpp	2012-09-17 12:52:19 UTC (rev 128748)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.cpp	2012-09-17 13:27:45 UTC (rev 128749)
@@ -684,7 +684,7 @@
 
 void XMLHttpRequest::sendFromInspector(PassRefPtr<FormData> formData, ExceptionCode& ec)
 {
-    m_requestEntityBody = formData ? formData->deepCopy() : FormData::create();
+    m_requestEntityBody = formData ? formData->deepCopy() : 0;
     createRequest(ec);
     m_exceptionCode = ec;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to