Title: [168425] trunk/Source/WebCore
Revision
168425
Author
commit-qu...@webkit.org
Date
2014-05-07 07:07:02 -0700 (Wed, 07 May 2014)

Log Message

DocumentLoader::dataReceived assertion failed
https://bugs.webkit.org/show_bug.cgi?id=132017

Patch by pe...@outlook.com <pe...@outlook.com> on 2014-05-07
Reviewed by Brent Fulgham.

We need to call didReceiveResponse client method before the didReceiveData client method, otherwise we get a lot of asserts.
This patch also fixes frequent crashes in downloadTimerCallback method on page loading.

* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::calculateWebTimingInformations): Initialize local variables.
(WebCore::headerCallback): Call didReceiveResponse client method here instead of in downloadTimerCallback.
(WebCore::ResourceHandleManager::downloadTimerCallback): Remove call to didReceiveResponse method.
(WebCore::ResourceHandleManager::dispatchSynchronousJob): Removed empty line.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (168424 => 168425)


--- trunk/Source/WebCore/ChangeLog	2014-05-07 13:11:00 UTC (rev 168424)
+++ trunk/Source/WebCore/ChangeLog	2014-05-07 14:07:02 UTC (rev 168425)
@@ -1,3 +1,19 @@
+2014-05-07  pe...@outlook.com  <pe...@outlook.com>
+
+        DocumentLoader::dataReceived assertion failed
+        https://bugs.webkit.org/show_bug.cgi?id=132017
+
+        Reviewed by Brent Fulgham.
+
+        We need to call didReceiveResponse client method before the didReceiveData client method, otherwise we get a lot of asserts.
+        This patch also fixes frequent crashes in downloadTimerCallback method on page loading.
+
+        * platform/network/curl/ResourceHandleManager.cpp:
+        (WebCore::calculateWebTimingInformations): Initialize local variables.
+        (WebCore::headerCallback): Call didReceiveResponse client method here instead of in downloadTimerCallback.
+        (WebCore::ResourceHandleManager::downloadTimerCallback): Remove call to didReceiveResponse method.
+        (WebCore::ResourceHandleManager::dispatchSynchronousJob): Removed empty line.
+
 2014-05-06  Antti Koivisto  <an...@apple.com>
 
         REGRESSION: Animated GIF inside compositing layer never resumes animation when scrolled back into view

Modified: trunk/Source/WebCore/platform/network/curl/ResourceHandleManager.cpp (168424 => 168425)


--- trunk/Source/WebCore/platform/network/curl/ResourceHandleManager.cpp	2014-05-07 13:11:00 UTC (rev 168424)
+++ trunk/Source/WebCore/platform/network/curl/ResourceHandleManager.cpp	2014-05-07 14:07:02 UTC (rev 168425)
@@ -158,11 +158,11 @@
 
 static void calculateWebTimingInformations(ResourceHandleInternal* d)
 {
-    double startTransfertTime;
-    double preTransferTime;
-    double dnslookupTime;
-    double connectTime;
-    double appConnectTime;
+    double startTransfertTime = 0;
+    double preTransferTime = 0;
+    double dnslookupTime = 0;
+    double connectTime = 0;
+    double appConnectTime = 0;
 
     curl_easy_getinfo(d->m_handle, CURLINFO_NAMELOOKUP_TIME, &dnslookupTime);
     curl_easy_getinfo(d->m_handle, CURLINFO_CONNECT_TIME, &connectTime);
@@ -531,9 +531,10 @@
             }
         }
 
-        if (client)
+        if (client) {
+            client->didReceiveResponse(job, d->m_response); 
             CurlCacheManager::getInstance().didReceiveResponse(job, d->m_response);
-
+        }
         d->m_response.setResponseFired(true);
 
     } else {
@@ -668,7 +669,6 @@
 
 
         if (CURLE_OK == msg->data.result) {
-
 #if ENABLE(WEB_TIMING)
             calculateWebTimingInformations(d);
 #endif
@@ -684,7 +684,6 @@
                 d->m_multipartHandle->contentEnded();
 
             if (d->client()) {
-                d->client()->didReceiveResponse(job, d->m_response);
                 d->client()->didFinishLoading(job, 0);
                 CurlCacheManager::getInstance().didFinishLoading(job->firstRequest().url().string());
             }
@@ -919,7 +918,6 @@
             handle->client()->didReceiveResponse(job, handle->m_response);
     }
 
-
 #if ENABLE(WEB_TIMING)
     calculateWebTimingInformations(handle);
 #endif
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to