WebFrameNetworkingContext.cpp [plain text]
#include "config.h"
#include "WebFrameNetworkingContext.h"
#include "NetworkSession.h"
#include "NetworkSessionCreationParameters.h"
#include "SessionTracker.h"
#include "WebFrame.h"
#include "WebPage.h"
#include "WebsiteDataStoreParameters.h"
#include <WebCore/FrameLoader.h>
#include <WebCore/NetworkStorageSession.h>
#include <WebCore/Settings.h>
#include <WebCore/SoupNetworkSession.h>
#include <pal/SessionID.h>
namespace WebKit {
using namespace WebCore;
void WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&& parameters)
{
auto sessionID = parameters.networkSessionParameters.sessionID;
ASSERT(RunLoop::isMain());
if (NetworkStorageSession::storageSession(sessionID))
return;
NetworkStorageSession::ensureSession(sessionID, String::number(sessionID.sessionID()));
SessionTracker::setSession(sessionID, NetworkSession::create(WTFMove(parameters.networkSessionParameters)));
}
WebFrameNetworkingContext::WebFrameNetworkingContext(WebFrame* frame)
: FrameNetworkingContext(frame->coreFrame())
{
}
NetworkStorageSession& WebFrameNetworkingContext::storageSession() const
{
if (frame()) {
if (auto* storageSession = NetworkStorageSession::storageSession(frame()->page()->sessionID()))
return *storageSession;
}
return NetworkStorageSession::defaultStorageSession();
}
WebFrameLoaderClient* WebFrameNetworkingContext::webFrameLoaderClient() const
{
if (!frame())
return nullptr;
return toWebFrameLoaderClient(frame()->loader().client());
}
}