Diff
Modified: trunk/Source/WebCore/ChangeLog (204394 => 204395)
--- trunk/Source/WebCore/ChangeLog 2016-08-12 00:33:47 UTC (rev 204394)
+++ trunk/Source/WebCore/ChangeLog 2016-08-12 00:34:22 UTC (rev 204395)
@@ -1,5 +1,32 @@
2016-08-11 Alex Christensen <[email protected]>
+ Don't use a NetworkingContext when creating SocketStreamHandles
+ https://bugs.webkit.org/show_bug.cgi?id=160732
+
+ Reviewed by Brady Eidson.
+
+ No change in behavior. After r204327 a SessionID is all we need to get the NetworkStorageSession,
+ and we pass the SessionID to the SocketStreamHandle constructor, so use that instead.
+ SessionIDs can be serialized and sent over IPC. NetworkingContexts can't.
+
+ * Modules/websockets/WebSocketChannel.cpp:
+ (WebCore::WebSocketChannel::connect):
+ * page/SocketProvider.cpp:
+ (WebCore::SocketProvider::createSocketStreamHandle):
+ * page/SocketProvider.h:
+ * platform/network/cf/SocketStreamHandle.h:
+ (WebCore::SocketStreamHandle::create):
+ * platform/network/cf/SocketStreamHandleCFNet.cpp:
+ (WebCore::SocketStreamHandle::SocketStreamHandle):
+ (WebCore::SocketStreamHandle::getStoredCONNECTProxyCredentials):
+ * platform/network/curl/SocketStreamHandle.h:
+ (WebCore::SocketStreamHandle::create):
+ * platform/network/soup/SocketStreamHandle.h:
+ * platform/network/soup/SocketStreamHandleSoup.cpp:
+ (WebCore::SocketStreamHandle::create):
+
+2016-08-11 Alex Christensen <[email protected]>
+
Use StringBuilder::appendLiteral when possible don't append result of makeString
https://bugs.webkit.org/show_bug.cgi?id=160772
Modified: trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp (204394 => 204395)
--- trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp 2016-08-12 00:33:47 UTC (rev 204394)
+++ trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp 2016-08-12 00:34:22 UTC (rev 204395)
@@ -124,12 +124,10 @@
InspectorInstrumentation::didCreateWebSocket(m_document, m_identifier, url);
if (Frame* frame = m_document->frame()) {
- if (NetworkingContext* networkingContext = frame->loader().networkingContext()) {
- ref();
- Page* page = frame->page();
- SessionID sessionID = page ? page->sessionID() : SessionID::defaultSessionID();
- m_handle = m_socketProvider->createSocketStreamHandle(m_handshake->url(), *this, *networkingContext, sessionID);
- }
+ ref();
+ Page* page = frame->page();
+ SessionID sessionID = page ? page->sessionID() : SessionID::defaultSessionID();
+ m_handle = m_socketProvider->createSocketStreamHandle(m_handshake->url(), *this, sessionID);
}
}
Modified: trunk/Source/WebCore/page/SocketProvider.cpp (204394 => 204395)
--- trunk/Source/WebCore/page/SocketProvider.cpp 2016-08-12 00:33:47 UTC (rev 204394)
+++ trunk/Source/WebCore/page/SocketProvider.cpp 2016-08-12 00:34:22 UTC (rev 204395)
@@ -32,9 +32,9 @@
namespace WebCore {
-Ref<SocketStreamHandle> SocketProvider::createSocketStreamHandle(const URL& url, SocketStreamHandleClient& client, NetworkingContext& context, SessionID sessionID)
+Ref<SocketStreamHandle> SocketProvider::createSocketStreamHandle(const URL& url, SocketStreamHandleClient& client, SessionID sessionID)
{
- return SocketStreamHandle::create(url, client, context, sessionID);
+ return SocketStreamHandle::create(url, client, sessionID);
}
}
Modified: trunk/Source/WebCore/page/SocketProvider.h (204394 => 204395)
--- trunk/Source/WebCore/page/SocketProvider.h 2016-08-12 00:33:47 UTC (rev 204394)
+++ trunk/Source/WebCore/page/SocketProvider.h 2016-08-12 00:34:22 UTC (rev 204395)
@@ -31,7 +31,6 @@
namespace WebCore {
-class NetworkingContext;
class ScriptExecutionContext;
class SocketStreamHandle;
class SocketStreamHandleClient;
@@ -41,7 +40,7 @@
public:
#if ENABLE(WEB_SOCKETS)
static Ref<SocketProvider> create() { return adoptRef(*new SocketProvider); }
- virtual Ref<SocketStreamHandle> createSocketStreamHandle(const URL&, SocketStreamHandleClient&, NetworkingContext&, SessionID);
+ virtual Ref<SocketStreamHandle> createSocketStreamHandle(const URL&, SocketStreamHandleClient&, SessionID);
#endif
virtual ~SocketProvider() { };
};
Modified: trunk/Source/WebCore/platform/network/cf/SocketStreamHandle.h (204394 => 204395)
--- trunk/Source/WebCore/platform/network/cf/SocketStreamHandle.h 2016-08-12 00:33:47 UTC (rev 204394)
+++ trunk/Source/WebCore/platform/network/cf/SocketStreamHandle.h 2016-08-12 00:34:22 UTC (rev 204395)
@@ -40,15 +40,13 @@
namespace WebCore {
-class AuthenticationChallenge;
class Credential;
-class NetworkingContext;
class ProtectionSpace;
class SocketStreamHandleClient;
class SocketStreamHandle : public ThreadSafeRefCounted<SocketStreamHandle>, public SocketStreamHandleBase {
public:
- static Ref<SocketStreamHandle> create(const URL& url, SocketStreamHandleClient& client, NetworkingContext& networkingContext, SessionID sessionID) { return adoptRef(*new SocketStreamHandle(url, client, networkingContext, sessionID)); }
+ static Ref<SocketStreamHandle> create(const URL& url, SocketStreamHandleClient& client, SessionID sessionID) { return adoptRef(*new SocketStreamHandle(url, client, sessionID)); }
virtual ~SocketStreamHandle();
@@ -56,7 +54,7 @@
virtual int platformSend(const char* data, int length);
virtual void platformClose();
- WEBCORE_EXPORT SocketStreamHandle(const URL&, SocketStreamHandleClient&, NetworkingContext&, SessionID);
+ WEBCORE_EXPORT SocketStreamHandle(const URL&, SocketStreamHandleClient&, SessionID);
void createStreams();
void scheduleStreams();
void chooseProxy();
@@ -98,8 +96,7 @@
RetainPtr<CFWriteStreamRef> m_writeStream;
RetainPtr<CFURLRef> m_httpsURL; // ws(s): replaced with https:
-
- Ref<NetworkingContext> m_networkingContext;
+ SessionID m_sessionID;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp (204394 => 204395)
--- trunk/Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp 2016-08-12 00:33:47 UTC (rev 204394)
+++ trunk/Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp 2016-08-12 00:34:22 UTC (rev 204395)
@@ -36,7 +36,6 @@
#include "CredentialStorage.h"
#include "Logging.h"
#include "NetworkStorageSession.h"
-#include "NetworkingContext.h"
#include "ProtectionSpace.h"
#include "Settings.h"
#include "SocketStreamError.h"
@@ -68,12 +67,12 @@
namespace WebCore {
-SocketStreamHandle::SocketStreamHandle(const URL& url, SocketStreamHandleClient& client, NetworkingContext& networkingContext, SessionID sessionID)
+SocketStreamHandle::SocketStreamHandle(const URL& url, SocketStreamHandleClient& client, SessionID sessionID)
: SocketStreamHandleBase(url, client)
, m_connectingSubstate(New)
, m_connectionType(Unknown)
, m_sentStoredCredentials(false)
- , m_networkingContext(networkingContext)
+ , m_sessionID(sessionID)
{
LOG(Network, "SocketStreamHandle %p new client %p", this, &m_client);
@@ -356,9 +355,12 @@
// FIXME (<rdar://problem/10416495>): Proxy credentials should be retrieved from AuthBrokerAgent.
// Try system credential storage first, matching HTTP behavior (CFNetwork only asks the client for password if it couldn't find it in Keychain).
- Credential storedCredential = m_networkingContext->storageSession().credentialStorage().getFromPersistentStorage(protectionSpace);
- if (storedCredential.isEmpty())
- storedCredential = m_networkingContext->storageSession().credentialStorage().get(protectionSpace);
+ Credential storedCredential;
+ if (auto* storageSession = NetworkStorageSession::storageSession(m_sessionID)) {
+ storedCredential = storageSession->credentialStorage().getFromPersistentStorage(protectionSpace);
+ if (storedCredential.isEmpty())
+ storedCredential = storageSession->credentialStorage().get(protectionSpace);
+ }
if (storedCredential.isEmpty())
return false;
Modified: trunk/Source/WebCore/platform/network/curl/SocketStreamHandle.h (204394 => 204395)
--- trunk/Source/WebCore/platform/network/curl/SocketStreamHandle.h 2016-08-12 00:33:47 UTC (rev 204394)
+++ trunk/Source/WebCore/platform/network/curl/SocketStreamHandle.h 2016-08-12 00:34:22 UTC (rev 204395)
@@ -46,12 +46,11 @@
namespace WebCore {
-class NetworkingContext;
class SocketStreamHandleClient;
class SocketStreamHandle : public ThreadSafeRefCounted<SocketStreamHandle>, public SocketStreamHandleBase {
public:
- static Ref<SocketStreamHandle> create(const URL& url, SocketStreamHandleClient& client, NetworkingContext&, SessionID) { return adoptRef(*new SocketStreamHandle(url, client)); }
+ static Ref<SocketStreamHandle> create(const URL& url, SocketStreamHandleClient& client, SessionID) { return adoptRef(*new SocketStreamHandle(url, client)); }
virtual ~SocketStreamHandle();
Modified: trunk/Source/WebCore/platform/network/soup/SocketStreamHandle.h (204394 => 204395)
--- trunk/Source/WebCore/platform/network/soup/SocketStreamHandle.h 2016-08-12 00:33:47 UTC (rev 204394)
+++ trunk/Source/WebCore/platform/network/soup/SocketStreamHandle.h 2016-08-12 00:34:22 UTC (rev 204395)
@@ -30,8 +30,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef SocketStreamHandle_h
-#define SocketStreamHandle_h
+#pragma once
#include "SocketStreamHandleBase.h"
@@ -43,13 +42,12 @@
namespace WebCore {
-class NetworkingContext;
class SocketStreamError;
class SocketStreamHandleClient;
class SocketStreamHandle final : public RefCounted<SocketStreamHandle>, public SocketStreamHandleBase {
public:
- static Ref<SocketStreamHandle> create(const URL&, SocketStreamHandleClient&, NetworkingContext&, SessionID);
+ static Ref<SocketStreamHandle> create(const URL&, SocketStreamHandleClient&, SessionID);
static Ref<SocketStreamHandle> create(GSocketConnection*, SocketStreamHandleClient&);
virtual ~SocketStreamHandle();
@@ -83,5 +81,3 @@
} // namespace WebCore
#endif
-
-#endif // SocketStreamHandle_h
Modified: trunk/Source/WebCore/platform/network/soup/SocketStreamHandleSoup.cpp (204394 => 204395)
--- trunk/Source/WebCore/platform/network/soup/SocketStreamHandleSoup.cpp 2016-08-12 00:33:47 UTC (rev 204394)
+++ trunk/Source/WebCore/platform/network/soup/SocketStreamHandleSoup.cpp 2016-08-12 00:34:22 UTC (rev 204395)
@@ -48,7 +48,7 @@
namespace WebCore {
-Ref<SocketStreamHandle> SocketStreamHandle::create(const URL& url, SocketStreamHandleClient& client, NetworkingContext&, SessionID)
+Ref<SocketStreamHandle> SocketStreamHandle::create(const URL& url, SocketStreamHandleClient& client, SessionID)
{
Ref<SocketStreamHandle> socket = adoptRef(*new SocketStreamHandle(url, client));
Modified: trunk/Source/WebKit2/ChangeLog (204394 => 204395)
--- trunk/Source/WebKit2/ChangeLog 2016-08-12 00:33:47 UTC (rev 204394)
+++ trunk/Source/WebKit2/ChangeLog 2016-08-12 00:34:22 UTC (rev 204395)
@@ -1,5 +1,16 @@
2016-08-11 Alex Christensen <[email protected]>
+ Don't use a NetworkingContext when creating SocketStreamHandles
+ https://bugs.webkit.org/show_bug.cgi?id=160732
+
+ Reviewed by Brady Eidson.
+
+ * WebProcess/Network/WebSocketProvider.cpp:
+ (WebKit::WebSocketProvider::createSocketStreamHandle):
+ * WebProcess/Network/WebSocketProvider.h:
+
+2016-08-11 Alex Christensen <[email protected]>
+
Use StringBuilder::appendLiteral when possible don't append result of makeString
https://bugs.webkit.org/show_bug.cgi?id=160772
Modified: trunk/Source/WebKit2/WebProcess/Network/WebSocketProvider.cpp (204394 => 204395)
--- trunk/Source/WebKit2/WebProcess/Network/WebSocketProvider.cpp 2016-08-12 00:33:47 UTC (rev 204394)
+++ trunk/Source/WebKit2/WebProcess/Network/WebSocketProvider.cpp 2016-08-12 00:34:22 UTC (rev 204395)
@@ -49,10 +49,10 @@
namespace WebKit {
-Ref<SocketStreamHandle> WebSocketProvider::createSocketStreamHandle(const URL& url, SocketStreamHandleClient& client, NetworkingContext& context, SessionID sessionID)
+Ref<SocketStreamHandle> WebSocketProvider::createSocketStreamHandle(const URL& url, SocketStreamHandleClient& client, SessionID sessionID)
{
// FIXME: This should return a proxy so we can do the actual network interactions in the NetworkProcess.
- return SocketStreamHandle::create(url, client, context, sessionID);
+ return SocketStreamHandle::create(url, client, sessionID);
}
} // namespace WebKit
Modified: trunk/Source/WebKit2/WebProcess/Network/WebSocketProvider.h (204394 => 204395)
--- trunk/Source/WebKit2/WebProcess/Network/WebSocketProvider.h 2016-08-12 00:33:47 UTC (rev 204394)
+++ trunk/Source/WebKit2/WebProcess/Network/WebSocketProvider.h 2016-08-12 00:34:22 UTC (rev 204395)
@@ -33,7 +33,7 @@
public:
static Ref<WebSocketProvider> create() { return adoptRef(*new WebSocketProvider); }
#if ENABLE(WEB_SOCKETS)
- Ref<WebCore::SocketStreamHandle> createSocketStreamHandle(const WebCore::URL&, WebCore::SocketStreamHandleClient&, WebCore::NetworkingContext&, WebCore::SessionID) final;
+ Ref<WebCore::SocketStreamHandle> createSocketStreamHandle(const WebCore::URL&, WebCore::SocketStreamHandleClient&, WebCore::SessionID) final;
#endif
virtual ~WebSocketProvider() { }
};