[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da

jocelyn.turcotte at nokia.com jocelyn.turcotte at nokia.com
Wed Dec 22 18:21:16 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 36e9e69c92fd31f38f30ddac2392230b592997e2
Author: jocelyn.turcotte at nokia.com <jocelyn.turcotte at nokia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Dec 10 03:36:23 2010 +0000

    2010-12-09  Jocelyn Turcotte  <jocelyn.turcotte at nokia.com>
    
            Reviewed by Kenneth Rohde Christiansen.
    
            [Qt][WK2] Use a single QNetworkAccessManager per web process.
            https://bugs.webkit.org/show_bug.cgi?id=50757
    
            This allows a better management of network resources and the use
            of global cookie jar and disk cache across all frames.
    
            * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp:
            (WebCore::WebFrameNetworkingContext::WebFrameNetworkingContext):
            (WebCore::WebFrameNetworkingContext::networkAccessManager):
            * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.h:
            * WebProcess/WebProcess.cpp:
            (WebKit::WebProcess::WebProcess):
            (WebKit::WebProcess::initializeWebProcess):
            (WebKit::WebProcess::shutdownIfPossible):
            * WebProcess/WebProcess.h:
            (WebKit::WebProcess::networkAccessManager):
            * WebProcess/mac/WebProcessMac.mm:
            (WebKit::WebProcess::platformInitializeWebProcess):
            (WebKit::WebProcess::platformShutdown):
            * WebProcess/qt/WebProcessQt.cpp:
            (WebKit::WebProcess::platformInitializeWebProcess):
            (WebKit::WebProcess::platformShutdown):
            * WebProcess/win/WebProcessWin.cpp:
            (WebKit::WebProcess::platformInitializeWebProcess):
            (WebKit::WebProcess::platformShutdown):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73677 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 934a56a..8e35c50 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,33 @@
+2010-12-09  Jocelyn Turcotte  <jocelyn.turcotte at nokia.com>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [Qt][WK2] Use a single QNetworkAccessManager per web process.
+        https://bugs.webkit.org/show_bug.cgi?id=50757
+
+        This allows a better management of network resources and the use
+        of global cookie jar and disk cache across all frames.
+
+        * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp:
+        (WebCore::WebFrameNetworkingContext::WebFrameNetworkingContext):
+        (WebCore::WebFrameNetworkingContext::networkAccessManager):
+        * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.h:
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::WebProcess):
+        (WebKit::WebProcess::initializeWebProcess):
+        (WebKit::WebProcess::shutdownIfPossible):
+        * WebProcess/WebProcess.h:
+        (WebKit::WebProcess::networkAccessManager):
+        * WebProcess/mac/WebProcessMac.mm:
+        (WebKit::WebProcess::platformInitializeWebProcess):
+        (WebKit::WebProcess::platformShutdown):
+        * WebProcess/qt/WebProcessQt.cpp:
+        (WebKit::WebProcess::platformInitializeWebProcess):
+        (WebKit::WebProcess::platformShutdown):
+        * WebProcess/win/WebProcessWin.cpp:
+        (WebKit::WebProcess::platformInitializeWebProcess):
+        (WebKit::WebProcess::platformShutdown):
+
 2010-12-09  Mark Rowe  <mrowe at apple.com>
 
         Fix the 32-bit build.
diff --git a/WebKit2/WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp b/WebKit2/WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp
index 5fd8bbc..55552e1 100644
--- a/WebKit2/WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp
+++ b/WebKit2/WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp
@@ -21,6 +21,7 @@
 
 #include "WebFrameNetworkingContext.h"
 
+#include "WebProcess.h"
 #include <QNetworkAccessManager>
 #include <QObject>
 
@@ -29,7 +30,6 @@ namespace WebCore {
 WebFrameNetworkingContext::WebFrameNetworkingContext(Frame* frame)
     : FrameNetworkingContext(frame)
     , m_originatingObject(0)
-    , m_networkAccessManager(new QNetworkAccessManager)
 {
 }
 
@@ -45,7 +45,7 @@ QObject* WebFrameNetworkingContext::originatingObject() const
 
 QNetworkAccessManager* WebFrameNetworkingContext::networkAccessManager() const
 {
-    return m_networkAccessManager;
+    return WebKit::WebProcess::shared().networkAccessManager();
 }
 
 }
diff --git a/WebKit2/WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.h b/WebKit2/WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.h
index 3e94319..9c87785 100644
--- a/WebKit2/WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.h
+++ b/WebKit2/WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.h
@@ -35,7 +35,6 @@ private:
     virtual QNetworkAccessManager* networkAccessManager() const;
 
     QObject* m_originatingObject;
-    QNetworkAccessManager* m_networkAccessManager;
 };
 
 }
diff --git a/WebKit2/WebProcess/WebProcess.cpp b/WebKit2/WebProcess/WebProcess.cpp
index 5047086..678119e 100644
--- a/WebKit2/WebProcess/WebProcess.cpp
+++ b/WebKit2/WebProcess/WebProcess.cpp
@@ -101,6 +101,9 @@ WebProcess::WebProcess()
 #if USE(ACCELERATED_COMPOSITING) && PLATFORM(MAC)
     , m_compositingRenderServerPort(MACH_PORT_NULL)
 #endif
+#if PLATFORM(QT)
+    , m_networkAccessManager(0)
+#endif
 {
 #if USE(PLATFORM_STRATEGIES)
     // Initialize our platform strategies.
@@ -178,6 +181,8 @@ void WebProcess::initializeWebProcess(const WebProcessCreationParameters& parame
 #if PLATFORM(WIN)
     setShouldPaintNativeControls(parameters.shouldPaintNativeControls);
 #endif
+
+    platformInitializeWebProcess(parameters, arguments);
 }
 
 void WebProcess::setShouldTrackVisitedLinks(bool shouldTrackVisitedLinks)
@@ -463,6 +468,8 @@ void WebProcess::shutdownIfPossible()
     m_connection->invalidate();
     m_connection = nullptr;
 
+    platformShutdown();
+
     m_runLoop->stop();
 }
 
diff --git a/WebKit2/WebProcess/WebProcess.h b/WebKit2/WebProcess/WebProcess.h
index 4cba630..ecc9da0 100644
--- a/WebKit2/WebProcess/WebProcess.h
+++ b/WebKit2/WebProcess/WebProcess.h
@@ -41,6 +41,10 @@
 #include "MachPort.h"
 #endif
 
+#if PLATFORM(QT)
+class QNetworkAccessManager;
+#endif
+
 namespace WebCore {
     class IntSize;
     class PageGroup;
@@ -88,6 +92,10 @@ public:
     WebPageGroupProxy* webPageGroup(const WebPageGroupData&);
     static WebCore::PageGroup* sharedPageGroup();
 
+#if PLATFORM(QT)
+    QNetworkAccessManager* networkAccessManager() { return m_networkAccessManager; }
+#endif
+
     // Will shut down the web process if there are no live pages or downloads.
     void shutdownIfPossible();
 
@@ -97,6 +105,8 @@ private:
     WebProcess();
 
     void initializeWebProcess(const WebProcessCreationParameters&, CoreIPC::ArgumentDecoder*);
+    void platformInitializeWebProcess(const WebProcessCreationParameters&, CoreIPC::ArgumentDecoder*);
+    void platformShutdown();
     void setShouldTrackVisitedLinks(bool);
     void registerURLSchemeAsEmptyDocument(const String&);
     void registerURLSchemeAsSecure(const String&) const;
@@ -148,6 +158,10 @@ private:
     mach_port_t m_compositingRenderServerPort;
 #endif
 
+#if PLATFORM(QT)
+    QNetworkAccessManager* m_networkAccessManager;
+#endif
+
     HashMap<uint64_t, WebFrame*> m_frameMap;
 
     HashSet<String, CaseFoldingHash> m_mimeTypesWithCustomRepresentations;
diff --git a/WebKit2/WebProcess/mac/WebProcessMac.mm b/WebKit2/WebProcess/mac/WebProcessMac.mm
index 8aeccbd..0cabeb2 100644
--- a/WebKit2/WebProcess/mac/WebProcessMac.mm
+++ b/WebKit2/WebProcess/mac/WebProcessMac.mm
@@ -101,4 +101,12 @@ void WebProcess::platformClearResourceCaches()
     [[NSURLCache sharedURLCache] removeAllCachedResponses];
 }
 
+void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters&, CoreIPC::ArgumentDecoder*)
+{
+}
+
+void WebProcess::platformShutdown()
+{
+}
+
 } // namespace WebKit
diff --git a/WebKit2/WebProcess/qt/WebProcessQt.cpp b/WebKit2/WebProcess/qt/WebProcessQt.cpp
index 292eaa2..81fb935 100644
--- a/WebKit2/WebProcess/qt/WebProcessQt.cpp
+++ b/WebKit2/WebProcess/qt/WebProcessQt.cpp
@@ -25,6 +25,9 @@
 
 #include "WebProcess.h"
 
+#include "WebProcessCreationParameters.h"
+#include <QNetworkAccessManager>
+
 namespace WebKit {
 
 void WebProcess::platformSetCacheModel(CacheModel)
@@ -36,4 +39,15 @@ void WebProcess::platformClearResourceCaches()
 {
 }
 
+void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters& parameters, CoreIPC::ArgumentDecoder* arguments)
+{
+    m_networkAccessManager = new QNetworkAccessManager;
+}
+
+void WebProcess::platformShutdown()
+{
+    delete m_networkAccessManager;
+    m_networkAccessManager = 0;
+}
+
 } // namespace WebKit
diff --git a/WebKit2/WebProcess/win/WebProcessWin.cpp b/WebKit2/WebProcess/win/WebProcessWin.cpp
index 7c82b0e..e3ac8d4 100644
--- a/WebKit2/WebProcess/win/WebProcessWin.cpp
+++ b/WebKit2/WebProcess/win/WebProcessWin.cpp
@@ -102,4 +102,12 @@ void WebProcess::platformClearResourceCaches()
 #endif
 }
 
+void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters&, CoreIPC::ArgumentDecoder*)
+{
+}
+
+void WebProcess::platformShutdown()
+{
+}
+
 } // namespace WebKit

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list