Title: [135017] trunk/Source/WebKit2
Revision
135017
Author
beid...@apple.com
Date
2012-11-16 16:40:15 -0800 (Fri, 16 Nov 2012)

Log Message

Move resource loader messaging from NetworkConnectionToWebProcess directly to NetworkResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=102570

Reviewed by Alexey Proskuryakov.

This patch adds the ability for WebResourceLoader to message NetworkResourceLoader directly.

This further cements the 1-to-1 relationship between the two classes and makes it easy to add/change
loader related messaging going forward.

Build/infrastructure stuff:
* Platform/CoreIPC/MessageID.h:
* WebKit2.xcodeproj/project.pbxproj:
* DerivedSources.make:

Remove the WillSendRequestHandled message, and forward NetworkResourceLoader messages on to the correct object:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:

Hang on to a master map of identifiers to NetworkResourceLoaders:
* NetworkProcess/NetworkResourceLoadScheduler.cpp:
(WebKit::NetworkResourceLoadScheduler::scheduleResourceLoad):
(WebKit::NetworkResourceLoadScheduler::removeLoadIdentifier):
(WebKit::NetworkResourceLoadScheduler::networkResourceLoaderForIdentifier):
* NetworkProcess/NetworkResourceLoadScheduler.h:

Change the way "willSendRequestHandled" comes in to be a direct message:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::willSendRequest):
(WebKit::NetworkResourceLoader::willSendRequestHandled):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/NetworkResourceLoader.messages.in:

Make WebResourceLoader a MessageSender:
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::connection):
(WebKit::WebResourceLoader::destinationID):
(WebKit::WebResourceLoader::willSendRequest): Use MessageSender abilities to message the NetworkResourceLoader.
* WebProcess/Network/WebResourceLoader.h:

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (135016 => 135017)


--- trunk/Source/WebKit2/ChangeLog	2012-11-17 00:31:28 UTC (rev 135016)
+++ trunk/Source/WebKit2/ChangeLog	2012-11-17 00:40:15 UTC (rev 135017)
@@ -1,3 +1,47 @@
+2012-11-16  Brady Eidson  <beid...@apple.com>
+
+        Move resource loader messaging from NetworkConnectionToWebProcess directly to NetworkResourceLoader
+        https://bugs.webkit.org/show_bug.cgi?id=102570
+
+        Reviewed by Alexey Proskuryakov.
+
+        This patch adds the ability for WebResourceLoader to message NetworkResourceLoader directly.
+
+        This further cements the 1-to-1 relationship between the two classes and makes it easy to add/change
+        loader related messaging going forward.
+
+        Build/infrastructure stuff:
+        * Platform/CoreIPC/MessageID.h:
+        * WebKit2.xcodeproj/project.pbxproj:
+        * DerivedSources.make:
+
+        Remove the WillSendRequestHandled message, and forward NetworkResourceLoader messages on to the correct object:
+        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+        (WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
+        * NetworkProcess/NetworkConnectionToWebProcess.h:
+        * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
+
+        Hang on to a master map of identifiers to NetworkResourceLoaders:
+        * NetworkProcess/NetworkResourceLoadScheduler.cpp:
+        (WebKit::NetworkResourceLoadScheduler::scheduleResourceLoad):
+        (WebKit::NetworkResourceLoadScheduler::removeLoadIdentifier):
+        (WebKit::NetworkResourceLoadScheduler::networkResourceLoaderForIdentifier):
+        * NetworkProcess/NetworkResourceLoadScheduler.h:
+
+        Change the way "willSendRequestHandled" comes in to be a direct message:
+        * NetworkProcess/NetworkResourceLoader.cpp:
+        (WebKit::NetworkResourceLoader::willSendRequest):
+        (WebKit::NetworkResourceLoader::willSendRequestHandled):
+        * NetworkProcess/NetworkResourceLoader.h:
+        * NetworkProcess/NetworkResourceLoader.messages.in:
+
+        Make WebResourceLoader a MessageSender:
+        * WebProcess/Network/WebResourceLoader.cpp:
+        (WebKit::WebResourceLoader::connection):
+        (WebKit::WebResourceLoader::destinationID):
+        (WebKit::WebResourceLoader::willSendRequest): Use MessageSender abilities to message the NetworkResourceLoader.
+        * WebProcess/Network/WebResourceLoader.h:
+
 2012-11-16  Tony Chang  <t...@chromium.org>
 
         Remove ENABLE_CSS_HIERARCHIES since it's no longer in use

Modified: trunk/Source/WebKit2/DerivedSources.make (135016 => 135017)


--- trunk/Source/WebKit2/DerivedSources.make	2012-11-17 00:31:28 UTC (rev 135016)
+++ trunk/Source/WebKit2/DerivedSources.make	2012-11-17 00:40:15 UTC (rev 135017)
@@ -79,6 +79,7 @@
     WebCookieManagerProxy \
     WebConnection \
     NetworkConnectionToWebProcess \
+    NetworkResourceLoader \
     RemoteLayerTreeHost \
     WebContext \
     WebDatabaseManager \

Modified: trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp (135016 => 135017)


--- trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp	2012-11-17 00:31:28 UTC (rev 135016)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp	2012-11-17 00:40:15 UTC (rev 135017)
@@ -76,6 +76,13 @@
         didReceiveNetworkConnectionToWebProcessMessage(connection, messageID, decoder);
         return;
     }
+    
+    if (messageID.is<CoreIPC::MessageClassNetworkResourceLoader>()) {
+        NetworkResourceLoader* loader = NetworkProcess::shared().networkResourceLoadScheduler().networkResourceLoaderForIdentifier(decoder.destinationID());
+        if (loader)
+            loader->didReceiveNetworkResourceLoaderMessage(connection, messageID, decoder);
+        return;
+    }
     ASSERT_NOT_REACHED();
 }
 
@@ -145,11 +152,6 @@
     m_serialLoadingEnabled = enabled;
 }
 
-void NetworkConnectionToWebProcess::willSendRequestHandled(uint64_t requestID, const WebCore::ResourceRequest& newRequest)
-{
-    didReceiveWillSendRequestHandled(requestID, newRequest);
-}
-
 } // namespace WebKit
 
 #endif // ENABLE(NETWORK_PROCESS)

Modified: trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.h (135016 => 135017)


--- trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.h	2012-11-17 00:31:28 UTC (rev 135016)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.h	2012-11-17 00:40:15 UTC (rev 135017)
@@ -82,7 +82,6 @@
     void suspendPendingRequests();
     void resumePendingRequests();
     void setSerialLoadingEnabled(bool);
-    void willSendRequestHandled(uint64_t requestID, const WebCore::ResourceRequest&);
     
     RefPtr<CoreIPC::Connection> m_connection;
     

Modified: trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.messages.in (135016 => 135017)


--- trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.messages.in	2012-11-17 00:31:28 UTC (rev 135016)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.messages.in	2012-11-17 00:40:15 UTC (rev 135017)
@@ -38,8 +38,6 @@
     ResumePendingRequests() -> ()
     
     SetSerialLoadingEnabled(bool enabled) -> ()
-    
-    WillSendRequestHandled(uint64_t requestID, WebCore::ResourceRequest newRequest)
 }
 
 #endif // ENABLE(NETWORK_PROCESS)

Modified: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.cpp (135016 => 135017)


--- trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.cpp	2012-11-17 00:31:28 UTC (rev 135016)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.cpp	2012-11-17 00:40:15 UTC (rev 135017)
@@ -46,6 +46,8 @@
     
     ResourceLoadIdentifier identifier = ++s_currentResourceLoadIdentifier;
     RefPtr<NetworkResourceLoader> loader = NetworkResourceLoader::create(loadParameters, identifier, connection);
+    
+    m_resourceLoaders.add(identifier, loader);
 
     LOG(NetworkScheduling, "(NetworkProcess) NetworkResourceLoadScheduler::scheduleNetworkResourceRequest resource %llu '%s'", identifier, resourceRequest.url().string().utf8().data());
 
@@ -108,10 +110,18 @@
     // In this situation we might not have a HostRecord to clean up.
     if (host)
         host->remove(identifier);
+    
+    m_resourceLoaders.remove(identifier);
 
     scheduleServePendingRequests();
 }
 
+NetworkResourceLoader* NetworkResourceLoadScheduler::networkResourceLoaderForIdentifier(ResourceLoadIdentifier identifier)
+{
+    ASSERT(m_resourceLoaders.get(identifier));
+    return m_resourceLoaders.get(identifier).get();
+}
+
 void NetworkResourceLoadScheduler::receivedRedirect(ResourceLoadIdentifier identifier, const WebCore::KURL& redirectURL)
 {
     ASSERT(isMainThread());

Modified: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.h (135016 => 135017)


--- trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.h	2012-11-17 00:31:28 UTC (rev 135016)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.h	2012-11-17 00:40:15 UTC (rev 135017)
@@ -26,6 +26,7 @@
 #ifndef NetworkResourceLoadScheduler_h
 #define NetworkResourceLoadScheduler_h
 
+#include "NetworkResourceLoader.h"
 #include <WebCore/ResourceLoaderOptions.h>
 #include <WebCore/ResourceRequest.h>
 #include <WebCore/Timer.h>
@@ -63,6 +64,8 @@
     void suspendPendingRequests();
     void resumePendingRequests();
     
+    NetworkResourceLoader* networkResourceLoaderForIdentifier(ResourceLoadIdentifier);
+
 private:
     enum CreateHostPolicy {
         CreateIfNotFound,
@@ -81,6 +84,8 @@
     static void removeScheduledLoadIdentifiers(void* context);
     void removeScheduledLoadIdentifiers();
 
+    HashMap<ResourceLoadIdentifier, RefPtr<NetworkResourceLoader> > m_resourceLoaders;
+
     typedef HashMap<String, HostRecord*, StringHash> HostMap;
     HostMap m_hosts;
 

Modified: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp (135016 => 135017)


--- trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp	2012-11-17 00:31:28 UTC (rev 135016)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp	2012-11-17 00:40:15 UTC (rev 135017)
@@ -191,11 +191,6 @@
     return OSAtomicIncrement64Barrier(&uniqueWillSendRequestID);
 }
 
-void didReceiveWillSendRequestHandled(uint64_t requestID, const ResourceRequest& request)
-{
-    responseMap().didReceiveResponse(requestID, adoptPtr(new ResourceRequest(request)));
-}
-
 void NetworkResourceLoader::willSendRequest(ResourceHandle*, ResourceRequest& request, const ResourceResponse& redirectResponse)
 {
     // We only expect to get the willSendRequest callback from ResourceHandle as the result of a redirect
@@ -211,6 +206,11 @@
     RunLoop::main()->dispatch(WTF::bind(&NetworkResourceLoadScheduler::receivedRedirect, &NetworkProcess::shared().networkResourceLoadScheduler(), m_identifier, request.url()));
 }
 
+void NetworkResourceLoader::willSendRequestHandled(uint64_t requestID, const WebCore::ResourceRequest& newRequest)
+{
+    responseMap().didReceiveResponse(requestID, adoptPtr(new ResourceRequest(newRequest)));
+}
+
 // FIXME (NetworkProcess): Many of the following ResourceHandleClient methods definitely need implementations. A few will not.
 // Once we know what they are they can be removed.
 

Modified: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h (135016 => 135017)


--- trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h	2012-11-17 00:31:28 UTC (rev 135016)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h	2012-11-17 00:40:15 UTC (rev 135017)
@@ -58,6 +58,8 @@
     CoreIPC::Connection* connection() const;
     uint64_t destinationID() const { return identifier(); }
     
+    void didReceiveNetworkResourceLoaderMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&);
+
     void start();
 
     virtual void connectionToWebProcessDidClose(NetworkConnectionToWebProcess*) OVERRIDE;
@@ -108,6 +110,8 @@
 private:
     NetworkResourceLoader(const NetworkResourceLoadParameters&, ResourceLoadIdentifier, NetworkConnectionToWebProcess*);
 
+    void willSendRequestHandled(uint64_t requestID, const WebCore::ResourceRequest&);
+
     void scheduleStopOnMainThread();
     static void performStops(void*);
 
@@ -121,8 +125,6 @@
     RefPtr<NetworkConnectionToWebProcess> m_connection;
 };
 
-void didReceiveWillSendRequestHandled(uint64_t requestID, const WebCore::ResourceRequest&);
-
 } // namespace WebKit
 
 #endif // ENABLE(NETWORK_PROCESS)

Copied: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.messages.in (from rev 135016, trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.messages.in) (0 => 135017)


--- trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.messages.in	                        (rev 0)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.messages.in	2012-11-17 00:40:15 UTC (rev 135017)
@@ -0,0 +1,29 @@
+# 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.
+
+#if ENABLE(NETWORK_PROCESS)
+
+messages -> NetworkResourceLoader {
+    WillSendRequestHandled(uint64_t requestID, WebCore::ResourceRequest newRequest)
+}
+
+#endif // ENABLE(NETWORK_PROCESS)

Modified: trunk/Source/WebKit2/Platform/CoreIPC/MessageID.h (135016 => 135017)


--- trunk/Source/WebKit2/Platform/CoreIPC/MessageID.h	2012-11-17 00:31:28 UTC (rev 135016)
+++ trunk/Source/WebKit2/Platform/CoreIPC/MessageID.h	2012-11-17 00:40:15 UTC (rev 135017)
@@ -115,6 +115,7 @@
 
     // Messages sent by the web process to the network process.
     MessageClassNetworkConnectionToWebProcess,
+    MessageClassNetworkResourceLoader,
 
     // Messages sent by the network process to a web process.
     MessageClassNetworkProcessConnection,

Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (135016 => 135017)


--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj	2012-11-17 00:31:28 UTC (rev 135016)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj	2012-11-17 00:40:15 UTC (rev 135017)
@@ -459,6 +459,8 @@
 		5163199416289A6000E22F00 /* NetworkProcessMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51ACC9341628064800342550 /* NetworkProcessMessageReceiver.cpp */; };
 		5163199516289A6300E22F00 /* NetworkProcessMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 51ACC9351628064800342550 /* NetworkProcessMessages.h */; };
 		516A4A5D120A2CCD00C05B7F /* WebError.h in Headers */ = {isa = PBXBuildFile; fileRef = 516A4A5B120A2CCD00C05B7F /* WebError.h */; };
+		5175944A1657080400DD771D /* NetworkResourceLoaderMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 517594481657080400DD771D /* NetworkResourceLoaderMessageReceiver.cpp */; };
+		5175944B1657080400DD771D /* NetworkResourceLoaderMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 517594491657080400DD771D /* NetworkResourceLoaderMessages.h */; };
 		51795565162876C500FA43B6 /* NetworkProcessMainMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 510CC7DD16138E2900D03ED3 /* NetworkProcessMainMac.mm */; };
 		51795567162876CB00FA43B6 /* NetworkProcessMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51A8A6151627F3F9000D90E9 /* NetworkProcessMac.mm */; };
 		51795568162876CF00FA43B6 /* NetworkProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510CC7DF16138E2900D03ED3 /* NetworkProcess.cpp */; };
@@ -1497,8 +1499,8 @@
 		2984F580164B9BBD004BC0C6 /* CustomProtocolManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CustomProtocolManager.h; path = Network/CustomProtocols/CustomProtocolManager.h; sourceTree = "<group>"; };
 		2984F582164B9BD9004BC0C6 /* CustomProtocolManagerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = CustomProtocolManagerMac.mm; path = Network/CustomProtocols/mac/CustomProtocolManagerMac.mm; sourceTree = "<group>"; };
 		2984F584164B9ED9004BC0C6 /* CustomProtocolManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CustomProtocolManager.messages.in; path = Network/CustomProtocols/CustomProtocolManager.messages.in; sourceTree = "<group>"; };
-		2984F586164BA095004BC0C6 /* CustomProtocolManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CustomProtocolManagerMessageReceiver.cpp; path = CustomProtocolManagerMessageReceiver.cpp; sourceTree = "<group>"; };
-		2984F587164BA095004BC0C6 /* CustomProtocolManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CustomProtocolManagerMessages.h; path = CustomProtocolManagerMessages.h; sourceTree = "<group>"; };
+		2984F586164BA095004BC0C6 /* CustomProtocolManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CustomProtocolManagerMessageReceiver.cpp; sourceTree = "<group>"; };
+		2984F587164BA095004BC0C6 /* CustomProtocolManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomProtocolManagerMessages.h; sourceTree = "<group>"; };
 		29AD3092164B4C5D0072DEA9 /* CustomProtocolManagerProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CustomProtocolManagerProxy.h; path = CustomProtocols/CustomProtocolManagerProxy.h; sourceTree = "<group>"; };
 		29AD3095164B4C930072DEA9 /* CustomProtocolManagerProxyMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = CustomProtocolManagerProxyMac.mm; path = CustomProtocols/mac/CustomProtocolManagerProxyMac.mm; sourceTree = "<group>"; };
 		29AD3097164B4E210072DEA9 /* CustomProtocolManagerProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CustomProtocolManagerProxy.messages.in; path = CustomProtocols/CustomProtocolManagerProxy.messages.in; sourceTree = "<group>"; };
@@ -1695,10 +1697,13 @@
 		513A164B1630A9BF005D7D22 /* NetworkConnectionToWebProcess.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = NetworkConnectionToWebProcess.messages.in; path = NetworkProcess/NetworkConnectionToWebProcess.messages.in; sourceTree = "<group>"; };
 		5153569A1291B1D2000749DC /* WebPageContextMenuClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebPageContextMenuClient.cpp; sourceTree = "<group>"; };
 		5153569B1291B1D2000749DC /* WebPageContextMenuClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPageContextMenuClient.h; sourceTree = "<group>"; };
+		515705521657018C00101A90 /* NetworkResourceLoader.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; name = NetworkResourceLoader.messages.in; path = NetworkProcess/NetworkResourceLoader.messages.in; sourceTree = "<group>"; };
 		51578B821209ECEF00A37C4A /* WebData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebData.h; sourceTree = "<group>"; };
 		5160BFE013381DF900918999 /* Logging.mac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Logging.mac.mm; sourceTree = "<group>"; };
 		516319911628980A00E22F00 /* NetworkProcessProxyMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = NetworkProcessProxyMac.mm; path = mac/NetworkProcessProxyMac.mm; sourceTree = "<group>"; };
 		516A4A5B120A2CCD00C05B7F /* WebError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebError.h; sourceTree = "<group>"; };
+		517594481657080400DD771D /* NetworkResourceLoaderMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkResourceLoaderMessageReceiver.cpp; sourceTree = "<group>"; };
+		517594491657080400DD771D /* NetworkResourceLoaderMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkResourceLoaderMessages.h; sourceTree = "<group>"; };
 		517A33B3130B308C00F80CB5 /* WKApplicationCacheManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKApplicationCacheManager.cpp; sourceTree = "<group>"; };
 		517A33B4130B308C00F80CB5 /* WKApplicationCacheManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKApplicationCacheManager.h; sourceTree = "<group>"; };
 		517CF0E1163A486C00C2950E /* NetworkProcessConnectionMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkProcessConnectionMessageReceiver.cpp; sourceTree = "<group>"; };
@@ -3140,6 +3145,7 @@
 				510CC7E116138E2900D03ED3 /* NetworkProcessMain.h */,
 				51FD18B31651FBAD00DBE1CE /* NetworkResourceLoader.cpp */,
 				51FD18B41651FBAD00DBE1CE /* NetworkResourceLoader.h */,
+				515705521657018C00101A90 /* NetworkResourceLoader.messages.in */,
 				51829DA31637C70C000953D6 /* NetworkResourceLoadScheduler.cpp */,
 				51829DA41637C70C000953D6 /* NetworkResourceLoadScheduler.h */,
 			);
@@ -4262,6 +4268,8 @@
 				51ACC9351628064800342550 /* NetworkProcessMessages.h */,
 				513A163A163088F6005D7D22 /* NetworkProcessProxyMessageReceiver.cpp */,
 				513A163B163088F6005D7D22 /* NetworkProcessProxyMessages.h */,
+				517594481657080400DD771D /* NetworkResourceLoaderMessageReceiver.cpp */,
+				517594491657080400DD771D /* NetworkResourceLoaderMessages.h */,
 				1A2D8437127F65D5001EB962 /* NPObjectMessageReceiverMessageReceiver.cpp */,
 				1A2D8438127F65D5001EB962 /* NPObjectMessageReceiverMessages.h */,
 				1A8EF96C1252AF6B00F7067F /* PluginControllerProxyMessageReceiver.cpp */,
@@ -4991,6 +4999,7 @@
 				2984F581164B9BBD004BC0C6 /* CustomProtocolManager.h in Headers */,
 				2984F589164BA095004BC0C6 /* CustomProtocolManagerMessages.h in Headers */,
 				51F060E01654317F00F3281B /* WebResourceLoaderMessages.h in Headers */,
+				5175944B1657080400DD771D /* NetworkResourceLoaderMessages.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -5944,6 +5953,7 @@
 				2984F583164B9BD9004BC0C6 /* CustomProtocolManagerMac.mm in Sources */,
 				2984F588164BA095004BC0C6 /* CustomProtocolManagerMessageReceiver.cpp in Sources */,
 				51F060E11654318500F3281B /* WebResourceLoaderMessageReceiver.cpp in Sources */,
+				5175944A1657080400DD771D /* NetworkResourceLoaderMessageReceiver.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

Modified: trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp (135016 => 135017)


--- trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp	2012-11-17 00:31:28 UTC (rev 135016)
+++ trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp	2012-11-17 00:40:15 UTC (rev 135017)
@@ -32,6 +32,7 @@
 #include "Logging.h"
 #include "NetworkConnectionToWebProcessMessages.h"
 #include "NetworkProcessConnection.h"
+#include "NetworkResourceLoaderMessages.h"
 #include "WebCoreArgumentCoders.h"
 #include "WebProcess.h"
 #include <WebCore/ResourceLoader.h>
@@ -54,6 +55,16 @@
 {
 }
 
+CoreIPC::Connection* WebResourceLoader::connection() const
+{
+    return WebProcess::shared().networkConnection()->connection();
+}
+
+uint64_t WebResourceLoader::destinationID() const
+{
+    return m_coreLoader->identifier();
+}
+
 void WebResourceLoader::willSendRequest(uint64_t requestID, const ResourceRequest& proposedRequest, const ResourceResponse& redirectResponse)
 {
     LOG(Network, "(WebProcess) WebResourceLoader::willSendRequest to '%s'", proposedRequest.url().string().utf8().data());
@@ -61,7 +72,7 @@
     ResourceRequest newRequest = proposedRequest;
     m_coreLoader->willSendRequest(newRequest, redirectResponse);
 
-    WebProcess::shared().networkConnection()->connection()->send(Messages::NetworkConnectionToWebProcess::WillSendRequestHandled(requestID, newRequest), 0);
+    send(Messages::NetworkResourceLoader::WillSendRequestHandled(requestID, newRequest));
 }
 
 void WebResourceLoader::didReceiveResponse(const WebCore::ResourceResponse& response)

Modified: trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.h (135016 => 135017)


--- trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.h	2012-11-17 00:31:28 UTC (rev 135016)
+++ trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.h	2012-11-17 00:40:15 UTC (rev 135017)
@@ -29,6 +29,7 @@
 #if ENABLE(NETWORK_PROCESS)
 
 #include "Connection.h"
+#include "MessageSender.h"
 #include "ShareableResource.h"
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
@@ -50,12 +51,16 @@
 
 typedef uint64_t ResourceLoadIdentifier;
 
-class WebResourceLoader : public RefCounted<WebResourceLoader> {
+class WebResourceLoader : public RefCounted<WebResourceLoader>, public CoreIPC::MessageSender<WebResourceLoader> {
 public:
     static PassRefPtr<WebResourceLoader> create(PassRefPtr<WebCore::ResourceLoader>);
 
     ~WebResourceLoader();
 
+    // Used by MessageSender.
+    CoreIPC::Connection* connection() const;
+    uint64_t destinationID() const;
+
     void didReceiveWebResourceLoaderMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&);
 
 private:
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to