X-Git-Url: https://git.webkit.org/?p=WebKit-https.git;a=blobdiff_plain;f=Source%2FWebKit2%2FNetworkProcess%2Fcocoa%2FNetworkSessionCocoa.mm;h=73371b1b8f8b16fc975b6f7e8edd57d38628e64a;hp=b611371f2a2d0d5ac81d74c482d91abe7ef01c34;hb=3afe212c35b8eabff3b0d822dac605d52fe14d8d;hpb=34a3ba56cf21a2a5fe4e276ddc522932889c3911;ds=inline diff --git a/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm b/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm index b611371f2a2d..73371b1b8f8b 100644 --- a/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm +++ b/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm @@ -28,9 +28,10 @@ #if USE(NETWORK_SESSION) +#import "SessionTracker.h" #import - #import +#import #import #import #import @@ -183,13 +184,17 @@ NetworkSession::NetworkSession(Type type) m_sessionDelegate = adoptNS([[NetworkSessionDelegate alloc] initWithNetworkSession:*this]); NSURLSessionConfiguration *configuration = configurationForType(type); + // FIXME: Use SessionTracker to make sure the correct cookie storage is used once there is more than one NetworkSession. + if (auto* session = SessionTracker::session(WebCore::SessionID::defaultSessionID())) { + if (CFHTTPCookieStorageRef storage = session->cookieStorage().get()) + configuration.HTTPCookieStorage = [[[NSHTTPCookieStorage alloc] _initWithCFHTTPCookieStorage:storage] autorelease]; + } m_session = [NSURLSession sessionWithConfiguration:configuration delegate:static_cast(m_sessionDelegate.get()) delegateQueue:[NSOperationQueue mainQueue]]; } -RefPtr NetworkSession::createDataTaskWithRequest(const WebCore::ResourceRequest& request, NetworkSessionTaskClient& client) +Ref NetworkSession::createDataTaskWithRequest(const WebCore::ResourceRequest& request, NetworkSessionTaskClient& client) { - RefPtr task = adoptRef(new NetworkingDataTask(*this, client, [m_session dataTaskWithRequest:request.nsURLRequest(WebCore::UpdateHTTPBody)])); - return task; + return adoptRef(*new NetworkingDataTask(*this, client, [m_session dataTaskWithRequest:request.nsURLRequest(WebCore::UpdateHTTPBody)])); } NetworkingDataTask* NetworkSession::dataTaskForIdentifier(uint64_t taskIdentifier)