[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198

sergio at webkit.org sergio at webkit.org
Sun Feb 20 23:41:50 UTC 2011


The following commit has been merged in the webkit-1.3 branch:
commit 360c01f75fe72364ab072b83132cc5b456bdfebc
Author: sergio at webkit.org <sergio at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Jan 24 10:57:08 2011 +0000

    2011-01-24  Sergio Villar Senin  <svillar at igalia.com>
    
            Reviewed by Martin Robinson.
    
            [Gtk] ResourceHandleSoup: do not wait for streams to close to issue didFinishLoading
            https://bugs.webkit.org/show_bug.cgi?id=52885
    
            No new tests as it does not change functionality. We will not wait for
            the the input stream to close to issue didFinishLoading to
            WebCore. We expect a subtle performance improvement with this
            patch when loading complex web pages, as we wouldn't have to wait
            for the stream to close (which involves creating a thread among
            other things).
    
            * platform/network/soup/ResourceHandleSoup.cpp:
            (WebCore::closeCallback):
            (WebCore::readCallback):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76498 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 2141cc1..fbdfe0e 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,21 @@
+2011-01-24  Sergio Villar Senin  <svillar at igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [Gtk] ResourceHandleSoup: do not wait for streams to close to issue didFinishLoading
+        https://bugs.webkit.org/show_bug.cgi?id=52885
+
+        No new tests as it does not change functionality. We will not wait for
+        the the input stream to close to issue didFinishLoading to
+        WebCore. We expect a subtle performance improvement with this
+        patch when loading complex web pages, as we wouldn't have to wait
+        for the stream to close (which involves creating a thread among
+        other things).
+
+        * platform/network/soup/ResourceHandleSoup.cpp:
+        (WebCore::closeCallback):
+        (WebCore::readCallback):
+
 2011-01-21  Pavel Podivilov  <podivilov at chromium.org>
 
         Reviewed by Pavel Feldman.
diff --git a/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp b/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
index a7170fe..4ee9ef6 100644
--- a/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
+++ b/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
@@ -811,18 +811,8 @@ static void closeCallback(GObject* source, GAsyncResult* res, gpointer)
         return;
 
     ResourceHandleInternal* d = handle->getInternal();
-    ResourceHandleClient* client = handle->client();
-
     g_input_stream_close_finish(d->m_inputStream.get(), res, 0);
     cleanupSoupRequestOperation(handle.get());
-
-    // The load may have been cancelled, the client may have been
-    // destroyed already. In such cases calling didFinishLoading is a
-    // bad idea.
-    if (d->m_cancelled || !client)
-        return;
-
-    client->didFinishLoading(handle.get(), 0);
 }
 
 static void readCallback(GObject* source, GAsyncResult* asyncResult, gpointer data)
@@ -854,6 +844,10 @@ static void readCallback(GObject* source, GAsyncResult* asyncResult, gpointer da
     }
 
     if (!bytesRead) {
+        // Finish the load. We do not wait for the stream to
+        // close. Instead we better notify WebCore as soon as possible
+        client->didFinishLoading(handle.get(), 0);
+
         g_input_stream_close_async(d->m_inputStream.get(), G_PRIORITY_DEFAULT,
                                    0, closeCallback, 0);
         return;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list