Add supplementability to the NetworkProcess
authorweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 29 Dec 2012 21:58:13 +0000 (21:58 +0000)
committerweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 29 Dec 2012 21:58:13 +0000 (21:58 +0000)
https://bugs.webkit.org/show_bug.cgi?id=105838

Reviewed by Dan Bernstein.

This patch adds a NetworkProcessSupplement, which is almost identical to
WebProcessSupplement, but has a different initialization override. It also
stops WebProcessSupplement from inheriting from MessageReceiver (and makes
everything that is a WebProcessSupplement also a MessageReceiver) as keeping
that would cause classes that need to be both WebProcessSupplements and
NetworkProcessSupplements inherit from MessageReceiver twice.

* GNUmakefile.list.am:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::downloadsAuthenticationManager):
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/NetworkProcess.h:
(WebKit):
(NetworkProcess):
(WebKit::NetworkProcess::supplement):
(WebKit::NetworkProcess::addSupplement):
* Shared/Network/CustomProtocols/CustomProtocolManager.h:
(CustomProtocolManager):
* Shared/Network/NetworkProcessSupplement.h: Added.
(WebKit):
(NetworkProcessSupplement):
(WebKit::NetworkProcessSupplement::~NetworkProcessSupplement):
(WebKit::NetworkProcessSupplement::initialize):
* Target.pri:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/ApplicationCache/WebApplicationCacheManager.h:
* WebProcess/Authentication/AuthenticationManager.h:
* WebProcess/Cookies/WebCookieManager.h:
* WebProcess/Geolocation/WebGeolocationManager.h:
* WebProcess/KeyValueStorage/WebKeyValueStorageManager.h:
* WebProcess/MediaCache/WebMediaCacheManager.h:
* WebProcess/Notifications/WebNotificationManager.h:
* WebProcess/ResourceCache/WebResourceCacheManager.h:
* WebProcess/WebCoreSupport/WebDatabaseManager.h:
* WebProcess/WebProcessSupplement.h:
* win/WebKit2.vcproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@138569 268f45cc-cd09-0410-ab3c-d52691b4dbfc

22 files changed:
Source/WebKit2/CMakeLists.txt
Source/WebKit2/ChangeLog
Source/WebKit2/GNUmakefile.am
Source/WebKit2/GNUmakefile.list.am
Source/WebKit2/NetworkProcess/NetworkProcess.cpp
Source/WebKit2/NetworkProcess/NetworkProcess.h
Source/WebKit2/Shared/Network/CustomProtocols/CustomProtocolManager.h
Source/WebKit2/Shared/Network/NetworkProcessSupplement.h [new file with mode: 0644]
Source/WebKit2/Target.pri
Source/WebKit2/WebKit2.pri
Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.h
Source/WebKit2/WebProcess/Authentication/AuthenticationManager.h
Source/WebKit2/WebProcess/Cookies/WebCookieManager.h
Source/WebKit2/WebProcess/Geolocation/WebGeolocationManager.h
Source/WebKit2/WebProcess/KeyValueStorage/WebKeyValueStorageManager.h
Source/WebKit2/WebProcess/MediaCache/WebMediaCacheManager.h
Source/WebKit2/WebProcess/Notifications/WebNotificationManager.h
Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.h
Source/WebKit2/WebProcess/WebCoreSupport/WebDatabaseManager.h
Source/WebKit2/WebProcess/WebProcessSupplement.h
Source/WebKit2/win/WebKit2.vcproj

index 95f9acb..3b424c3 100644 (file)
@@ -8,6 +8,7 @@ set(WebKit2_INCLUDE_DIRECTORIES
     "${WEBKIT2_DIR}/Shared/API/c"
     "${WEBKIT2_DIR}/Shared/CoordinatedGraphics"
     "${WEBKIT2_DIR}/Shared/CoreIPCSupport"
+    "${WEBKIT2_DIR}/Shared/Network"
     "${WEBKIT2_DIR}/Shared/Plugins"
     "${WEBKIT2_DIR}/Shared/Plugins/Netscape"
     "${WEBKIT2_DIR}/Shared/Plugins/Netscape/x11"
index 4e7f920..f525a08 100644 (file)
@@ -1,3 +1,48 @@
+2012-12-29  Sam Weinig  <sam@webkit.org>
+
+        Add supplementability to the NetworkProcess
+        https://bugs.webkit.org/show_bug.cgi?id=105838
+
+        Reviewed by Dan Bernstein.
+
+        This patch adds a NetworkProcessSupplement, which is almost identical to
+        WebProcessSupplement, but has a different initialization override. It also
+        stops WebProcessSupplement from inheriting from MessageReceiver (and makes
+        everything that is a WebProcessSupplement also a MessageReceiver) as keeping
+        that would cause classes that need to be both WebProcessSupplements and
+        NetworkProcessSupplements inherit from MessageReceiver twice.
+
+        * GNUmakefile.list.am:
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::NetworkProcess):
+        (WebKit::NetworkProcess::downloadsAuthenticationManager):
+        (WebKit::NetworkProcess::initializeNetworkProcess):
+        * NetworkProcess/NetworkProcess.h:
+        (WebKit):
+        (NetworkProcess):
+        (WebKit::NetworkProcess::supplement):
+        (WebKit::NetworkProcess::addSupplement):
+        * Shared/Network/CustomProtocols/CustomProtocolManager.h:
+        (CustomProtocolManager):
+        * Shared/Network/NetworkProcessSupplement.h: Added.
+        (WebKit):
+        (NetworkProcessSupplement):
+        (WebKit::NetworkProcessSupplement::~NetworkProcessSupplement):
+        (WebKit::NetworkProcessSupplement::initialize):
+        * Target.pri:
+        * WebKit2.xcodeproj/project.pbxproj:
+        * WebProcess/ApplicationCache/WebApplicationCacheManager.h:
+        * WebProcess/Authentication/AuthenticationManager.h:
+        * WebProcess/Cookies/WebCookieManager.h:
+        * WebProcess/Geolocation/WebGeolocationManager.h:
+        * WebProcess/KeyValueStorage/WebKeyValueStorageManager.h:
+        * WebProcess/MediaCache/WebMediaCacheManager.h:
+        * WebProcess/Notifications/WebNotificationManager.h:
+        * WebProcess/ResourceCache/WebResourceCacheManager.h:
+        * WebProcess/WebCoreSupport/WebDatabaseManager.h:
+        * WebProcess/WebProcessSupplement.h:
+        * win/WebKit2.vcproj:
+
 2012-12-28  Ryuan Choi  <ryuan.choi@samsung.com>
 
         [EFL][WK2] MiniBrowser could not be launched on specific machine
index 132d2f2..3a5f7b9 100644 (file)
@@ -51,6 +51,7 @@ libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CPP
        -I$(srcdir)/Source/WebKit2/Shared/API/c/soup \
        -I$(srcdir)/Source/WebKit2/Shared/CoreIPCSupport \
        -I$(srcdir)/Source/WebKit2/Shared/gtk \
+       -I$(srcdir)/Source/WebKit2/Shared/Network \
        -I$(srcdir)/Source/WebKit2/Shared/Plugins \
        -I$(srcdir)/Source/WebKit2/Shared/Plugins/Netscape \
        -I$(srcdir)/Source/WebKit2/Shared/Plugins/Netscape/x11 \
index c3d34e6..d77685f 100644 (file)
@@ -411,6 +411,7 @@ webkit2_sources += \
        Source/WebKit2/Shared/NativeWebKeyboardEvent.h \
        Source/WebKit2/Shared/NativeWebMouseEvent.h \
        Source/WebKit2/Shared/NativeWebWheelEvent.h \
+       Source/WebKit2/Shared/Network/NetworkProcessSupplement.h \
        Source/WebKit2/Shared/OriginAndDatabases.cpp \
        Source/WebKit2/Shared/OriginAndDatabases.h \
        Source/WebKit2/Shared/PlatformPopupMenuData.cpp \
index e1042c7..c26be9d 100644 (file)
@@ -56,10 +56,10 @@ NetworkProcess& NetworkProcess::shared()
 NetworkProcess::NetworkProcess()
     : m_hasSetCacheModel(false)
     , m_cacheModel(CacheModelDocumentViewer)
-    , m_downloadsAuthenticationManager(new AuthenticationManager(this))
-    , m_cookieManager(new WebCookieManager(this))
-    , m_customProtocolManager(new CustomProtocolManager(this))
 {
+    addSupplement<AuthenticationManager>();
+    addSupplement<WebCookieManager>();
+    addSupplement<CustomProtocolManager>();
 }
 
 NetworkProcess::~NetworkProcess()
@@ -136,7 +136,7 @@ CoreIPC::Connection* NetworkProcess::downloadProxyConnection()
 
 AuthenticationManager& NetworkProcess::downloadsAuthenticationManager()
 {
-    return *m_downloadsAuthenticationManager;
+    return *supplement<AuthenticationManager>();
 }
 
 void NetworkProcess::initializeNetworkProcess(const NetworkProcessCreationParameters& parameters)
@@ -157,7 +157,10 @@ void NetworkProcess::initializeNetworkProcess(const NetworkProcessCreationParame
     if (parameters.privateBrowsingEnabled)
         RemoteNetworkingContext::ensurePrivateBrowsingSession();
 
-    m_customProtocolManager->initialize(parameters);
+    NetworkProcessSupplementMap::const_iterator it = m_supplements.begin();
+    NetworkProcessSupplementMap::const_iterator end = m_supplements.end();
+    for (; it != end; ++it)
+        it->value->initialize(parameters);
 }
 
 void NetworkProcess::createNetworkConnectionToWebProcess()
index 3374fc4..7ccf1df 100644 (file)
@@ -42,10 +42,9 @@ namespace WebCore {
 namespace WebKit {
 
 class AuthenticationManager;
-class CustomProtocolManager;
 class NetworkConnectionToWebProcess;
+class NetworkProcessSupplement;
 class PlatformCertificateInfo;
-class WebCookieManager;
 struct NetworkProcessCreationParameters;
 
 class NetworkProcess : public ChildProcess, DownloadManager::Client {
@@ -53,6 +52,18 @@ class NetworkProcess : public ChildProcess, DownloadManager::Client {
 public:
     static NetworkProcess& shared();
 
+    template <typename T>
+    T* supplement()
+    {
+        return static_cast<T*>(m_supplements.get(T::supplementName()));
+    }
+
+    template <typename T>
+    void addSupplement()
+    {
+        m_supplements.add(T::supplementName(), new T(this));
+    }
+
     void initialize(CoreIPC::Connection::Identifier, WebCore::RunLoop*);
 
     void removeNetworkConnectionToWebProcess(NetworkConnectionToWebProcess*);
@@ -111,9 +122,8 @@ private:
     bool m_hasSetCacheModel;
     CacheModel m_cacheModel;
 
-    AuthenticationManager* m_downloadsAuthenticationManager;
-    WebCookieManager* m_cookieManager;
-    CustomProtocolManager* m_customProtocolManager;
+    typedef HashMap<AtomicString, NetworkProcessSupplement*> NetworkProcessSupplementMap;
+    NetworkProcessSupplementMap m_supplements;
 };
 
 } // namespace WebKit
index 4d60b11..d262d82 100644 (file)
@@ -28,6 +28,8 @@
 
 #if ENABLE(CUSTOM_PROTOCOLS)
 
+#include "MessageReceiver.h"
+#include "NetworkProcessSupplement.h"
 #include "WebProcessSupplement.h"
 #include <wtf/HashSet.h>
 #include <wtf/text/WTFString.h>
@@ -53,19 +55,13 @@ namespace WebKit {
 class ChildProcess;
 struct NetworkProcessCreationParameters;
 
-class CustomProtocolManager : public WebProcessSupplement {
+class CustomProtocolManager : public WebProcessSupplement, public NetworkProcessSupplement, public CoreIPC::MessageReceiver {
     WTF_MAKE_NONCOPYABLE(CustomProtocolManager);
 public:
     explicit CustomProtocolManager(ChildProcess*);
 
     static const AtomicString& supplementName();
 
-#if ENABLE(NETWORK_PROCESS)
-    // FIXME: Once NetworkProcessSupplement exists, this should
-    // move to the private section.
-    void initialize(const NetworkProcessCreationParameters&);
-#endif
-
     ChildProcess* childProcess() const { return m_childProcess; }
 
     void registerScheme(const String&);
@@ -81,6 +77,11 @@ private:
     // WebProcessSupplement
     void initialize(const WebProcessCreationParameters&) OVERRIDE;
 
+#if ENABLE(NETWORK_PROCESS)
+    // NetworkProcessSupplement
+    void initialize(const NetworkProcessCreationParameters&) OVERRIDE;
+#endif
+
     // CoreIPC::MessageReceiver
     virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&) OVERRIDE;
     void didReceiveCustomProtocolManagerMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&);
diff --git a/Source/WebKit2/Shared/Network/NetworkProcessSupplement.h b/Source/WebKit2/Shared/Network/NetworkProcessSupplement.h
new file mode 100644 (file)
index 0000000..cbb7669
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef NetworkProcessSupplement_h
+#define NetworkProcessSupplement_h
+
+namespace WebKit {
+
+struct NetworkProcessCreationParameters;
+
+class NetworkProcessSupplement {
+#if ENABLE(NETWORK_PROCESS)
+public:
+    virtual ~NetworkProcessSupplement()
+    {
+    }
+
+    virtual void initialize(const NetworkProcessCreationParameters&)
+    {
+    }
+#endif
+};
+
+} // namespace WebKit
+
+#endif // NetworkProcessSupplement_h
index 32ba89c..648f817 100644 (file)
@@ -90,6 +90,7 @@ HEADERS += \
     Shared/NativeWebKeyboardEvent.h \
     Shared/NativeWebMouseEvent.h \
     Shared/NativeWebWheelEvent.h \
+    Shared/Network/NetworkProcessSupplement.h \
     Shared/OriginAndDatabases.h \
     Shared/PlatformPopupMenuData.h \
     Shared/PrintInfo.h \
index 80cb2fb..0d9185c 100644 (file)
@@ -18,6 +18,7 @@ INCLUDEPATH += \
     $$SOURCE_DIR/Shared/API/c \
     $$SOURCE_DIR/Shared/CoordinatedGraphics \
     $$SOURCE_DIR/Shared/CoreIPCSupport \
+    $$SOURCE_DIR/Shared/Network \
     $$SOURCE_DIR/Shared/Plugins \
     $$SOURCE_DIR/Shared/Plugins/Netscape \
     $$SOURCE_DIR/Shared/qt \
index 787548b..485e376 100644 (file)
                BCF049E611FE20F600F86A58 /* WKBundleFramePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF049E411FE20F600F86A58 /* WKBundleFramePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
                BCF049E711FE20F600F86A58 /* WKBundlePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF049E511FE20F600F86A58 /* WKBundlePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
                BCF18638167D071E00A1A85A /* CacheModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCF18637167D071E00A1A85A /* CacheModel.cpp */; };
+               BCF4DE23168E4BD500C94AFC /* NetworkProcessSupplement.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF4DE22168E4BD500C94AFC /* NetworkProcessSupplement.h */; };
                BCF505E71243047B005955AE /* PlatformCertificateInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF505E51243047B005955AE /* PlatformCertificateInfo.h */; };
                BCF505E81243047B005955AE /* PlatformCertificateInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = BCF505E61243047B005955AE /* PlatformCertificateInfo.mm */; };
                BCF50728124329AA005955AE /* WebCertificateInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF50726124329AA005955AE /* WebCertificateInfo.h */; };
                BCF04C8C11FF9B7D00F86A58 /* APIObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIObject.h; sourceTree = "<group>"; };
                BCF04C8E11FF9F6E00F86A58 /* WebString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebString.h; sourceTree = "<group>"; };
                BCF18637167D071E00A1A85A /* CacheModel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CacheModel.cpp; sourceTree = "<group>"; };
+               BCF4DE22168E4BD500C94AFC /* NetworkProcessSupplement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkProcessSupplement.h; path = Network/NetworkProcessSupplement.h; sourceTree = "<group>"; };
                BCF505E51243047B005955AE /* PlatformCertificateInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformCertificateInfo.h; sourceTree = "<group>"; };
                BCF505E61243047B005955AE /* PlatformCertificateInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PlatformCertificateInfo.mm; sourceTree = "<group>"; };
                BCF5068412431861005955AE /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = "<absolute>"; };
                                2989A40E167D1813004F96D2 /* CustomProtocols */,
                                51A8A6121627F325000D90E9 /* NetworkProcessCreationParameters.cpp */,
                                51A8A60F1627F2BD000D90E9 /* NetworkProcessCreationParameters.h */,
+                               BCF4DE22168E4BD500C94AFC /* NetworkProcessSupplement.h */,
                                51CBBA0D165219B6005BE8FD /* NetworkResourceLoadParameters.cpp */,
                                51CBBA0E165219B6005BE8FD /* NetworkResourceLoadParameters.h */,
                        );
                                2989A414167D184B004F96D2 /* CustomProtocolManager.h in Headers */,
                                31A505FA1680025500A930EB /* WebContextClient.h in Headers */,
                                BCE0E425168B7A280057E66A /* WebProcessSupplement.h in Headers */,
+                               BCF4DE23168E4BD500C94AFC /* NetworkProcessSupplement.h in Headers */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
index 210faa7..3f3299b 100644 (file)
@@ -26,6 +26,7 @@
 #ifndef WebApplicationCacheManager_h
 #define WebApplicationCacheManager_h
 
+#include "MessageReceiver.h"
 #include "WebProcessSupplement.h"
 #include <wtf/Noncopyable.h>
 #include <wtf/text/WTFString.h>
@@ -35,7 +36,7 @@ namespace WebKit {
 class ChildProcess;
 struct SecurityOriginData;
 
-class WebApplicationCacheManager : public WebProcessSupplement {
+class WebApplicationCacheManager : public WebProcessSupplement, public CoreIPC::MessageReceiver {
     WTF_MAKE_NONCOPYABLE(WebApplicationCacheManager);
 public:
     WebApplicationCacheManager(ChildProcess*);
index ec6f26b..90262a9 100644 (file)
@@ -26,6 +26,8 @@
 #ifndef AuthenticationManager_h
 #define AuthenticationManager_h
 
+#include "MessageReceiver.h"
+#include "NetworkProcessSupplement.h"
 #include "WebProcessSupplement.h"
 #include <wtf/Forward.h>
 #include <wtf/HashMap.h>
@@ -42,7 +44,7 @@ class Download;
 class PlatformCertificateInfo;
 class WebFrame;
 
-class AuthenticationManager : public WebProcessSupplement {
+class AuthenticationManager : public WebProcessSupplement, public NetworkProcessSupplement, public CoreIPC::MessageReceiver {
     WTF_MAKE_NONCOPYABLE(AuthenticationManager);
 public:
     explicit AuthenticationManager(ChildProcess*);
index bf85065..4fa6750 100644 (file)
@@ -27,6 +27,8 @@
 #define WebCookieManager_h
 
 #include "HTTPCookieAcceptPolicy.h"
+#include "MessageReceiver.h"
+#include "NetworkProcessSupplement.h"
 #include "WebProcessSupplement.h"
 #include <stdint.h>
 #include <wtf/Forward.h>
@@ -40,7 +42,7 @@ namespace WebKit {
 
 class ChildProcess;
 
-class WebCookieManager : public WebProcessSupplement {
+class WebCookieManager : public WebProcessSupplement, public NetworkProcessSupplement, public CoreIPC::MessageReceiver {
     WTF_MAKE_NONCOPYABLE(WebCookieManager);
 public:
     WebCookieManager(ChildProcess*);
index de29dcc..49e3978 100644 (file)
@@ -26,6 +26,7 @@
 #ifndef WebGeolocationManager_h
 #define WebGeolocationManager_h
 
+#include "MessageReceiver.h"
 #include "WebGeolocationPosition.h"
 #include "WebProcessSupplement.h"
 #include <wtf/Forward.h>
@@ -42,7 +43,7 @@ namespace WebKit {
 class WebProcess;
 class WebPage;
 
-class WebGeolocationManager : public WebProcessSupplement {
+class WebGeolocationManager : public WebProcessSupplement, public CoreIPC::MessageReceiver {
     WTF_MAKE_NONCOPYABLE(WebGeolocationManager);
 public:
     explicit WebGeolocationManager(WebProcess*);
index b478644..2600db4 100644 (file)
@@ -26,6 +26,7 @@
 #ifndef WebKeyValueStorageManager_h
 #define WebKeyValueStorageManager_h
 
+#include "MessageReceiver.h"
 #include "WebProcessSupplement.h"
 #include <WebCore/StorageTrackerClient.h>
 #include <wtf/Noncopyable.h>
@@ -37,7 +38,7 @@ namespace WebKit {
 class WebProcess;
 struct SecurityOriginData;
 
-class WebKeyValueStorageManager : public WebCore::StorageTrackerClient, public WebProcessSupplement {
+class WebKeyValueStorageManager : public WebCore::StorageTrackerClient, public WebProcessSupplement, public CoreIPC::MessageReceiver {
     WTF_MAKE_NONCOPYABLE(WebKeyValueStorageManager);
 public:
     explicit WebKeyValueStorageManager(WebProcess*);
index 12c235e..dd1b40a 100644 (file)
@@ -26,6 +26,7 @@
 #ifndef WebMediaCacheManager_h
 #define WebMediaCacheManager_h
 
+#include "MessageReceiver.h"
 #include "WebProcessSupplement.h"
 #include <stdint.h>
 #include <wtf/Forward.h>
@@ -35,7 +36,7 @@ namespace WebKit {
 
 class WebProcess;
 
-class WebMediaCacheManager : public WebProcessSupplement {
+class WebMediaCacheManager : public WebProcessSupplement, public CoreIPC::MessageReceiver {
     WTF_MAKE_NONCOPYABLE(WebMediaCacheManager);
 public:
     explicit WebMediaCacheManager(WebProcess*);
index 2f757bb..de4aac1 100644 (file)
@@ -26,6 +26,7 @@
 #ifndef WebNotificationManager_h
 #define WebNotificationManager_h
 
+#include "MessageReceiver.h"
 #include "WebProcessSupplement.h"
 #include <WebCore/NotificationClient.h>
 #include <wtf/HashMap.h>
@@ -44,7 +45,7 @@ namespace WebKit {
 class WebPage;
 class WebProcess;
 
-class WebNotificationManager : public WebProcessSupplement {
+class WebNotificationManager : public WebProcessSupplement, public CoreIPC::MessageReceiver {
     WTF_MAKE_NONCOPYABLE(WebNotificationManager);
 public:
     explicit WebNotificationManager(WebProcess*);
index 8a2038d..5879e80 100644 (file)
@@ -26,6 +26,7 @@
 #ifndef WebResourceCacheManager_h
 #define WebResourceCacheManager_h
 
+#include "MessageReceiver.h"
 #include "ResourceCachesToClear.h"
 #include "WebProcessSupplement.h"
 #include <wtf/Noncopyable.h>
@@ -37,7 +38,7 @@ namespace WebKit {
 class WebProcess;
 struct SecurityOriginData;
 
-class WebResourceCacheManager : public WebProcessSupplement {
+class WebResourceCacheManager : public WebProcessSupplement, public CoreIPC::MessageReceiver {
     WTF_MAKE_NONCOPYABLE(WebResourceCacheManager);
 public:
     WebResourceCacheManager(WebProcess*);
index 9bc3f81..8767d81 100644 (file)
@@ -28,6 +28,7 @@
 
 #if ENABLE(SQL_DATABASE)
 
+#include "MessageReceiver.h"
 #include "WebProcessSupplement.h"
 #include <WebCore/DatabaseManagerClient.h>
 #include <stdint.h>
@@ -37,7 +38,7 @@ namespace WebKit {
 
 class WebProcess;
 
-class WebDatabaseManager : public WebCore::DatabaseManagerClient, public WebProcessSupplement {
+class WebDatabaseManager : public WebCore::DatabaseManagerClient, public WebProcessSupplement, public CoreIPC::MessageReceiver {
     WTF_MAKE_NONCOPYABLE(WebDatabaseManager);
 public:
     explicit WebDatabaseManager(WebProcess*);
index b1fe366..e4dd4db 100644 (file)
 #ifndef WebProcessSupplement_h
 #define WebProcessSupplement_h
 
-#include "MessageReceiver.h"
-
 namespace WebKit {
 
 struct WebProcessCreationParameters;
 
-class WebProcessSupplement : public CoreIPC::MessageReceiver {
+class WebProcessSupplement {
 public:
     virtual ~WebProcessSupplement()
     {
index 6308c47..5199bba 100755 (executable)
                                >
                        </File>
                        <File
+                               RelativePath="..\Shared\Network\NetworkProcessSupplement.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\Shared\OriginAndDatabases.cpp"
                                >
                        </File>