Changeset 207813 in webkit
- Timestamp:
- Oct 25, 2016 3:25:29 AM (7 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 3 added
- 20 edited
- 3 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/CMakeLists.txt
r207586 r207813 183 183 set(NetworkProcess_COMMON_SOURCES 184 184 NetworkProcess/NetworkConnectionToWebProcess.cpp 185 NetworkProcess/NetworkDataTask.cpp 185 186 NetworkProcess/NetworkLoad.cpp 186 187 NetworkProcess/NetworkProcess.cpp 187 188 NetworkProcess/NetworkProcessPlatformStrategies.cpp 188 189 NetworkProcess/NetworkResourceLoader.cpp 190 NetworkProcess/NetworkSession.cpp 189 191 190 192 NetworkProcess/FileAPI/NetworkBlobRegistry.cpp -
trunk/Source/WebKit2/ChangeLog
r207812 r207813 1 2016-10-25 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 NetworkSession: switch to use subclasses for NetworkSession and NetworkDataTask implementations 4 https://bugs.webkit.org/show_bug.cgi?id=163777 5 6 Reviewed by Alex Christensen. 7 8 The subclass model allows us to choose the implementation at run time, so we could add other implementations 9 like a mock network class to measure performance, and even one for blobs and finally get rid of ResourceHandle 10 in WebKit2. 11 12 * CMakeLists.txt: Add new files to compilation. 13 * NetworkProcess/NetworkDataTask.cpp: Added. 14 (WebKit::NetworkDataTask::create): Create a NetworkDataTaskCocoa or NetworkDataTaskSoup. 15 (WebKit::NetworkDataTask::NetworkDataTask): Move common code from NetworkDataTaskCocoa and NetworkDataTaskSoup 16 here to handle the early failures. 17 (WebKit::NetworkDataTask::~NetworkDataTask): 18 (WebKit::NetworkDataTask::scheduleFailure): 19 (WebKit::NetworkDataTask::failureTimerFired): 20 * NetworkProcess/NetworkDataTask.h: Remove platform specific members. 21 (WebKit::NetworkDataTask::setPendingDownloadLocation): Make it virtual and set the m_pendingDownloadLocation. 22 (WebKit::NetworkDataTask::suggestedFilename): Make it virtual and const with a default implementation. 23 (WebKit::NetworkDataTask::setSuggestedFilename): Ditto. 24 (WebKit::NetworkDataTask::allowsSpecificHTTPSCertificateForHost): Ditto. 25 * NetworkProcess/NetworkLoad.cpp: Include NetworkDataTaskCocoa.h. 26 * NetworkProcess/NetworkLoad.h: Include NetworkDataTask.h instead of NetworkSession.h. 27 * NetworkProcess/NetworkProcess.cpp: 28 (WebKit::NetworkProcess::NetworkProcess): Use NetworkSessionCocoa. 29 * NetworkProcess/NetworkSession.cpp: 30 (WebKit::NetworkSession::create): Create a NetworkSessionCocoa or NetworkSessionSoup. 31 (WebKit::NetworkSession::defaultSession): In case of cocoa use NetworkSessionCocoa::defaultSession() because of 32 the custom protocol manager, otherwise simply create a default session. 33 (WebKit::NetworkSession::networkStorageSession): Move common code from NetworkSessionCocoa and 34 NetworkSessionSoup here. 35 (WebKit::NetworkSession::NetworkSession): 36 (WebKit::NetworkSession::~NetworkSession): 37 * NetworkProcess/NetworkSession.h: Remove platform specific members. 38 (WebKit::NetworkSession::invalidateAndCancel): Make it virtual. 39 (WebKit::NetworkSession::clearCredentials): Ditto. 40 * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: Include NetworkSession.h. 41 * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: Added. 42 * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: 43 (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): 44 (WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa): 45 (WebKit::NetworkDataTaskCocoa::didSendData): 46 (WebKit::NetworkDataTaskCocoa::didReceiveChallenge): 47 (WebKit::NetworkDataTaskCocoa::didCompleteWithError): 48 (WebKit::NetworkDataTaskCocoa::didReceiveResponse): 49 (WebKit::NetworkDataTaskCocoa::didReceiveData): 50 (WebKit::NetworkDataTaskCocoa::didBecomeDownload): 51 (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): 52 (WebKit::NetworkDataTaskCocoa::setPendingDownloadLocation): 53 (WebKit::NetworkDataTaskCocoa::tryPasswordBasedAuthentication): 54 (WebKit::NetworkDataTaskCocoa::transferSandboxExtensionToDownload): 55 (WebKit::NetworkDataTaskCocoa::allowsSpecificHTTPSCertificateForHost): 56 (WebKit::NetworkDataTaskCocoa::suggestedFilename): 57 (WebKit::NetworkDataTaskCocoa::cancel): 58 (WebKit::NetworkDataTaskCocoa::resume): 59 (WebKit::NetworkDataTaskCocoa::suspend): 60 (WebKit::NetworkDataTaskCocoa::state): 61 * NetworkProcess/cocoa/NetworkProcessCocoa.mm: 62 (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): 63 * NetworkProcess/cocoa/NetworkSessionCocoa.h: Added. 64 * NetworkProcess/cocoa/NetworkSessionCocoa.mm: 65 (-[WKNetworkSessionDelegate initWithNetworkSession:withCredentials:]): 66 (-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): 67 (WebKit::configurationForSessionID): 68 (WebKit::NetworkSessionCocoa::setCustomProtocolManager): 69 (WebKit::NetworkSessionCocoa::setSourceApplicationAuditTokenData): 70 (WebKit::NetworkSessionCocoa::setSourceApplicationBundleIdentifier): 71 (WebKit::NetworkSessionCocoa::setSourceApplicationSecondaryIdentifier): 72 (WebKit::NetworkSessionCocoa::setCTDataConnectionServiceType): 73 (WebKit::NetworkSessionCocoa::create): 74 (WebKit::NetworkSessionCocoa::defaultSession): 75 (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): 76 (WebKit::NetworkSessionCocoa::~NetworkSessionCocoa): 77 (WebKit::NetworkSessionCocoa::invalidateAndCancel): 78 (WebKit::NetworkSessionCocoa::clearCredentials): 79 (WebKit::NetworkSessionCocoa::dataTaskForIdentifier): 80 (WebKit::NetworkSessionCocoa::addDownloadID): 81 (WebKit::NetworkSessionCocoa::downloadID): 82 (WebKit::NetworkSessionCocoa::takeDownloadID): 83 * NetworkProcess/mac/RemoteNetworkingContext.mm: 84 (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): 85 * NetworkProcess/soup/NetworkDataTaskSoup.cpp: 86 (WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup): 87 (WebKit::NetworkDataTaskSoup::~NetworkDataTaskSoup): 88 (WebKit::NetworkDataTaskSoup::suggestedFilename): 89 (WebKit::NetworkDataTaskSoup::setPendingDownloadLocation): 90 (WebKit::NetworkDataTaskSoup::createRequest): 91 (WebKit::NetworkDataTaskSoup::clearRequest): 92 (WebKit::NetworkDataTaskSoup::resume): 93 (WebKit::NetworkDataTaskSoup::suspend): 94 (WebKit::NetworkDataTaskSoup::cancel): 95 (WebKit::NetworkDataTaskSoup::invalidateAndCancel): 96 (WebKit::NetworkDataTaskSoup::state): 97 (WebKit::NetworkDataTaskSoup::timeoutFired): 98 (WebKit::NetworkDataTaskSoup::startTimeout): 99 (WebKit::NetworkDataTaskSoup::stopTimeout): 100 (WebKit::NetworkDataTaskSoup::sendRequestCallback): 101 (WebKit::NetworkDataTaskSoup::didSendRequest): 102 (WebKit::NetworkDataTaskSoup::didReceiveResponse): 103 (WebKit::NetworkDataTaskSoup::tlsErrorsChangedCallback): 104 (WebKit::NetworkDataTaskSoup::tlsErrorsChanged): 105 (WebKit::NetworkDataTaskSoup::applyAuthenticationToRequest): 106 (WebKit::NetworkDataTaskSoup::authenticateCallback): 107 (WebKit::NetworkDataTaskSoup::authenticate): 108 (WebKit::NetworkDataTaskSoup::continueAuthenticate): 109 (WebKit::NetworkDataTaskSoup::skipInputStreamForRedirectionCallback): 110 (WebKit::NetworkDataTaskSoup::skipInputStreamForRedirection): 111 (WebKit::NetworkDataTaskSoup::didFinishSkipInputStreamForRedirection): 112 (WebKit::NetworkDataTaskSoup::shouldStartHTTPRedirection): 113 (WebKit::NetworkDataTaskSoup::continueHTTPRedirection): 114 (WebKit::NetworkDataTaskSoup::readCallback): 115 (WebKit::NetworkDataTaskSoup::read): 116 (WebKit::NetworkDataTaskSoup::didRead): 117 (WebKit::NetworkDataTaskSoup::didFinishRead): 118 (WebKit::NetworkDataTaskSoup::requestNextPartCallback): 119 (WebKit::NetworkDataTaskSoup::requestNextPart): 120 (WebKit::NetworkDataTaskSoup::didRequestNextPart): 121 (WebKit::NetworkDataTaskSoup::didFinishRequestNextPart): 122 (WebKit::NetworkDataTaskSoup::gotHeadersCallback): 123 (WebKit::NetworkDataTaskSoup::didGetHeaders): 124 (WebKit::NetworkDataTaskSoup::wroteBodyDataCallback): 125 (WebKit::NetworkDataTaskSoup::didWriteBodyData): 126 (WebKit::NetworkDataTaskSoup::download): 127 (WebKit::NetworkDataTaskSoup::writeDownloadCallback): 128 (WebKit::NetworkDataTaskSoup::writeDownload): 129 (WebKit::NetworkDataTaskSoup::didWriteDownload): 130 (WebKit::NetworkDataTaskSoup::didFinishDownload): 131 (WebKit::NetworkDataTaskSoup::didFailDownload): 132 (WebKit::NetworkDataTaskSoup::cleanDownloadFiles): 133 (WebKit::NetworkDataTaskSoup::didFail): 134 (WebKit::NetworkDataTaskSoup::networkEventCallback): 135 (WebKit::NetworkDataTaskSoup::networkEvent): 136 (WebKit::NetworkDataTaskSoup::startingCallback): 137 (WebKit::NetworkDataTaskSoup::requestStartedCallback): 138 (WebKit::NetworkDataTaskSoup::didStartRequest): 139 (WebKit::NetworkDataTaskSoup::restartedCallback): 140 (WebKit::NetworkDataTaskSoup::didRestart): 141 * NetworkProcess/soup/NetworkDataTaskSoup.h: Added. 142 * NetworkProcess/soup/NetworkSessionSoup.cpp: 143 (WebKit::NetworkSessionSoup::NetworkSessionSoup): 144 (WebKit::NetworkSessionSoup::~NetworkSessionSoup): 145 (WebKit::NetworkSessionSoup::soupSession): 146 (WebKit::NetworkSessionSoup::invalidateAndCancel): 147 * NetworkProcess/soup/NetworkSessionSoup.h: Added. 148 * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp: 149 (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): Update to new NetworkSession::create() API. 150 * PlatformEfl.cmake: Add new files to compilation. 151 * PlatformGTK.cmake: Ditto. 152 * WebKit2.xcodeproj/project.pbxproj: Ditto. 153 * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: 154 (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): Update to new NetworkSession::create() API. 155 * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp: 156 (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): Ditto. 157 1 158 2016-10-25 Antti Koivisto <antti@apple.com> 2 159 -
trunk/Source/WebKit2/NetworkProcess/NetworkDataTask.h
r207586 r207813 37 37 #include <WebCore/Timer.h> 38 38 #include <wtf/Function.h> 39 #include <wtf/RetainPtr.h>40 39 #include <wtf/text/WTFString.h> 41 42 #if PLATFORM(COCOA)43 OBJC_CLASS NSURLSessionDataTask;44 #endif45 46 #if USE(SOUP)47 #include <WebCore/ProtectionSpace.h>48 #include <WebCore/ResourceResponse.h>49 #include <wtf/RunLoop.h>50 #include <wtf/glib/GRefPtr.h>51 #endif52 40 53 41 namespace WebCore { 54 42 class AuthenticationChallenge; 55 class Credential;56 43 class ResourceError; 57 class ResourceRequest;58 44 class ResourceResponse; 59 45 class SharedBuffer; … … 87 73 88 74 class NetworkDataTask : public RefCounted<NetworkDataTask> { 89 friend class NetworkSession;90 75 public: 91 static Ref<NetworkDataTask> create(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& request, WebCore::StoredCredentials storedCredentials, WebCore::ContentSniffingPolicy shouldContentSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect) 92 { 93 return adoptRef(*new NetworkDataTask(session, client, request, storedCredentials, shouldContentSniff, shouldClearReferrerOnHTTPSToHTTPRedirect)); 94 } 95 96 void suspend(); 97 void cancel(); 98 void resume(); 76 static Ref<NetworkDataTask> create(NetworkSession&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, WebCore::StoredCredentials, WebCore::ContentSniffingPolicy, bool shouldClearReferrerOnHTTPSToHTTPRedirect); 77 78 virtual ~NetworkDataTask(); 79 80 virtual void suspend() = 0; 81 virtual void cancel() = 0; 82 virtual void resume() = 0; 99 83 100 84 enum class State { … … 104 88 Completed 105 89 }; 106 State state() const;90 virtual State state() const = 0; 107 91 108 typedef uint64_t TaskIdentifier;109 110 ~NetworkDataTask();111 112 #if PLATFORM(COCOA)113 void didSendData(uint64_t totalBytesSent, uint64_t totalBytesExpectedToSend);114 void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler&&);115 void didCompleteWithError(const WebCore::ResourceError&);116 void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&);117 void didReceiveData(Ref<WebCore::SharedBuffer>&&);118 void didBecomeDownload();119 120 void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&);121 void transferSandboxExtensionToDownload(Download&);122 #endif123 92 NetworkDataTaskClient* client() const { return m_client; } 124 93 void clearClient() { m_client = nullptr; } 125 94 126 95 DownloadID pendingDownloadID() const { return m_pendingDownloadID; } 127 96 PendingDownload* pendingDownload() const { return m_pendingDownload; } … … 137 106 m_pendingDownload = &pendingDownload; 138 107 } 139 void setPendingDownloadLocation(const String& filename, const SandboxExtension::Handle&, bool allowOverwrite); 108 109 virtual void setPendingDownloadLocation(const String& filename, const SandboxExtension::Handle&, bool /*allowOverwrite*/) { m_pendingDownloadLocation = filename; } 140 110 const String& pendingDownloadLocation() const { return m_pendingDownloadLocation; } 141 111 bool isDownload() const { return !!m_pendingDownloadID.downloadID(); } 142 112 143 113 const WebCore::ResourceRequest& firstRequest() const { return m_firstRequest; } 144 String suggestedFilename(); 145 void setSuggestedFilename(const String&); 146 bool allowsSpecificHTTPSCertificateForHost(const WebCore::AuthenticationChallenge&); 147 148 private: 149 NetworkDataTask(NetworkSession&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, WebCore::StoredCredentials, WebCore::ContentSniffingPolicy, bool shouldClearReferrerOnHTTPSToHTTPRedirect); 114 virtual String suggestedFilename() const { return String(); } 115 void setSuggestedFilename(const String& suggestedName) { m_suggestedFilename = suggestedName; } 116 virtual bool allowsSpecificHTTPSCertificateForHost(const WebCore::AuthenticationChallenge&) { return false; } 150 117 151 bool tryPasswordBasedAuthentication(const WebCore::AuthenticationChallenge&, const ChallengeCompletionHandler&); 118 protected: 119 NetworkDataTask(NetworkSession&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, WebCore::StoredCredentials, bool shouldClearReferrerOnHTTPSToHTTPRedirect); 152 120 153 #if USE(SOUP)154 void timeoutFired();155 void startTimeout();156 void stopTimeout();157 void invalidateAndCancel();158 void createRequest(const WebCore::ResourceRequest&);159 void clearRequest();160 static void sendRequestCallback(SoupRequest*, GAsyncResult*, NetworkDataTask*);161 void didSendRequest(GRefPtr<GInputStream>&&);162 void didReceiveResponse();163 static void tlsErrorsChangedCallback(SoupMessage*, GParamSpec*, NetworkDataTask*);164 void tlsErrorsChanged();165 void applyAuthenticationToRequest(WebCore::ResourceRequest&);166 static void authenticateCallback(SoupSession*, SoupMessage*, SoupAuth*, gboolean retrying, NetworkDataTask*);167 void authenticate(WebCore::AuthenticationChallenge&&);168 void continueAuthenticate(WebCore::AuthenticationChallenge&&);169 static void skipInputStreamForRedirectionCallback(GInputStream*, GAsyncResult*, NetworkDataTask*);170 void skipInputStreamForRedirection();171 void didFinishSkipInputStreamForRedirection();172 bool shouldStartHTTPRedirection();173 void continueHTTPRedirection();174 static void readCallback(GInputStream*, GAsyncResult*, NetworkDataTask*);175 void read();176 void didRead(gssize bytesRead);177 void didFinishRead();178 static void requestNextPartCallback(SoupMultipartInputStream*, GAsyncResult*, NetworkDataTask*);179 void requestNextPart();180 void didRequestNextPart(GRefPtr<GInputStream>&&);181 void didFinishRequestNextPart();182 static void gotHeadersCallback(SoupMessage*, NetworkDataTask*);183 void didGetHeaders();184 static void wroteBodyDataCallback(SoupMessage*, SoupBuffer*, NetworkDataTask*);185 void didWriteBodyData(uint64_t bytesSent);186 void download();187 static void writeDownloadCallback(GOutputStream*, GAsyncResult*, NetworkDataTask*);188 void writeDownload();189 void didWriteDownload(gsize bytesWritten);190 void didFailDownload(const WebCore::ResourceError&);191 void didFinishDownload();192 void cleanDownloadFiles();193 void didFail(const WebCore::ResourceError&);194 #if ENABLE(WEB_TIMING)195 static void networkEventCallback(SoupMessage*, GSocketClientEvent, GIOStream*, NetworkDataTask*);196 void networkEvent(GSocketClientEvent);197 #if SOUP_CHECK_VERSION(2, 49, 91)198 static void startingCallback(SoupMessage*, NetworkDataTask*);199 #else200 static void requestStartedCallback(SoupSession*, SoupMessage*, SoupSocket*, NetworkDataTask*);201 #endif202 void didStartRequest();203 static void restartedCallback(SoupMessage*, NetworkDataTask*);204 void didRestart();205 #endif206 #endif207 208 121 enum FailureType { 209 122 NoFailure, … … 211 124 InvalidURLFailure 212 125 }; 126 void failureTimerFired(); 127 void scheduleFailure(FailureType); 128 213 129 FailureType m_scheduledFailureType { NoFailure }; 214 130 WebCore::Timer m_failureTimer; 215 void failureTimerFired(); 216 void scheduleFailure(FailureType); 217 218 RefPtr<NetworkSession> m_session; 219 NetworkDataTaskClient* m_client; 131 Ref<NetworkSession> m_session; 132 NetworkDataTaskClient* m_client { nullptr }; 220 133 PendingDownload* m_pendingDownload { nullptr }; 221 134 DownloadID m_pendingDownloadID; … … 225 138 WebCore::Credential m_initialCredential; 226 139 #endif 227 WebCore::StoredCredentials m_storedCredentials ;140 WebCore::StoredCredentials m_storedCredentials { WebCore::DoNotAllowStoredCredentials }; 228 141 String m_lastHTTPMethod; 229 142 String m_pendingDownloadLocation; 230 143 WebCore::ResourceRequest m_firstRequest; 231 bool m_shouldClearReferrerOnHTTPSToHTTPRedirect; 232 RefPtr<SandboxExtension> m_sandboxExtension; 233 #if PLATFORM(COCOA) 234 RetainPtr<NSURLSessionDataTask> m_task; 235 #endif 236 #if USE(SOUP) 237 State m_state { State::Suspended }; 238 WebCore::ContentSniffingPolicy m_shouldContentSniff; 239 GRefPtr<SoupRequest> m_soupRequest; 240 GRefPtr<SoupMessage> m_soupMessage; 241 GRefPtr<GInputStream> m_inputStream; 242 GRefPtr<SoupMultipartInputStream> m_multipartInputStream; 243 GRefPtr<GCancellable> m_cancellable; 244 GRefPtr<GAsyncResult> m_pendingResult; 245 WebCore::ProtectionSpace m_protectionSpaceForPersistentStorage; 246 WebCore::Credential m_credentialForPersistentStorage; 247 WebCore::ResourceResponse m_response; 248 Vector<char> m_readBuffer; 249 unsigned m_redirectCount { 0 }; 250 uint64_t m_bodyDataTotalBytesSent { 0 }; 251 GRefPtr<GFile> m_downloadDestinationFile; 252 GRefPtr<GFile> m_downloadIntermediateFile; 253 GRefPtr<GOutputStream> m_downloadOutputStream; 254 bool m_allowOverwriteDownload { false }; 255 #if ENABLE(WEB_TIMING) 256 double m_startTime { 0 }; 257 #endif 258 RunLoop::Timer<NetworkDataTask> m_timeoutSource; 259 #endif 144 bool m_shouldClearReferrerOnHTTPSToHTTPRedirect { true }; 260 145 String m_suggestedFilename; 261 146 }; 262 147 263 #if PLATFORM(COCOA) 264 WebCore::Credential serverTrustCredential(const WebCore::AuthenticationChallenge&); 265 #endif 266 267 } 148 } // namespace WebKit 268 149 269 150 #endif // USE(NETWORK_SESSION) -
trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp
r207812 r207813 40 40 #include <wtf/MainThread.h> 41 41 42 #if PLATFORM(COCOA) 43 #include "NetworkDataTaskCocoa.h" 44 #endif 45 42 46 namespace WebKit { 43 47 -
trunk/Source/WebKit2/NetworkProcess/NetworkLoad.h
r207812 r207813 35 35 #if USE(NETWORK_SESSION) 36 36 #include "DownloadID.h" 37 #include "Network Session.h"37 #include "NetworkDataTask.h" 38 38 #include <WebCore/AuthenticationChallenge.h> 39 39 #endif -
trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp
r207812 r207813 75 75 #endif 76 76 77 #if PLATFORM(COCOA) 78 #include "NetworkSessionCocoa.h" 79 #endif 80 77 81 using namespace WebCore; 78 82 … … 103 107 addSupplement<CustomProtocolManager>(); 104 108 #if USE(NETWORK_SESSION) && PLATFORM(COCOA) 105 NetworkSession ::setCustomProtocolManager(supplement<CustomProtocolManager>());109 NetworkSessionCocoa::setCustomProtocolManager(supplement<CustomProtocolManager>()); 106 110 #endif 107 111 } -
trunk/Source/WebKit2/NetworkProcess/NetworkSession.cpp
r207812 r207813 1 1 /* 2 * Copyright (C) 201 6 Igalia S.L.2 * Copyright (C) 2015 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 27 27 #include "NetworkSession.h" 28 28 29 #if USE(NETWORK_SESSION) 30 29 31 #include <WebCore/NetworkStorageSession.h> 30 #include <WebCore/SoupNetworkSession.h>31 32 #include <wtf/MainThread.h> 33 34 #if PLATFORM(COCOA) 35 #include "NetworkSessionCocoa.h" 36 #endif 37 #if USE(SOUP) 38 #include "NetworkSessionSoup.h" 39 #endif 40 32 41 33 42 using namespace WebCore; … … 35 44 namespace WebKit { 36 45 37 Ref<NetworkSession> NetworkSession::create( Type type, SessionID sessionID, CustomProtocolManager*)46 Ref<NetworkSession> NetworkSession::create(SessionID sessionID, CustomProtocolManager* customProtocolManager) 38 47 { 39 return adoptRef(*new NetworkSession(type, sessionID, nullptr)); 48 #if PLATFORM(COCOA) 49 return NetworkSessionCocoa::create(sessionID, customProtocolManager); 50 #endif 51 #if USE(SOUP) 52 UNUSED_PARAM(customProtocolManager); 53 return NetworkSessionSoup::create(sessionID); 54 #endif 40 55 } 41 56 42 57 NetworkSession& NetworkSession::defaultSession() 43 58 { 59 #if PLATFORM(COCOA) 60 return NetworkSessionCocoa::defaultSession(); 61 #else 44 62 ASSERT(isMainThread()); 45 static NetworkSession* session = &NetworkSession::create( NetworkSession::Type::Normal, SessionID::defaultSessionID(), nullptr).leakRef();63 static NetworkSession* session = &NetworkSession::create(SessionID::defaultSessionID()).leakRef(); 46 64 return *session; 65 #endif 47 66 } 48 67 … … 54 73 } 55 74 56 NetworkSession::NetworkSession( Type type, SessionID sessionID, CustomProtocolManager*)75 NetworkSession::NetworkSession(SessionID sessionID) 57 76 : m_sessionID(sessionID) 58 77 { … … 63 82 } 64 83 65 SoupSession* NetworkSession::soupSession() const 66 { 67 return networkStorageSession().soupNetworkSession().soupSession(); 68 } 84 } // namespace WebKit 69 85 70 void NetworkSession::invalidateAndCancel() 71 { 72 for (auto* task : m_dataTaskSet) 73 task->invalidateAndCancel(); 74 } 75 76 void NetworkSession::clearCredentials() 77 { 78 } 79 80 } // namespace WebKit 86 #endif // USE(NETWORK_SESSION) -
trunk/Source/WebKit2/NetworkProcess/NetworkSession.h
r207586 r207813 28 28 #if USE(NETWORK_SESSION) 29 29 30 #if PLATFORM(COCOA)31 OBJC_CLASS NSURLSession;32 OBJC_CLASS NSOperationQueue;33 OBJC_CLASS WKNetworkSessionDelegate;34 #endif35 36 #include "DownloadID.h"37 #include "NetworkDataTask.h"38 30 #include <WebCore/SessionID.h> 39 #include <wtf/HashMap.h>40 #include <wtf/HashSet.h>41 31 #include <wtf/Ref.h> 42 32 #include <wtf/RefCounted.h> 43 44 #if USE(SOUP)45 typedef struct _SoupSession SoupSession;46 #endif47 33 48 34 namespace WebCore { … … 55 41 56 42 class NetworkSession : public RefCounted<NetworkSession> { 57 friend class NetworkDataTask;58 43 public: 59 enum class Type { 60 Normal, 61 Ephemeral 62 }; 44 static Ref<NetworkSession> create(WebCore::SessionID, CustomProtocolManager* = nullptr); 45 static NetworkSession& defaultSession(); 46 virtual ~NetworkSession(); 63 47 64 static Ref<NetworkSession> create(Type, WebCore::SessionID, CustomProtocolManager*); 65 static NetworkSession& defaultSession(); 66 ~NetworkSession(); 67 68 void invalidateAndCancel(); 48 virtual void invalidateAndCancel() = 0; 49 virtual void clearCredentials() { }; 69 50 70 51 WebCore::SessionID sessionID() const { return m_sessionID; } 71 72 #if USE(SOUP)73 SoupSession* soupSession() const;74 #endif75 76 #if PLATFORM(COCOA)77 // Must be called before any NetworkSession has been created.78 static void setCustomProtocolManager(CustomProtocolManager*);79 static void setSourceApplicationAuditTokenData(RetainPtr<CFDataRef>&&);80 static void setSourceApplicationBundleIdentifier(const String&);81 static void setSourceApplicationSecondaryIdentifier(const String&);82 #if PLATFORM(IOS)83 static void setCTDataConnectionServiceType(const String&);84 #endif85 #endif86 87 void clearCredentials();88 #if PLATFORM(COCOA)89 NetworkDataTask* dataTaskForIdentifier(NetworkDataTask::TaskIdentifier, WebCore::StoredCredentials);90 91 void addDownloadID(NetworkDataTask::TaskIdentifier, DownloadID);92 DownloadID downloadID(NetworkDataTask::TaskIdentifier);93 DownloadID takeDownloadID(NetworkDataTask::TaskIdentifier);94 #endif95 96 private:97 NetworkSession(Type, WebCore::SessionID, CustomProtocolManager*);98 52 WebCore::NetworkStorageSession& networkStorageSession() const; 99 53 54 protected: 55 NetworkSession(WebCore::SessionID); 56 100 57 WebCore::SessionID m_sessionID; 101 102 #if PLATFORM(COCOA)103 HashMap<NetworkDataTask::TaskIdentifier, NetworkDataTask*> m_dataTaskMapWithCredentials;104 HashMap<NetworkDataTask::TaskIdentifier, NetworkDataTask*> m_dataTaskMapWithoutCredentials;105 HashMap<NetworkDataTask::TaskIdentifier, DownloadID> m_downloadMap;106 107 RetainPtr<NSURLSession> m_sessionWithCredentialStorage;108 RetainPtr<WKNetworkSessionDelegate> m_sessionWithCredentialStorageDelegate;109 RetainPtr<NSURLSession> m_sessionWithoutCredentialStorage;110 RetainPtr<WKNetworkSessionDelegate> m_sessionWithoutCredentialStorageDelegate;111 #elif USE(SOUP)112 HashSet<NetworkDataTask*> m_dataTaskSet;113 #endif114 58 }; 115 59 -
trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp
r203133 r207813 32 32 #include "NetworkCache.h" 33 33 #include "NetworkLoad.h" 34 #include "NetworkSession.h" 34 35 #include <WebCore/SessionID.h> 35 36 #include <wtf/CurrentTime.h> -
trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm
r207586 r207813 25 25 26 26 #import "config.h" 27 #import "Network Session.h"27 #import "NetworkDataTaskCocoa.h" 28 28 29 29 #if USE(NETWORK_SESSION) … … 34 34 #import "Logging.h" 35 35 #import "NetworkProcess.h" 36 #import "NetworkSessionCocoa.h" 36 37 #import "SessionTracker.h" 37 38 #import "WebCoreArgumentCoders.h" … … 53 54 #endif 54 55 55 NetworkDataTask::NetworkDataTask(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& requestWithCredentials, WebCore::StoredCredentials storedCredentials, WebCore::ContentSniffingPolicy shouldContentSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect) 56 : m_failureTimer(*this, &NetworkDataTask::failureTimerFired) 57 , m_session(&session) 58 , m_client(&client) 59 , m_storedCredentials(storedCredentials) 60 , m_lastHTTPMethod(requestWithCredentials.httpMethod()) 61 , m_firstRequest(requestWithCredentials) 62 , m_shouldClearReferrerOnHTTPSToHTTPRedirect(shouldClearReferrerOnHTTPSToHTTPRedirect) 63 { 64 ASSERT(isMainThread()); 65 66 if (!requestWithCredentials.url().isValid()) { 67 scheduleFailure(InvalidURLFailure); 56 NetworkDataTaskCocoa::NetworkDataTaskCocoa(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& requestWithCredentials, WebCore::StoredCredentials storedCredentials, WebCore::ContentSniffingPolicy shouldContentSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect) 57 : NetworkDataTask(session, client, requestWithCredentials, storedCredentials, shouldClearReferrerOnHTTPSToHTTPRedirect) 58 { 59 if (m_scheduledFailureType != NoFailure) 68 60 return; 69 } 70 71 if (!portAllowed(requestWithCredentials.url())) { 72 scheduleFailure(BlockedFailure); 73 return; 74 } 75 61 76 62 auto request = requestWithCredentials; 77 63 auto url = request.url(); … … 104 90 } 105 91 92 auto& cocoaSession = static_cast<NetworkSessionCocoa&>(m_session.get()); 106 93 if (storedCredentials == WebCore::AllowStoredCredentials) { 107 m_task = [ m_session->m_sessionWithCredentialStorage dataTaskWithRequest:nsRequest];108 ASSERT(! m_session->m_dataTaskMapWithCredentials.contains([m_task taskIdentifier]));109 m_session->m_dataTaskMapWithCredentials.add([m_task taskIdentifier], this);94 m_task = [cocoaSession.m_sessionWithCredentialStorage dataTaskWithRequest:nsRequest]; 95 ASSERT(!cocoaSession.m_dataTaskMapWithCredentials.contains([m_task taskIdentifier])); 96 cocoaSession.m_dataTaskMapWithCredentials.add([m_task taskIdentifier], this); 110 97 } else { 111 m_task = [ m_session->m_sessionWithoutCredentialStorage dataTaskWithRequest:nsRequest];112 ASSERT(! m_session->m_dataTaskMapWithoutCredentials.contains([m_task taskIdentifier]));113 m_session->m_dataTaskMapWithoutCredentials.add([m_task taskIdentifier], this);98 m_task = [cocoaSession.m_sessionWithoutCredentialStorage dataTaskWithRequest:nsRequest]; 99 ASSERT(!cocoaSession.m_dataTaskMapWithoutCredentials.contains([m_task taskIdentifier])); 100 cocoaSession.m_dataTaskMapWithoutCredentials.add([m_task taskIdentifier], this); 114 101 } 115 102 LOG(NetworkSession, "%llu Creating NetworkDataTask with URL %s", [m_task taskIdentifier], nsRequest.URL.absoluteString.UTF8String); … … 122 109 } 123 110 124 NetworkDataTask::~NetworkDataTask() 125 { 126 ASSERT(isMainThread()); 127 if (m_task) { 128 if (m_storedCredentials == WebCore::StoredCredentials::AllowStoredCredentials) { 129 ASSERT(m_session->m_dataTaskMapWithCredentials.get([m_task taskIdentifier]) == this); 130 m_session->m_dataTaskMapWithCredentials.remove([m_task taskIdentifier]); 131 } else { 132 ASSERT(m_session->m_dataTaskMapWithoutCredentials.get([m_task taskIdentifier]) == this); 133 m_session->m_dataTaskMapWithoutCredentials.remove([m_task taskIdentifier]); 134 } 135 } 136 } 137 138 void NetworkDataTask::didSendData(uint64_t totalBytesSent, uint64_t totalBytesExpectedToSend) 111 NetworkDataTaskCocoa::~NetworkDataTaskCocoa() 112 { 113 if (!m_task) 114 return; 115 116 auto& cocoaSession = static_cast<NetworkSessionCocoa&>(m_session.get()); 117 if (m_storedCredentials == WebCore::StoredCredentials::AllowStoredCredentials) { 118 ASSERT(cocoaSession.m_dataTaskMapWithCredentials.get([m_task taskIdentifier]) == this); 119 cocoaSession.m_dataTaskMapWithCredentials.remove([m_task taskIdentifier]); 120 } else { 121 ASSERT(cocoaSession.m_dataTaskMapWithoutCredentials.get([m_task taskIdentifier]) == this); 122 cocoaSession.m_dataTaskMapWithoutCredentials.remove([m_task taskIdentifier]); 123 } 124 } 125 126 void NetworkDataTaskCocoa::didSendData(uint64_t totalBytesSent, uint64_t totalBytesExpectedToSend) 139 127 { 140 128 if (m_client) … … 142 130 } 143 131 144 void NetworkDataTask ::didReceiveChallenge(const WebCore::AuthenticationChallenge& challenge, ChallengeCompletionHandler&& completionHandler)132 void NetworkDataTaskCocoa::didReceiveChallenge(const WebCore::AuthenticationChallenge& challenge, ChallengeCompletionHandler&& completionHandler) 145 133 { 146 134 // Proxy authentication is handled by CFNetwork internally. We can get here if the user cancels … … 162 150 } 163 151 164 void NetworkDataTask ::didCompleteWithError(const WebCore::ResourceError& error)152 void NetworkDataTaskCocoa::didCompleteWithError(const WebCore::ResourceError& error) 165 153 { 166 154 if (m_client) … … 168 156 } 169 157 170 void NetworkDataTask ::didReceiveResponse(WebCore::ResourceResponse&& response, ResponseCompletionHandler&& completionHandler)158 void NetworkDataTaskCocoa::didReceiveResponse(WebCore::ResourceResponse&& response, ResponseCompletionHandler&& completionHandler) 171 159 { 172 160 if (m_client) … … 178 166 } 179 167 180 void NetworkDataTask ::didReceiveData(Ref<WebCore::SharedBuffer>&& data)168 void NetworkDataTaskCocoa::didReceiveData(Ref<WebCore::SharedBuffer>&& data) 181 169 { 182 170 if (m_client) … … 184 172 } 185 173 186 void NetworkDataTask ::didBecomeDownload()174 void NetworkDataTaskCocoa::didBecomeDownload() 187 175 { 188 176 if (m_client) … … 190 178 } 191 179 192 void NetworkDataTask ::willPerformHTTPRedirection(WebCore::ResourceResponse&& redirectResponse, WebCore::ResourceRequest&& request, RedirectCompletionHandler&& completionHandler)180 void NetworkDataTaskCocoa::willPerformHTTPRedirection(WebCore::ResourceResponse&& redirectResponse, WebCore::ResourceRequest&& request, RedirectCompletionHandler&& completionHandler) 193 181 { 194 182 if (redirectResponse.httpStatusCode() == 307 || redirectResponse.httpStatusCode() == 308) { … … 241 229 } 242 230 } 243 244 void NetworkDataTask::scheduleFailure(FailureType type) 245 { 246 ASSERT(type != NoFailure); 247 m_scheduledFailureType = type; 248 m_failureTimer.startOneShot(0); 249 } 250 251 void NetworkDataTask::failureTimerFired() 252 { 253 RefPtr<NetworkDataTask> protect(this); 254 255 switch (m_scheduledFailureType) { 256 case BlockedFailure: 257 m_scheduledFailureType = NoFailure; 258 if (m_client) 259 m_client->wasBlocked(); 260 return; 261 case InvalidURLFailure: 262 m_scheduledFailureType = NoFailure; 263 if (m_client) 264 m_client->cannotShowURL(); 265 return; 266 case NoFailure: 267 ASSERT_NOT_REACHED(); 268 break; 269 } 270 ASSERT_NOT_REACHED(); 271 } 272 273 void NetworkDataTask::setPendingDownloadLocation(const WTF::String& filename, const SandboxExtension::Handle& sandboxExtensionHandle, bool allowOverwrite) 274 { 231 232 void NetworkDataTaskCocoa::setPendingDownloadLocation(const WTF::String& filename, const SandboxExtension::Handle& sandboxExtensionHandle, bool allowOverwrite) 233 { 234 NetworkDataTask::setPendingDownloadLocation(filename, sandboxExtensionHandle, allowOverwrite); 235 275 236 ASSERT(!m_sandboxExtension); 276 237 m_sandboxExtension = SandboxExtension::create(sandboxExtensionHandle); … … 278 239 m_sandboxExtension->consume(); 279 240 280 m_pendingDownloadLocation = filename; 281 m_task.get()._pathToDownloadTaskFile = filename; 282 283 if (allowOverwrite && WebCore::fileExists(filename)) 241 m_task.get()._pathToDownloadTaskFile = m_pendingDownloadLocation; 242 243 if (allowOverwrite && WebCore::fileExists(m_pendingDownloadLocation)) 284 244 WebCore::deleteFile(filename); 285 245 } 286 246 287 bool NetworkDataTask ::tryPasswordBasedAuthentication(const WebCore::AuthenticationChallenge& challenge, const ChallengeCompletionHandler& completionHandler)247 bool NetworkDataTaskCocoa::tryPasswordBasedAuthentication(const WebCore::AuthenticationChallenge& challenge, const ChallengeCompletionHandler& completionHandler) 288 248 { 289 249 if (!challenge.protectionSpace().isPasswordBased()) … … 330 290 } 331 291 332 void NetworkDataTask ::transferSandboxExtensionToDownload(Download& download)292 void NetworkDataTaskCocoa::transferSandboxExtensionToDownload(Download& download) 333 293 { 334 294 download.setSandboxExtension(WTFMove(m_sandboxExtension)); … … 357 317 } 358 318 359 bool NetworkDataTask ::allowsSpecificHTTPSCertificateForHost(const WebCore::AuthenticationChallenge& challenge)319 bool NetworkDataTaskCocoa::allowsSpecificHTTPSCertificateForHost(const WebCore::AuthenticationChallenge& challenge) 360 320 { 361 321 const String& host = challenge.protectionSpace().host(); … … 375 335 } 376 336 377 String NetworkDataTask ::suggestedFilename()337 String NetworkDataTaskCocoa::suggestedFilename() const 378 338 { 379 339 if (!m_suggestedFilename.isEmpty()) … … 382 342 } 383 343 384 void NetworkDataTask::setSuggestedFilename(const String& suggestedName) 385 { 386 m_suggestedFilename = suggestedName; 387 } 388 389 void NetworkDataTask::cancel() 344 void NetworkDataTaskCocoa::cancel() 390 345 { 391 346 [m_task cancel]; 392 347 } 393 348 394 void NetworkDataTask ::resume()349 void NetworkDataTaskCocoa::resume() 395 350 { 396 351 if (m_scheduledFailureType != NoFailure) … … 399 354 } 400 355 401 void NetworkDataTask ::suspend()356 void NetworkDataTaskCocoa::suspend() 402 357 { 403 358 if (m_failureTimer.isActive()) … … 406 361 } 407 362 408 NetworkDataTask::State NetworkDataTask ::state() const363 NetworkDataTask::State NetworkDataTaskCocoa::state() const 409 364 { 410 365 switch ([m_task state]) { -
trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm
r206604 r207813 30 30 #import "NetworkProcessCreationParameters.h" 31 31 #import "NetworkResourceLoader.h" 32 #import "NetworkSession .h"32 #import "NetworkSessionCocoa.h" 33 33 #import "SandboxExtension.h" 34 34 #import "SessionTracker.h" … … 86 86 87 87 #if USE(NETWORK_SESSION) 88 NetworkSession ::setSourceApplicationAuditTokenData(sourceApplicationAuditData());89 NetworkSession ::setSourceApplicationBundleIdentifier(parameters.sourceApplicationBundleIdentifier);90 NetworkSession ::setSourceApplicationSecondaryIdentifier(parameters.sourceApplicationSecondaryIdentifier);91 #if PLATFORM(IOS) 92 NetworkSession ::setCTDataConnectionServiceType(parameters.ctDataConnectionServiceType);88 NetworkSessionCocoa::setSourceApplicationAuditTokenData(sourceApplicationAuditData()); 89 NetworkSessionCocoa::setSourceApplicationBundleIdentifier(parameters.sourceApplicationBundleIdentifier); 90 NetworkSessionCocoa::setSourceApplicationSecondaryIdentifier(parameters.sourceApplicationSecondaryIdentifier); 91 #if PLATFORM(IOS) 92 NetworkSessionCocoa::setCTDataConnectionServiceType(parameters.ctDataConnectionServiceType); 93 93 #endif 94 94 #endif -
trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.h
r207812 r207813 1 1 /* 2 * Copyright (C) 201 5Apple Inc. All rights reserved.2 * Copyright (C) 2016 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 28 28 #if USE(NETWORK_SESSION) 29 29 30 #if PLATFORM(COCOA)31 30 OBJC_CLASS NSURLSession; 32 31 OBJC_CLASS NSOperationQueue; 33 32 OBJC_CLASS WKNetworkSessionDelegate; 34 #endif35 33 36 34 #include "DownloadID.h" 37 #include "NetworkDataTask .h"38 #include <WebCore/SessionID.h>35 #include "NetworkDataTaskCocoa.h" 36 #include "NetworkSession.h" 39 37 #include <wtf/HashMap.h> 40 #include <wtf/HashSet.h>41 #include <wtf/Ref.h>42 #include <wtf/RefCounted.h>43 44 #if USE(SOUP)45 typedef struct _SoupSession SoupSession;46 #endif47 48 namespace WebCore {49 class NetworkStorageSession;50 }51 38 52 39 namespace WebKit { 53 40 54 class CustomProtocolManager; 41 class NetworkSessionCocoa final : public NetworkSession { 42 friend class NetworkDataTaskCocoa; 43 public: 44 static Ref<NetworkSession> create(WebCore::SessionID, CustomProtocolManager*); 45 static NetworkSession& defaultSession(); 46 ~NetworkSessionCocoa(); 55 47 56 class NetworkSession : public RefCounted<NetworkSession> {57 friend class NetworkDataTask;58 public:59 enum class Type {60 Normal,61 Ephemeral62 };63 64 static Ref<NetworkSession> create(Type, WebCore::SessionID, CustomProtocolManager*);65 static NetworkSession& defaultSession();66 ~NetworkSession();67 68 void invalidateAndCancel();69 70 WebCore::SessionID sessionID() const { return m_sessionID; }71 72 #if USE(SOUP)73 SoupSession* soupSession() const;74 #endif75 76 #if PLATFORM(COCOA)77 48 // Must be called before any NetworkSession has been created. 78 49 static void setCustomProtocolManager(CustomProtocolManager*); … … 83 54 static void setCTDataConnectionServiceType(const String&); 84 55 #endif 85 #endif86 56 87 void clearCredentials(); 88 #if PLATFORM(COCOA) 89 NetworkDataTask* dataTaskForIdentifier(NetworkDataTask::TaskIdentifier, WebCore::StoredCredentials); 57 NetworkDataTaskCocoa* dataTaskForIdentifier(NetworkDataTaskCocoa::TaskIdentifier, WebCore::StoredCredentials); 90 58 91 void addDownloadID(NetworkDataTask::TaskIdentifier, DownloadID); 92 DownloadID downloadID(NetworkDataTask::TaskIdentifier); 93 DownloadID takeDownloadID(NetworkDataTask::TaskIdentifier); 94 #endif 59 void addDownloadID(NetworkDataTaskCocoa::TaskIdentifier, DownloadID); 60 DownloadID downloadID(NetworkDataTaskCocoa::TaskIdentifier); 61 DownloadID takeDownloadID(NetworkDataTaskCocoa::TaskIdentifier); 95 62 96 63 private: 97 NetworkSession(Type, WebCore::SessionID, CustomProtocolManager*); 98 WebCore::NetworkStorageSession& networkStorageSession() const; 64 NetworkSessionCocoa(WebCore::SessionID, CustomProtocolManager*); 99 65 100 WebCore::SessionID m_sessionID; 66 void invalidateAndCancel() override; 67 void clearCredentials() override; 101 68 102 #if PLATFORM(COCOA) 103 HashMap<NetworkDataTask::TaskIdentifier, NetworkDataTask*> m_dataTaskMapWithCredentials; 104 HashMap<NetworkDataTask::TaskIdentifier, NetworkDataTask*> m_dataTaskMapWithoutCredentials; 105 HashMap<NetworkDataTask::TaskIdentifier, DownloadID> m_downloadMap; 69 HashMap<NetworkDataTaskCocoa::TaskIdentifier, NetworkDataTaskCocoa*> m_dataTaskMapWithCredentials; 70 HashMap<NetworkDataTaskCocoa::TaskIdentifier, NetworkDataTaskCocoa*> m_dataTaskMapWithoutCredentials; 71 HashMap<NetworkDataTaskCocoa::TaskIdentifier, DownloadID> m_downloadMap; 106 72 107 73 RetainPtr<NSURLSession> m_sessionWithCredentialStorage; … … 109 75 RetainPtr<NSURLSession> m_sessionWithoutCredentialStorage; 110 76 RetainPtr<WKNetworkSessionDelegate> m_sessionWithoutCredentialStorageDelegate; 111 #elif USE(SOUP)112 HashSet<NetworkDataTask*> m_dataTaskSet;113 #endif114 77 }; 115 78 -
trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm
r207586 r207813 25 25 26 26 #import "config.h" 27 #import "NetworkSession .h"27 #import "NetworkSessionCocoa.h" 28 28 29 29 #if USE(NETWORK_SESSION) … … 83 83 84 84 @interface WKNetworkSessionDelegate : NSObject <NSURLSessionDataDelegate> { 85 RefPtr<WebKit::NetworkSession > _session;85 RefPtr<WebKit::NetworkSessionCocoa> _session; 86 86 bool _withCredentials; 87 87 } 88 88 89 - (id)initWithNetworkSession:(WebKit::NetworkSession &)session withCredentials:(bool)withCredentials;89 - (id)initWithNetworkSession:(WebKit::NetworkSessionCocoa&)session withCredentials:(bool)withCredentials; 90 90 91 91 @end … … 93 93 @implementation WKNetworkSessionDelegate 94 94 95 - (id)initWithNetworkSession:(WebKit::NetworkSession &)session withCredentials:(bool)withCredentials95 - (id)initWithNetworkSession:(WebKit::NetworkSessionCocoa&)session withCredentials:(bool)withCredentials 96 96 { 97 97 self = [super init]; … … 297 297 auto storedCredentials = _withCredentials ? WebCore::StoredCredentials::AllowStoredCredentials : WebCore::StoredCredentials::DoNotAllowStoredCredentials; 298 298 if (auto* networkDataTask = _session->dataTaskForIdentifier([dataTask taskIdentifier], storedCredentials)) { 299 Ref<NetworkDataTask > protectedNetworkDataTask(*networkDataTask);299 Ref<NetworkDataTaskCocoa> protectedNetworkDataTask(*networkDataTask); 300 300 auto downloadID = networkDataTask->pendingDownloadID(); 301 301 auto& downloadManager = WebKit::NetworkProcess::singleton().downloadManager(); … … 315 315 namespace WebKit { 316 316 317 static NSURLSessionConfiguration *configurationForType(NetworkSession::Type type) 318 { 319 switch (type) { 320 case NetworkSession::Type::Normal: 321 return [NSURLSessionConfiguration defaultSessionConfiguration]; 322 case NetworkSession::Type::Ephemeral: 317 static NSURLSessionConfiguration *configurationForSessionID(const WebCore::SessionID& session) 318 { 319 if (session.isEphemeral()) 323 320 return [NSURLSessionConfiguration ephemeralSessionConfiguration]; 324 }321 return [NSURLSessionConfiguration defaultSessionConfiguration]; 325 322 } 326 323 … … 361 358 #endif 362 359 363 void NetworkSession ::setCustomProtocolManager(CustomProtocolManager* customProtocolManager)360 void NetworkSessionCocoa::setCustomProtocolManager(CustomProtocolManager* customProtocolManager) 364 361 { 365 362 ASSERT(!sessionsCreated); … … 367 364 } 368 365 369 void NetworkSession ::setSourceApplicationAuditTokenData(RetainPtr<CFDataRef>&& data)366 void NetworkSessionCocoa::setSourceApplicationAuditTokenData(RetainPtr<CFDataRef>&& data) 370 367 { 371 368 ASSERT(!sessionsCreated); … … 373 370 } 374 371 375 void NetworkSession ::setSourceApplicationBundleIdentifier(const String& identifier)372 void NetworkSessionCocoa::setSourceApplicationBundleIdentifier(const String& identifier) 376 373 { 377 374 ASSERT(!sessionsCreated); … … 379 376 } 380 377 381 void NetworkSession ::setSourceApplicationSecondaryIdentifier(const String& identifier)378 void NetworkSessionCocoa::setSourceApplicationSecondaryIdentifier(const String& identifier) 382 379 { 383 380 ASSERT(!sessionsCreated); … … 386 383 387 384 #if PLATFORM(IOS) 388 void NetworkSession ::setCTDataConnectionServiceType(const String& type)385 void NetworkSessionCocoa::setCTDataConnectionServiceType(const String& type) 389 386 { 390 387 ASSERT(!sessionsCreated); … … 393 390 #endif 394 391 395 Ref<NetworkSession> NetworkSession ::create(Type type,WebCore::SessionID sessionID, CustomProtocolManager* customProtocolManager)396 { 397 return adoptRef(*new NetworkSession (type,sessionID, customProtocolManager));398 } 399 400 NetworkSession& NetworkSession ::defaultSession()392 Ref<NetworkSession> NetworkSessionCocoa::create(WebCore::SessionID sessionID, CustomProtocolManager* customProtocolManager) 393 { 394 return adoptRef(*new NetworkSessionCocoa(sessionID, customProtocolManager)); 395 } 396 397 NetworkSession& NetworkSessionCocoa::defaultSession() 401 398 { 402 399 ASSERT(isMainThread()); 403 static NetworkSession* session = &NetworkSession ::create(NetworkSession::Type::Normal,WebCore::SessionID::defaultSessionID(), globalCustomProtocolManager().get()).leakRef();400 static NetworkSession* session = &NetworkSessionCocoa::create(WebCore::SessionID::defaultSessionID(), globalCustomProtocolManager().get()).leakRef(); 404 401 return *session; 405 402 } 406 403 407 NetworkSession ::NetworkSession(Type type,WebCore::SessionID sessionID, CustomProtocolManager* customProtocolManager)408 : m_sessionID(sessionID)404 NetworkSessionCocoa::NetworkSessionCocoa(WebCore::SessionID sessionID, CustomProtocolManager* customProtocolManager) 405 : NetworkSession(sessionID) 409 406 { 410 407 relaxAdoptionRequirement(); … … 414 411 #endif 415 412 416 NSURLSessionConfiguration *configuration = configurationFor Type(type);413 NSURLSessionConfiguration *configuration = configurationForSessionID(m_sessionID); 417 414 418 415 if (NetworkCache::singleton().isEnabled()) … … 446 443 447 444 if (sessionID == WebCore::SessionID::defaultSessionID()) { 448 ASSERT(type == Type::Normal);449 445 if (CFHTTPCookieStorageRef storage = WebCore::NetworkStorageSession::defaultStorageSession().cookieStorage().get()) 450 446 configuration.HTTPCookieStorage = [[[NSHTTPCookieStorage alloc] _initWithCFHTTPCookieStorage:storage] autorelease]; 451 447 } else { 452 ASSERT(type == Type::Ephemeral);453 448 auto* storageSession = WebCore::NetworkStorageSession::storageSession(sessionID); 454 449 RELEASE_ASSERT(storageSession); … … 466 461 } 467 462 468 NetworkSession ::~NetworkSession()469 { 470 } 471 472 void NetworkSession ::invalidateAndCancel()463 NetworkSessionCocoa::~NetworkSessionCocoa() 464 { 465 } 466 467 void NetworkSessionCocoa::invalidateAndCancel() 473 468 { 474 469 [m_sessionWithCredentialStorage invalidateAndCancel]; … … 477 472 478 473 479 WebCore::NetworkStorageSession& NetworkSession::networkStorageSession() const 480 { 481 auto* storageSession = WebCore::NetworkStorageSession::storageSession(m_sessionID); 482 RELEASE_ASSERT(storageSession); 483 return *storageSession; 484 } 485 486 void NetworkSession::clearCredentials() 474 void NetworkSessionCocoa::clearCredentials() 487 475 { 488 476 #if !USE(CREDENTIAL_STORAGE_WITH_NETWORK_SESSION) … … 496 484 } 497 485 498 NetworkDataTask * NetworkSession::dataTaskForIdentifier(NetworkDataTask::TaskIdentifier taskIdentifier, WebCore::StoredCredentials storedCredentials)486 NetworkDataTaskCocoa* NetworkSessionCocoa::dataTaskForIdentifier(NetworkDataTaskCocoa::TaskIdentifier taskIdentifier, WebCore::StoredCredentials storedCredentials) 499 487 { 500 488 ASSERT(isMainThread()); … … 504 492 } 505 493 506 void NetworkSession ::addDownloadID(NetworkDataTask::TaskIdentifier taskIdentifier, DownloadID downloadID)494 void NetworkSessionCocoa::addDownloadID(NetworkDataTaskCocoa::TaskIdentifier taskIdentifier, DownloadID downloadID) 507 495 { 508 496 #ifndef NDEBUG … … 514 502 } 515 503 516 DownloadID NetworkSession ::downloadID(NetworkDataTask::TaskIdentifier taskIdentifier)504 DownloadID NetworkSessionCocoa::downloadID(NetworkDataTaskCocoa::TaskIdentifier taskIdentifier) 517 505 { 518 506 ASSERT(m_downloadMap.get(taskIdentifier).downloadID()); … … 520 508 } 521 509 522 DownloadID NetworkSession ::takeDownloadID(NetworkDataTask::TaskIdentifier taskIdentifier)510 DownloadID NetworkSessionCocoa::takeDownloadID(NetworkDataTaskCocoa::TaskIdentifier taskIdentifier) 523 511 { 524 512 auto downloadID = m_downloadMap.take(taskIdentifier); -
trunk/Source/WebKit2/NetworkProcess/mac/RemoteNetworkingContext.mm
r204466 r207813 96 96 97 97 #if USE(NETWORK_SESSION) 98 auto networkSession = NetworkSession::create( NetworkSession::Type::Ephemeral,sessionID, NetworkProcess::singleton().supplement<CustomProtocolManager>());98 auto networkSession = NetworkSession::create(sessionID, NetworkProcess::singleton().supplement<CustomProtocolManager>()); 99 99 SessionTracker::setSession(sessionID, WTFMove(networkSession)); 100 100 #endif -
trunk/Source/WebKit2/NetworkProcess/soup/NetworkDataTaskSoup.cpp
r207586 r207813 25 25 26 26 #include "config.h" 27 #include "NetworkDataTask .h"27 #include "NetworkDataTaskSoup.h" 28 28 29 29 #include "AuthenticationManager.h" … … 33 33 #include "NetworkLoad.h" 34 34 #include "NetworkProcess.h" 35 #include "NetworkSession .h"35 #include "NetworkSessionSoup.h" 36 36 #include "WebErrors.h" 37 37 #include <WebCore/AuthenticationChallenge.h> … … 48 48 static const size_t gDefaultReadBufferSize = 8192; 49 49 50 NetworkDataTask::NetworkDataTask(NetworkSession& session, NetworkDataTaskClient& client, const ResourceRequest& requestWithCredentials, StoredCredentials storedCredentials, ContentSniffingPolicy shouldContentSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect) 51 : m_failureTimer(*this, &NetworkDataTask::failureTimerFired) 52 , m_session(&session) 53 , m_client(&client) 54 , m_storedCredentials(storedCredentials) 55 , m_lastHTTPMethod(requestWithCredentials.httpMethod()) 56 , m_firstRequest(requestWithCredentials) 57 , m_shouldClearReferrerOnHTTPSToHTTPRedirect(shouldClearReferrerOnHTTPSToHTTPRedirect) 50 NetworkDataTaskSoup::NetworkDataTaskSoup(NetworkSession& session, NetworkDataTaskClient& client, const ResourceRequest& requestWithCredentials, StoredCredentials storedCredentials, ContentSniffingPolicy shouldContentSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect) 51 : NetworkDataTask(session, client, requestWithCredentials, storedCredentials, shouldClearReferrerOnHTTPSToHTTPRedirect) 58 52 , m_shouldContentSniff(shouldContentSniff) 59 , m_timeoutSource(RunLoop::main(), this, &NetworkDataTask::timeoutFired) 60 { 61 ASSERT(isMainThread()); 62 63 m_session->m_dataTaskSet.add(this); 64 65 if (!requestWithCredentials.url().isValid()) { 66 scheduleFailure(InvalidURLFailure); 67 return; 68 } 69 70 if (!portAllowed(requestWithCredentials.url())) { 71 scheduleFailure(BlockedFailure); 72 return; 73 } 53 , m_timeoutSource(RunLoop::main(), this, &NetworkDataTaskSoup::timeoutFired) 54 { 55 static_cast<NetworkSessionSoup&>(m_session.get()).registerNetworkDataTask(*this); 56 if (m_scheduledFailureType != NoFailure) 57 return; 74 58 75 59 auto request = requestWithCredentials; … … 94 78 } 95 79 96 NetworkDataTask::~NetworkDataTask() 97 { 98 ASSERT(isMainThread()); 99 ASSERT(!m_client); 80 NetworkDataTaskSoup::~NetworkDataTaskSoup() 81 { 100 82 clearRequest(); 101 m_session->m_dataTaskSet.remove(this); 102 } 103 104 void NetworkDataTask::scheduleFailure(FailureType type) 105 { 106 ASSERT(type != NoFailure); 107 m_scheduledFailureType = type; 108 m_failureTimer.startOneShot(0); 109 } 110 111 void NetworkDataTask::failureTimerFired() 112 { 113 RefPtr<NetworkDataTask> protectedThis(this); 114 115 switch (m_scheduledFailureType) { 116 case BlockedFailure: 117 m_scheduledFailureType = NoFailure; 118 if (m_client) 119 m_client->wasBlocked(); 120 return; 121 case InvalidURLFailure: 122 m_scheduledFailureType = NoFailure; 123 if (m_client) 124 m_client->cannotShowURL(); 125 return; 126 case NoFailure: 127 ASSERT_NOT_REACHED(); 128 break; 129 } 130 ASSERT_NOT_REACHED(); 131 } 132 133 String NetworkDataTask::suggestedFilename() 83 static_cast<NetworkSessionSoup&>(m_session.get()).unregisterNetworkDataTask(*this); 84 } 85 86 String NetworkDataTaskSoup::suggestedFilename() const 134 87 { 135 88 if (!m_suggestedFilename.isEmpty()) … … 143 96 } 144 97 145 void NetworkDataTask::setSuggestedFilename(const String& suggestedName) 146 { 147 m_suggestedFilename = suggestedName; 148 } 149 150 void NetworkDataTask::setPendingDownloadLocation(const String& filename, const SandboxExtension::Handle&, bool allowOverwrite) 151 { 152 m_pendingDownloadLocation = filename; 98 void NetworkDataTaskSoup::setPendingDownloadLocation(const String& filename, const SandboxExtension::Handle& sandboxExtensionHandle, bool allowOverwrite) 99 { 100 NetworkDataTask::setPendingDownloadLocation(filename, sandboxExtensionHandle, allowOverwrite); 153 101 m_allowOverwriteDownload = allowOverwrite; 154 102 } 155 103 156 bool NetworkDataTask::allowsSpecificHTTPSCertificateForHost(const AuthenticationChallenge&) 157 { 158 return false; 159 } 160 161 void NetworkDataTask::createRequest(const ResourceRequest& request) 104 void NetworkDataTaskSoup::createRequest(const ResourceRequest& request) 162 105 { 163 106 GUniquePtr<SoupURI> soupURI = request.createSoupURI(); … … 167 110 } 168 111 169 GRefPtr<SoupRequest> soupRequest = adoptGRef(soup_session_request_uri( m_session->soupSession(), soupURI.get(), nullptr));112 GRefPtr<SoupRequest> soupRequest = adoptGRef(soup_session_request_uri(static_cast<NetworkSessionSoup&>(m_session.get()).soupSession(), soupURI.get(), nullptr)); 170 113 if (!soupRequest) { 171 114 scheduleFailure(InvalidURLFailure); … … 219 162 g_signal_connect(m_soupMessage.get(), "got-headers", G_CALLBACK(gotHeadersCallback), this); 220 163 g_signal_connect(m_soupMessage.get(), "wrote-body-data", G_CALLBACK(wroteBodyDataCallback), this); 221 g_signal_connect( m_session->soupSession(), "authenticate", G_CALLBACK(authenticateCallback), this);164 g_signal_connect(static_cast<NetworkSessionSoup&>(m_session.get()).soupSession(), "authenticate", G_CALLBACK(authenticateCallback), this); 222 165 #if ENABLE(WEB_TIMING) 223 166 g_signal_connect(m_soupMessage.get(), "network-event", G_CALLBACK(networkEventCallback), this); … … 226 169 g_signal_connect(m_soupMessage.get(), "starting", G_CALLBACK(startingCallback), this); 227 170 #else 228 g_signal_connect( m_session->soupSession(), "request-started", G_CALLBACK(requestStartedCallback), this);171 g_signal_connect(static_cast<NetworkSessionSoup&>(m_session.get()).soupSession(), "request-started", G_CALLBACK(requestStartedCallback), this); 229 172 #endif 230 173 #endif 231 174 } 232 175 233 void NetworkDataTask ::clearRequest()176 void NetworkDataTaskSoup::clearRequest() 234 177 { 235 178 if (m_state == State::Completed) … … 248 191 if (m_soupMessage) { 249 192 g_signal_handlers_disconnect_matched(m_soupMessage.get(), G_SIGNAL_MATCH_DATA, 0, 0, nullptr, nullptr, this); 250 soup_session_cancel_message( m_session->soupSession(), m_soupMessage.get(), SOUP_STATUS_CANCELLED);193 soup_session_cancel_message(static_cast<NetworkSessionSoup&>(m_session.get()).soupSession(), m_soupMessage.get(), SOUP_STATUS_CANCELLED); 251 194 m_soupMessage = nullptr; 252 195 } 253 g_signal_handlers_disconnect_matched( m_session->soupSession(), G_SIGNAL_MATCH_DATA, 0, 0, nullptr, nullptr, this);254 } 255 256 void NetworkDataTask ::resume()196 g_signal_handlers_disconnect_matched(static_cast<NetworkSessionSoup&>(m_session.get()).soupSession(), G_SIGNAL_MATCH_DATA, 0, 0, nullptr, nullptr, this); 197 } 198 199 void NetworkDataTaskSoup::resume() 257 200 { 258 201 ASSERT(m_state != State::Running); … … 269 212 startTimeout(); 270 213 271 RefPtr<NetworkDataTask > protectedThis(this);214 RefPtr<NetworkDataTaskSoup> protectedThis(this); 272 215 if (m_soupRequest && !m_cancellable) { 273 216 m_cancellable = adoptGRef(g_cancellable_new()); … … 289 232 } 290 233 291 void NetworkDataTask ::suspend()234 void NetworkDataTaskSoup::suspend() 292 235 { 293 236 ASSERT(m_state != State::Suspended); … … 299 242 } 300 243 301 void NetworkDataTask ::cancel()244 void NetworkDataTaskSoup::cancel() 302 245 { 303 246 if (m_state == State::Canceling || m_state == State::Completed) … … 307 250 308 251 if (m_soupMessage) 309 soup_session_cancel_message( m_session->soupSession(), m_soupMessage.get(), SOUP_STATUS_CANCELLED);252 soup_session_cancel_message(static_cast<NetworkSessionSoup&>(m_session.get()).soupSession(), m_soupMessage.get(), SOUP_STATUS_CANCELLED); 310 253 311 254 g_cancellable_cancel(m_cancellable.get()); … … 315 258 } 316 259 317 void NetworkDataTask ::invalidateAndCancel()260 void NetworkDataTaskSoup::invalidateAndCancel() 318 261 { 319 262 cancel(); … … 321 264 } 322 265 323 NetworkDataTask::State NetworkDataTask ::state() const266 NetworkDataTask::State NetworkDataTaskSoup::state() const 324 267 { 325 268 return m_state; 326 269 } 327 270 328 void NetworkDataTask ::timeoutFired()271 void NetworkDataTaskSoup::timeoutFired() 329 272 { 330 273 if (m_state == State::Canceling || m_state == State::Completed || !m_client) { … … 333 276 } 334 277 335 RefPtr<NetworkDataTask > protectedThis(this);278 RefPtr<NetworkDataTaskSoup> protectedThis(this); 336 279 invalidateAndCancel(); 337 280 m_client->didCompleteWithError(ResourceError::timeoutError(m_firstRequest.url())); 338 281 } 339 282 340 void NetworkDataTask ::startTimeout()283 void NetworkDataTaskSoup::startTimeout() 341 284 { 342 285 if (m_firstRequest.timeoutInterval() > 0) … … 344 287 } 345 288 346 void NetworkDataTask ::stopTimeout()289 void NetworkDataTaskSoup::stopTimeout() 347 290 { 348 291 m_timeoutSource.stop(); 349 292 } 350 293 351 void NetworkDataTask ::sendRequestCallback(SoupRequest* soupRequest, GAsyncResult* result, NetworkDataTask* task)352 { 353 RefPtr<NetworkDataTask > protectedThis = adoptRef(task);294 void NetworkDataTaskSoup::sendRequestCallback(SoupRequest* soupRequest, GAsyncResult* result, NetworkDataTaskSoup* task) 295 { 296 RefPtr<NetworkDataTaskSoup> protectedThis = adoptRef(task); 354 297 if (task->state() == State::Canceling || task->state() == State::Completed || !task->m_client) { 355 298 task->clearRequest(); … … 372 315 } 373 316 374 void NetworkDataTask ::didSendRequest(GRefPtr<GInputStream>&& inputStream)317 void NetworkDataTaskSoup::didSendRequest(GRefPtr<GInputStream>&& inputStream) 375 318 { 376 319 if (m_soupMessage) { … … 406 349 } 407 350 408 void NetworkDataTask ::didReceiveResponse()351 void NetworkDataTaskSoup::didReceiveResponse() 409 352 { 410 353 ASSERT(!m_response.isNull()); … … 437 380 } 438 381 439 void NetworkDataTask ::tlsErrorsChangedCallback(SoupMessage* soupMessage, GParamSpec*, NetworkDataTask* task)382 void NetworkDataTaskSoup::tlsErrorsChangedCallback(SoupMessage* soupMessage, GParamSpec*, NetworkDataTaskSoup* task) 440 383 { 441 384 if (task->state() == State::Canceling || task->state() == State::Completed || !task->m_client) { … … 448 391 } 449 392 450 void NetworkDataTask ::tlsErrorsChanged()393 void NetworkDataTaskSoup::tlsErrorsChanged() 451 394 { 452 395 ASSERT(m_soupRequest); … … 455 398 return; 456 399 457 RefPtr<NetworkDataTask > protectedThis(this);400 RefPtr<NetworkDataTaskSoup> protectedThis(this); 458 401 invalidateAndCancel(); 459 402 m_client->didCompleteWithError(error); … … 461 404 } 462 405 463 void NetworkDataTask ::applyAuthenticationToRequest(ResourceRequest& request)406 void NetworkDataTaskSoup::applyAuthenticationToRequest(ResourceRequest& request) 464 407 { 465 408 // We always put the credentials into the URL. In the Coca port HTTP family credentials are applied in … … 481 424 } 482 425 483 void NetworkDataTask ::authenticateCallback(SoupSession* session, SoupMessage* soupMessage, SoupAuth* soupAuth, gboolean retrying, NetworkDataTask* task)484 { 485 ASSERT(session == task-> m_session->soupSession());426 void NetworkDataTaskSoup::authenticateCallback(SoupSession* session, SoupMessage* soupMessage, SoupAuth* soupAuth, gboolean retrying, NetworkDataTaskSoup* task) 427 { 428 ASSERT(session == task->static_cast<NetworkSessionSoup&>(m_session.get()).soupSession()); 486 429 if (soupMessage != task->m_soupMessage.get()) 487 430 return; … … 500 443 } 501 444 502 void NetworkDataTask ::authenticate(AuthenticationChallenge&& challenge)445 void NetworkDataTaskSoup::authenticate(AuthenticationChallenge&& challenge) 503 446 { 504 447 ASSERT(m_soupMessage); … … 526 469 } 527 470 528 soup_session_pause_message( m_session->soupSession(), m_soupMessage.get());471 soup_session_pause_message(static_cast<NetworkSessionSoup&>(m_session.get()).soupSession(), m_soupMessage.get()); 529 472 530 473 // We could also do this before we even start the request, but that would be at the expense … … 548 491 } 549 492 550 void NetworkDataTask ::continueAuthenticate(AuthenticationChallenge&& challenge)493 void NetworkDataTaskSoup::continueAuthenticate(AuthenticationChallenge&& challenge) 551 494 { 552 495 m_client->didReceiveChallenge(challenge, [this, protectedThis = makeRef(*this), challenge](AuthenticationChallengeDisposition disposition, const Credential& credential) { … … 580 523 } 581 524 582 soup_session_unpause_message( m_session->soupSession(), m_soupMessage.get());525 soup_session_unpause_message(static_cast<NetworkSessionSoup&>(m_session.get()).soupSession(), m_soupMessage.get()); 583 526 }); 584 527 } 585 528 586 void NetworkDataTask ::skipInputStreamForRedirectionCallback(GInputStream* inputStream, GAsyncResult* result, NetworkDataTask* task)587 { 588 RefPtr<NetworkDataTask > protectedThis = adoptRef(task);529 void NetworkDataTaskSoup::skipInputStreamForRedirectionCallback(GInputStream* inputStream, GAsyncResult* result, NetworkDataTaskSoup* task) 530 { 531 RefPtr<NetworkDataTaskSoup> protectedThis = adoptRef(task); 589 532 if (task->state() == State::Canceling || task->state() == State::Completed || !task->m_client) { 590 533 task->clearRequest(); … … 603 546 } 604 547 605 void NetworkDataTask ::skipInputStreamForRedirection()548 void NetworkDataTaskSoup::skipInputStreamForRedirection() 606 549 { 607 550 ASSERT(m_inputStream); 608 RefPtr<NetworkDataTask > protectedThis(this);551 RefPtr<NetworkDataTaskSoup> protectedThis(this); 609 552 g_input_stream_skip_async(m_inputStream.get(), gDefaultReadBufferSize, G_PRIORITY_DEFAULT, m_cancellable.get(), 610 553 reinterpret_cast<GAsyncReadyCallback>(skipInputStreamForRedirectionCallback), protectedThis.leakRef()); 611 554 } 612 555 613 void NetworkDataTask ::didFinishSkipInputStreamForRedirection()556 void NetworkDataTaskSoup::didFinishSkipInputStreamForRedirection() 614 557 { 615 558 g_input_stream_close(m_inputStream.get(), nullptr, nullptr); … … 638 581 } 639 582 640 bool NetworkDataTask ::shouldStartHTTPRedirection()583 bool NetworkDataTaskSoup::shouldStartHTTPRedirection() 641 584 { 642 585 ASSERT(m_soupMessage); … … 657 600 } 658 601 659 void NetworkDataTask ::continueHTTPRedirection()602 void NetworkDataTaskSoup::continueHTTPRedirection() 660 603 { 661 604 ASSERT(m_soupMessage); … … 728 671 } 729 672 730 void NetworkDataTask ::readCallback(GInputStream* inputStream, GAsyncResult* result, NetworkDataTask* task)731 { 732 RefPtr<NetworkDataTask > protectedThis = adoptRef(task);673 void NetworkDataTaskSoup::readCallback(GInputStream* inputStream, GAsyncResult* result, NetworkDataTaskSoup* task) 674 { 675 RefPtr<NetworkDataTaskSoup> protectedThis = adoptRef(task); 733 676 if (task->state() == State::Canceling || task->state() == State::Completed || (!task->m_client && !task->isDownload())) { 734 677 task->clearRequest(); … … 753 696 } 754 697 755 void NetworkDataTask ::read()756 { 757 RefPtr<NetworkDataTask > protectedThis(this);698 void NetworkDataTaskSoup::read() 699 { 700 RefPtr<NetworkDataTaskSoup> protectedThis(this); 758 701 ASSERT(m_inputStream); 759 702 m_readBuffer.grow(gDefaultReadBufferSize); … … 762 705 } 763 706 764 void NetworkDataTask ::didRead(gssize bytesRead)707 void NetworkDataTaskSoup::didRead(gssize bytesRead) 765 708 { 766 709 m_readBuffer.shrink(bytesRead); … … 775 718 } 776 719 777 void NetworkDataTask ::didFinishRead()720 void NetworkDataTaskSoup::didFinishRead() 778 721 { 779 722 ASSERT(m_inputStream); … … 795 738 } 796 739 797 void NetworkDataTask ::requestNextPartCallback(SoupMultipartInputStream* multipartInputStream, GAsyncResult* result, NetworkDataTask* task)798 { 799 RefPtr<NetworkDataTask > protectedThis = adoptRef(task);740 void NetworkDataTaskSoup::requestNextPartCallback(SoupMultipartInputStream* multipartInputStream, GAsyncResult* result, NetworkDataTaskSoup* task) 741 { 742 RefPtr<NetworkDataTaskSoup> protectedThis = adoptRef(task); 800 743 if (task->state() == State::Canceling || task->state() == State::Completed || !task->m_client) { 801 744 task->clearRequest(); … … 820 763 } 821 764 822 void NetworkDataTask ::requestNextPart()823 { 824 RefPtr<NetworkDataTask > protectedThis(this);765 void NetworkDataTaskSoup::requestNextPart() 766 { 767 RefPtr<NetworkDataTaskSoup> protectedThis(this); 825 768 ASSERT(m_multipartInputStream); 826 769 ASSERT(!m_inputStream); … … 829 772 } 830 773 831 void NetworkDataTask ::didRequestNextPart(GRefPtr<GInputStream>&& inputStream)774 void NetworkDataTaskSoup::didRequestNextPart(GRefPtr<GInputStream>&& inputStream) 832 775 { 833 776 ASSERT(!m_inputStream); … … 839 782 } 840 783 841 void NetworkDataTask ::didFinishRequestNextPart()784 void NetworkDataTaskSoup::didFinishRequestNextPart() 842 785 { 843 786 ASSERT(!m_inputStream); … … 848 791 } 849 792 850 void NetworkDataTask ::gotHeadersCallback(SoupMessage* soupMessage, NetworkDataTask* task)793 void NetworkDataTaskSoup::gotHeadersCallback(SoupMessage* soupMessage, NetworkDataTaskSoup* task) 851 794 { 852 795 if (task->state() == State::Canceling || task->state() == State::Completed || !task->m_client) { … … 858 801 } 859 802 860 void NetworkDataTask ::didGetHeaders()803 void NetworkDataTaskSoup::didGetHeaders() 861 804 { 862 805 // We are a bit more conservative with the persistent credential storage than the session store, … … 871 814 } 872 815 873 void NetworkDataTask ::wroteBodyDataCallback(SoupMessage* soupMessage, SoupBuffer* buffer, NetworkDataTask* task)816 void NetworkDataTaskSoup::wroteBodyDataCallback(SoupMessage* soupMessage, SoupBuffer* buffer, NetworkDataTaskSoup* task) 874 817 { 875 818 if (task->state() == State::Canceling || task->state() == State::Completed || !task->m_client) { … … 881 824 } 882 825 883 void NetworkDataTask ::didWriteBodyData(uint64_t bytesSent)884 { 885 RefPtr<NetworkDataTask > protectedThis(this);826 void NetworkDataTaskSoup::didWriteBodyData(uint64_t bytesSent) 827 { 828 RefPtr<NetworkDataTaskSoup> protectedThis(this); 886 829 m_bodyDataTotalBytesSent += bytesSent; 887 830 m_client->didSendData(m_bodyDataTotalBytesSent, m_soupMessage->request_body->length); 888 831 } 889 832 890 void NetworkDataTask ::download()833 void NetworkDataTaskSoup::download() 891 834 { 892 835 ASSERT(isDownload()); … … 932 875 } 933 876 934 void NetworkDataTask ::writeDownloadCallback(GOutputStream* outputStream, GAsyncResult* result, NetworkDataTask* task)935 { 936 RefPtr<NetworkDataTask > protectedThis = adoptRef(task);877 void NetworkDataTaskSoup::writeDownloadCallback(GOutputStream* outputStream, GAsyncResult* result, NetworkDataTaskSoup* task) 878 { 879 RefPtr<NetworkDataTaskSoup> protectedThis = adoptRef(task); 937 880 if (task->state() == State::Canceling || task->state() == State::Completed || !task->isDownload()) { 938 881 task->clearRequest(); … … 956 899 } 957 900 958 void NetworkDataTask ::writeDownload()959 { 960 RefPtr<NetworkDataTask > protectedThis(this);901 void NetworkDataTaskSoup::writeDownload() 902 { 903 RefPtr<NetworkDataTaskSoup> protectedThis(this); 961 904 #if GLIB_CHECK_VERSION(2, 44, 0) 962 905 g_output_stream_write_all_async(m_downloadOutputStream.get(), m_readBuffer.data(), m_readBuffer.size(), G_PRIORITY_DEFAULT, m_cancellable.get(), … … 967 910 g_task_set_task_data(writeTask.get(), this, nullptr); 968 911 g_task_run_in_thread(writeTask.get(), [](GTask* writeTask, gpointer source, gpointer userData, GCancellable* cancellable) { 969 auto* task = static_cast<NetworkDataTask *>(userData);912 auto* task = static_cast<NetworkDataTaskSoup*>(userData); 970 913 GOutputStream* outputStream = G_OUTPUT_STREAM(source); 971 914 RELEASE_ASSERT(task->m_downloadOutputStream.get() == outputStream); … … 986 929 } 987 930 988 void NetworkDataTask ::didWriteDownload(gsize bytesWritten)931 void NetworkDataTaskSoup::didWriteDownload(gsize bytesWritten) 989 932 { 990 933 ASSERT(bytesWritten == m_readBuffer.size()); … … 995 938 } 996 939 997 void NetworkDataTask ::didFinishDownload()940 void NetworkDataTaskSoup::didFinishDownload() 998 941 { 999 942 ASSERT(!m_response.isNull()); … … 1022 965 } 1023 966 1024 void NetworkDataTask ::didFailDownload(const ResourceError& error)967 void NetworkDataTaskSoup::didFailDownload(const ResourceError& error) 1025 968 { 1026 969 clearRequest(); … … 1035 978 } 1036 979 1037 void NetworkDataTask ::cleanDownloadFiles()980 void NetworkDataTaskSoup::cleanDownloadFiles() 1038 981 { 1039 982 if (m_downloadDestinationFile) { … … 1047 990 } 1048 991 1049 void NetworkDataTask ::didFail(const ResourceError& error)992 void NetworkDataTaskSoup::didFail(const ResourceError& error) 1050 993 { 1051 994 if (isDownload()) { … … 1060 1003 1061 1004 #if ENABLE(WEB_TIMING) 1062 void NetworkDataTask ::networkEventCallback(SoupMessage* soupMessage, GSocketClientEvent event, GIOStream*, NetworkDataTask* task)1005 void NetworkDataTaskSoup::networkEventCallback(SoupMessage* soupMessage, GSocketClientEvent event, GIOStream*, NetworkDataTaskSoup* task) 1063 1006 { 1064 1007 if (task->state() == State::Canceling || task->state() == State::Completed || !task->m_client) … … 1069 1012 } 1070 1013 1071 void NetworkDataTask ::networkEvent(GSocketClientEvent event)1014 void NetworkDataTaskSoup::networkEvent(GSocketClientEvent event) 1072 1015 { 1073 1016 double deltaTime = monotonicallyIncreasingTimeMS() - m_startTime; … … 1106 1049 1107 1050 #if SOUP_CHECK_VERSION(2, 49, 91) 1108 void NetworkDataTask ::startingCallback(SoupMessage* soupMessage, NetworkDataTask* task)1051 void NetworkDataTaskSoup::startingCallback(SoupMessage* soupMessage, NetworkDataTaskSoup* task) 1109 1052 { 1110 1053 if (task->state() == State::Canceling || task->state() == State::Completed || !task->m_client) … … 1115 1058 } 1116 1059 #else 1117 void NetworkDataTask ::requestStartedCallback(SoupSession* session, SoupMessage* soupMessage, SoupSocket*, NetworkDataTask* task)1118 { 1119 ASSERT(session == task-> m_session->soupSession());1060 void NetworkDataTaskSoup::requestStartedCallback(SoupSession* session, SoupMessage* soupMessage, SoupSocket*, NetworkDataTaskSoup* task) 1061 { 1062 ASSERT(session == task->static_cast<NetworkSessionSoup&>(m_session.get()).soupSession()); 1120 1063 if (soupMessage != task->m_soupMessage.get()) 1121 1064 return; … … 1128 1071 #endif 1129 1072 1130 void NetworkDataTask ::didStartRequest()1073 void NetworkDataTaskSoup::didStartRequest() 1131 1074 { 1132 1075 m_response.networkLoadTiming().requestStart = monotonicallyIncreasingTimeMS() - m_startTime; 1133 1076 } 1134 1077 1135 void NetworkDataTask ::restartedCallback(SoupMessage* soupMessage, NetworkDataTask* task)1078 void NetworkDataTaskSoup::restartedCallback(SoupMessage* soupMessage, NetworkDataTaskSoup* task) 1136 1079 { 1137 1080 // Called each time the message is going to be sent again except the first time. … … 1144 1087 } 1145 1088 1146 void NetworkDataTask ::didRestart()1089 void NetworkDataTaskSoup::didRestart() 1147 1090 { 1148 1091 m_startTime = monotonicallyIncreasingTimeMS(); -
trunk/Source/WebKit2/NetworkProcess/soup/NetworkSessionSoup.cpp
r207586 r207813 25 25 26 26 #include "config.h" 27 #include "NetworkSession .h"27 #include "NetworkSessionSoup.h" 28 28 29 #include "NetworkDataTaskSoup.h" 29 30 #include <WebCore/NetworkStorageSession.h> 30 31 #include <WebCore/SoupNetworkSession.h> … … 35 36 namespace WebKit { 36 37 37 Ref<NetworkSession> NetworkSession::create(Type type, SessionID sessionID, CustomProtocolManager*) 38 { 39 return adoptRef(*new NetworkSession(type, sessionID, nullptr)); 40 } 41 42 NetworkSession& NetworkSession::defaultSession() 43 { 44 ASSERT(isMainThread()); 45 static NetworkSession* session = &NetworkSession::create(NetworkSession::Type::Normal, SessionID::defaultSessionID(), nullptr).leakRef(); 46 return *session; 47 } 48 49 NetworkStorageSession& NetworkSession::networkStorageSession() const 50 { 51 auto* storageSession = NetworkStorageSession::storageSession(m_sessionID); 52 RELEASE_ASSERT(storageSession); 53 return *storageSession; 54 } 55 56 NetworkSession::NetworkSession(Type type, SessionID sessionID, CustomProtocolManager*) 57 : m_sessionID(sessionID) 38 NetworkSessionSoup::NetworkSessionSoup(SessionID sessionID) 39 : NetworkSession(sessionID) 58 40 { 59 41 } 60 42 61 NetworkSession ::~NetworkSession()43 NetworkSessionSoup::~NetworkSessionSoup() 62 44 { 63 45 } 64 46 65 SoupSession* NetworkSession ::soupSession() const47 SoupSession* NetworkSessionSoup::soupSession() const 66 48 { 67 49 return networkStorageSession().soupNetworkSession().soupSession(); 68 50 } 69 51 70 void NetworkSession ::invalidateAndCancel()52 void NetworkSessionSoup::invalidateAndCancel() 71 53 { 72 54 for (auto* task : m_dataTaskSet) … … 74 56 } 75 57 76 void NetworkSession::clearCredentials()77 {78 }79 80 58 } // namespace WebKit -
trunk/Source/WebKit2/NetworkProcess/soup/NetworkSessionSoup.h
r207812 r207813 1 1 /* 2 * Copyright (C) 2013 Apple Inc. All rights reserved. 3 * Copyright (C) 2013 University of Szeged. All rights reserved. 4 * Copyright (C) 2013 Company 100 Inc. 2 * Copyright (C) 2016 Igalia S.L. 5 3 * 6 4 * Redistribution and use in source and binary forms, with or without … … 26 24 */ 27 25 28 #include "config.h" 29 #include "RemoteNetworkingContext.h" 26 #pragma once 30 27 31 28 #include "NetworkSession.h" 32 #include "SessionTracker.h" 33 #include <WebCore/NetworkStorageSession.h> 34 #include <WebCore/NotImplemented.h> 35 #include <WebCore/ResourceHandle.h> 29 #include <wtf/HashSet.h> 36 30 37 using namespace WebCore;31 typedef struct _SoupSession SoupSession; 38 32 39 33 namespace WebKit { 40 34 41 RemoteNetworkingContext::~RemoteNetworkingContext() 42 { 43 } 35 class NetworkDataTaskSoup; 44 36 45 bool RemoteNetworkingContext::isValid() const 46 { 47 return true; 48 } 37 class NetworkSessionSoup final : public NetworkSession { 38 public: 39 static Ref<NetworkSession> create(WebCore::SessionID sessionID) 40 { 41 return adoptRef(*new NetworkSessionSoup(sessionID)); 42 } 43 ~NetworkSessionSoup(); 49 44 50 void RemoteNetworkingContext::ensurePrivateBrowsingSession(SessionID sessionID) 51 { 52 ASSERT(sessionID.isEphemeral()); 45 SoupSession* soupSession() const; 53 46 54 if (NetworkStorageSession::storageSession(sessionID))55 return;47 void registerNetworkDataTask(NetworkDataTaskSoup& task) { m_dataTaskSet.add(&task); } 48 void unregisterNetworkDataTask(NetworkDataTaskSoup& task) { m_dataTaskSet.remove(&task); } 56 49 57 NetworkStorageSession::ensurePrivateBrowsingSession(sessionID, String::number(sessionID.sessionID())); 58 SessionTracker::setSession(sessionID, NetworkSession::create(NetworkSession::Type::Ephemeral, sessionID, nullptr)); 59 } 50 private: 51 NetworkSessionSoup(WebCore::SessionID); 60 52 61 NetworkStorageSession& RemoteNetworkingContext::storageSession() const 62 { 63 if (auto session = NetworkStorageSession::storageSession(m_sessionID)) 64 return *session; 65 return NetworkStorageSession::defaultStorageSession(); 66 } 53 void invalidateAndCancel() override; 67 54 68 } 55 HashSet<NetworkDataTaskSoup*> m_dataTaskSet; 56 }; 57 58 } // namespace WebKit -
trunk/Source/WebKit2/NetworkProcess/soup/RemoteNetworkingContextSoup.cpp
r207586 r207813 56 56 57 57 NetworkStorageSession::ensurePrivateBrowsingSession(sessionID, String::number(sessionID.sessionID())); 58 SessionTracker::setSession(sessionID, NetworkSession::create( NetworkSession::Type::Ephemeral, sessionID, nullptr));58 SessionTracker::setSession(sessionID, NetworkSession::create(sessionID)); 59 59 } 60 60 -
trunk/Source/WebKit2/PlatformEfl.cmake
r207586 r207813 250 250 "${WEBKIT2_DIR}/NetworkProcess/Downloads/soup" 251 251 "${WEBKIT2_DIR}/NetworkProcess/efl" 252 "${WEBKIT2_DIR}/NetworkProcess/soup" 252 253 "${WEBKIT2_DIR}/NetworkProcess/unix" 253 254 "${WEBKIT2_DIR}/Platform/efl" -
trunk/Source/WebKit2/PlatformGTK.cmake
r207586 r207813 846 846 "${WEBKIT2_DIR}/NetworkProcess/Downloads/soup" 847 847 "${WEBKIT2_DIR}/NetworkProcess/gtk" 848 "${WEBKIT2_DIR}/NetworkProcess/soup" 848 849 "${WEBKIT2_DIR}/NetworkProcess/unix" 849 850 "${WEBKIT2_DIR}/Platform/IPC/glib" -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r207585 r207813 1040 1040 52D5A1B11C57496200DE34A3 /* WebVideoFullscreenManagerProxy.mm in Sources */ = {isa = PBXBuildFile; fileRef = 52D5A1AC1C57494E00DE34A3 /* WebVideoFullscreenManagerProxy.mm */; }; 1041 1041 52D5A1B71C574A0200DE34A3 /* WebVideoFullscreenManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 52D5A1B41C5749F200DE34A3 /* WebVideoFullscreenManager.mm */; }; 1042 532159531DBAE7180054AA3C /* NetworkSession.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 532159521DBAE6FC0054AA3C /* NetworkSession.cpp */; }; 1043 532159541DBAE71D0054AA3C /* NetworkDataTask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 532159511DBAE6FC0054AA3C /* NetworkDataTask.cpp */; }; 1044 532159551DBAE7290054AA3C /* NetworkSessionCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 532159501DBAE6D70054AA3C /* NetworkSessionCocoa.h */; }; 1045 532159561DBAE72D0054AA3C /* NetworkDataTaskCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 5321594F1DBAE6D70054AA3C /* NetworkDataTaskCocoa.h */; }; 1042 1046 5C052F261C6D3BD30076E919 /* AuthenticationManagerCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C052F241C6D3AB60076E919 /* AuthenticationManagerCocoa.mm */; }; 1043 1047 5C1426EC1C23F80900D41183 /* NetworkProcessCreationParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C1426E21C23F80500D41183 /* NetworkProcessCreationParameters.cpp */; }; … … 3120 3124 52D5A1B31C5749F200DE34A3 /* WebVideoFullscreenManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebVideoFullscreenManager.messages.in; sourceTree = "<group>"; }; 3121 3125 52D5A1B41C5749F200DE34A3 /* WebVideoFullscreenManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebVideoFullscreenManager.mm; sourceTree = "<group>"; }; 3126 5321594F1DBAE6D70054AA3C /* NetworkDataTaskCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkDataTaskCocoa.h; path = NetworkProcess/cocoa/NetworkDataTaskCocoa.h; sourceTree = "<group>"; }; 3127 532159501DBAE6D70054AA3C /* NetworkSessionCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkSessionCocoa.h; path = NetworkProcess/cocoa/NetworkSessionCocoa.h; sourceTree = "<group>"; }; 3128 532159511DBAE6FC0054AA3C /* NetworkDataTask.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkDataTask.cpp; path = NetworkProcess/NetworkDataTask.cpp; sourceTree = "<group>"; }; 3129 532159521DBAE6FC0054AA3C /* NetworkSession.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkSession.cpp; path = NetworkProcess/NetworkSession.cpp; sourceTree = "<group>"; }; 3122 3130 579D18B71CCFE34B00B1974C /* PhotosSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PhotosSPI.h; sourceTree = "<group>"; }; 3123 3131 5C052F241C6D3AB60076E919 /* AuthenticationManagerCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AuthenticationManagerCocoa.mm; path = Authentication/cocoa/AuthenticationManagerCocoa.mm; sourceTree = "<group>"; }; … … 5436 5444 513A164A1630A9BF005D7D22 /* NetworkConnectionToWebProcess.h */, 5437 5445 513A164B1630A9BF005D7D22 /* NetworkConnectionToWebProcess.messages.in */, 5446 532159511DBAE6FC0054AA3C /* NetworkDataTask.cpp */, 5438 5447 5CBC9B891C6524A500A8FDCF /* NetworkDataTask.h */, 5439 5448 839901FF1BE9A01B000F3653 /* NetworkLoad.cpp */, … … 5454 5463 5C1426E51C23F80500D41183 /* NetworkResourceLoadParameters.cpp */, 5455 5464 5C1426E61C23F80500D41183 /* NetworkResourceLoadParameters.h */, 5465 532159521DBAE6FC0054AA3C /* NetworkSession.cpp */, 5456 5466 5C20CB9E1BB0DD1800895BB1 /* NetworkSession.h */, 5457 5467 5CE85B1F1C88E6430070BFCE /* PingLoad.h */, … … 5846 5856 isa = PBXGroup; 5847 5857 children = ( 5858 5321594F1DBAE6D70054AA3C /* NetworkDataTaskCocoa.h */, 5848 5859 5CBC9B8B1C65257300A8FDCF /* NetworkDataTaskCocoa.mm */, 5849 5860 7EC4F0F918E4A945008056AF /* NetworkProcessCocoa.mm */, 5861 532159501DBAE6D70054AA3C /* NetworkSessionCocoa.h */, 5850 5862 5C20CB9B1BB0DCD200895BB1 /* NetworkSessionCocoa.mm */, 5851 5863 ); … … 8125 8137 1AB474D8184D43FD0051B622 /* WKBundlePageLoaderClient.h in Headers */, 8126 8138 ED82A7F2128C6FAF004477B3 /* WKBundlePageOverlay.h in Headers */, 8139 532159561DBAE72D0054AA3C /* NetworkDataTaskCocoa.h in Headers */, 8127 8140 1AB474EA184D45130051B622 /* WKBundlePagePolicyClient.h in Headers */, 8128 8141 BC1B419811D41D570011E8DD /* WKBundlePagePrivate.h in Headers */, … … 8194 8207 BC06F44E12DBDF3F002D78DE /* WKGeolocationPermissionRequest.h in Headers */, 8195 8208 BC0E619812D6CD120012A72A /* WKGeolocationPosition.h in Headers */, 8209 532159551DBAE7290054AA3C /* NetworkSessionCocoa.h in Headers */, 8196 8210 0FCB4E4F18BBE044000FCFC9 /* WKGeolocationProviderIOS.h in Headers */, 8197 8211 BCC8B374125FB69000DE46A4 /* WKGeometry.h in Headers */, … … 9608 9622 C0337DD1127A2980008FF4F4 /* WebWheelEvent.cpp in Sources */, 9609 9623 868160D0187645570021E79D /* WindowServerConnection.mm in Sources */, 9624 532159531DBAE7180054AA3C /* NetworkSession.cpp in Sources */, 9610 9625 29CD55AB128E294F00133C85 /* WKAccessibilityWebPageObjectBase.mm in Sources */, 9611 9626 29232DF818B2A9AE00D0596F /* WKAccessibilityWebPageObjectIOS.mm in Sources */, … … 9626 9641 1AE00D4C182D6EB000087DD7 /* WKBrowsingContextHandle.mm in Sources */, 9627 9642 BC204EEE11C83EC8008F3375 /* WKBundle.cpp in Sources */, 9643 532159541DBAE71D0054AA3C /* NetworkDataTask.cpp in Sources */, 9628 9644 935EEB9E127761AC003322B8 /* WKBundleBackForwardList.cpp in Sources */, 9629 9645 935EEBA0127761AC003322B8 /* WKBundleBackForwardListItem.cpp in Sources */, -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm
r204365 r207813 61 61 NetworkStorageSession::ensurePrivateBrowsingSession(sessionID, base + '.' + String::number(sessionID.sessionID())); 62 62 #if USE(NETWORK_SESSION) 63 auto networkSession = NetworkSession::create( NetworkSession::Type::Ephemeral, sessionID, nullptr);63 auto networkSession = NetworkSession::create(sessionID); 64 64 SessionTracker::setSession(sessionID, WTFMove(networkSession)); 65 65 #endif -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp
r207586 r207813 51 51 52 52 NetworkStorageSession::ensurePrivateBrowsingSession(sessionID, String::number(sessionID.sessionID())); 53 SessionTracker::setSession(sessionID, NetworkSession::create( NetworkSession::Type::Ephemeral, sessionID, nullptr));53 SessionTracker::setSession(sessionID, NetworkSession::create(sessionID)); 54 54 } 55 55
Note: See TracChangeset
for help on using the changeset viewer.