diff options
Diffstat (limited to 'Source/WebKit2/WebProcess/WebCoreSupport/soup')
-rw-r--r-- | Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp | 46 | ||||
-rw-r--r-- | Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h | 16 |
2 files changed, 17 insertions, 45 deletions
diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp b/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp index ab482e3b5..a6476f1f1 100644 --- a/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp +++ b/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp @@ -27,54 +27,29 @@ #include "config.h" #include "WebFrameNetworkingContext.h" +#include "NetworkSession.h" #include "SessionTracker.h" #include "WebFrame.h" #include "WebPage.h" -#include <WebCore/CookieJarSoup.h> #include <WebCore/NetworkStorageSession.h> +#include <WebCore/SessionID.h> #include <WebCore/Settings.h> #include <WebCore/SoupNetworkSession.h> -#include <wtf/NeverDestroyed.h> using namespace WebCore; namespace WebKit { -void WebFrameNetworkingContext::ensurePrivateBrowsingSession(uint64_t sessionID) +void WebFrameNetworkingContext::ensurePrivateBrowsingSession(SessionID sessionID) { ASSERT(isMainThread()); + ASSERT(sessionID.isEphemeral()); - if (SessionTracker::session(sessionID)) + if (NetworkStorageSession::storageSession(sessionID)) return; - SessionTracker::setSession(sessionID, NetworkStorageSession::createPrivateBrowsingSession(String::number(sessionID))); -} - -void WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts(HTTPCookieAcceptPolicy policy) -{ - SoupCookieJarAcceptPolicy soupPolicy = SOUP_COOKIE_JAR_ACCEPT_ALWAYS; - switch (policy) { - case HTTPCookieAcceptPolicyAlways: - soupPolicy = SOUP_COOKIE_JAR_ACCEPT_ALWAYS; - break; - case HTTPCookieAcceptPolicyNever: - soupPolicy = SOUP_COOKIE_JAR_ACCEPT_NEVER; - break; - case HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain: - soupPolicy = SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY; - break; - } - - SoupCookieJar* cookieJar = WebCore::soupCookieJar(); - soup_cookie_jar_set_accept_policy(cookieJar, soupPolicy); - - SoupNetworkSession& soupSession = NetworkStorageSession::defaultStorageSession().soupNetworkSession(); - soup_cookie_jar_set_accept_policy(soupSession.cookieJar(), soupPolicy); - - for (const auto& session : SessionTracker::sessionMap().values()) { - if (session) - soup_cookie_jar_set_accept_policy(session->soupNetworkSession().cookieJar(), soupPolicy); - } + NetworkStorageSession::ensurePrivateBrowsingSession(sessionID, String::number(sessionID.sessionID())); + SessionTracker::setSession(sessionID, NetworkSession::create(sessionID)); } WebFrameNetworkingContext::WebFrameNetworkingContext(WebFrame* frame) @@ -84,9 +59,10 @@ WebFrameNetworkingContext::WebFrameNetworkingContext(WebFrame* frame) NetworkStorageSession& WebFrameNetworkingContext::storageSession() const { - if (frame() && frame()->settings().privateBrowsingEnabled()) - return *SessionTracker::session(SessionTracker::legacyPrivateSessionID); - + if (frame()) { + if (auto* storageSession = NetworkStorageSession::storageSession(frame()->page()->sessionID())) + return *storageSession; + } return NetworkStorageSession::defaultStorageSession(); } diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h b/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h index 1ef2a45b9..5dfa8dbb9 100644 --- a/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h +++ b/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h @@ -25,11 +25,10 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef WebFrameNetworkingContext_h -#define WebFrameNetworkingContext_h +#pragma once -#include "HTTPCookieAcceptPolicy.h" #include <WebCore/FrameNetworkingContext.h> +#include <WebCore/SessionID.h> namespace WebKit { @@ -38,22 +37,19 @@ class WebFrameLoaderClient; class WebFrameNetworkingContext : public WebCore::FrameNetworkingContext { public: - static PassRefPtr<WebFrameNetworkingContext> create(WebFrame* frame) + static Ref<WebFrameNetworkingContext> create(WebFrame* frame) { - return adoptRef(new WebFrameNetworkingContext(frame)); + return adoptRef(*new WebFrameNetworkingContext(frame)); } - static void ensurePrivateBrowsingSession(uint64_t sessionID); - static void setCookieAcceptPolicyForAllContexts(HTTPCookieAcceptPolicy); + static void ensurePrivateBrowsingSession(WebCore::SessionID); WebFrameLoaderClient* webFrameLoaderClient() const; private: WebFrameNetworkingContext(WebFrame*); - virtual WebCore::NetworkStorageSession& storageSession() const; + WebCore::NetworkStorageSession& storageSession() const override; }; } - -#endif // WebFrameNetworkingContext_h |