NetworkSession.cpp [plain text]
#include "config.h"
#include "NetworkSession.h"
#if USE(NETWORK_SESSION)
#include "NetworkDataTask.h"
#include <WebCore/NetworkStorageSession.h>
#include <wtf/MainThread.h>
#include <wtf/RunLoop.h>
#if PLATFORM(COCOA)
#include "NetworkSessionCocoa.h"
#endif
#if USE(SOUP)
#include "NetworkSessionSoup.h"
#endif
using namespace WebCore;
namespace WebKit {
Ref<NetworkSession> NetworkSession::create(SessionID sessionID, LegacyCustomProtocolManager* customProtocolManager)
{
#if PLATFORM(COCOA)
return NetworkSessionCocoa::create(sessionID, customProtocolManager);
#endif
#if USE(SOUP)
UNUSED_PARAM(customProtocolManager);
return NetworkSessionSoup::create(sessionID);
#endif
}
NetworkSession& NetworkSession::defaultSession()
{
#if PLATFORM(COCOA)
return NetworkSessionCocoa::defaultSession();
#else
ASSERT(RunLoop::isMain());
static NetworkSession* session = &NetworkSession::create(SessionID::defaultSessionID()).leakRef();
return *session;
#endif
}
NetworkStorageSession& NetworkSession::networkStorageSession() const
{
auto* storageSession = NetworkStorageSession::storageSession(m_sessionID);
RELEASE_ASSERT(storageSession);
return *storageSession;
}
NetworkSession::NetworkSession(SessionID sessionID)
: m_sessionID(sessionID)
{
}
NetworkSession::~NetworkSession()
{
}
void NetworkSession::invalidateAndCancel()
{
for (auto* task : m_dataTaskSet)
task->invalidateAndCancel();
}
}
#endif // USE(NETWORK_SESSION)