Title: [224791] trunk/Source
Revision
224791
Author
[email protected]
Date
2017-11-13 15:50:47 -0800 (Mon, 13 Nov 2017)

Log Message

Merge NetworkProcess::EnsurePrivateBrowsingSession and NetworkProcess::AddWebsiteDataStore into one message type
https://bugs.webkit.org/show_bug.cgi?id=178751

Reviewed by Brady Eidson.

Source/WebCore:

The creation of private browsing sessions and persistent browsing sessions has evolved to be the same thing
with differences in parameters, like no sandbox extensions or paths to persistent storage locations for private browsing.
These should be united to simplify future development of WebsiteDataStore construction.

* platform/network/NetworkStorageSession.h:
* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::ensurePrivateBrowsingSession): Deleted.
* platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::NetworkStorageSession::ensureSession):
(WebCore::NetworkStorageSession::ensurePrivateBrowsingSession): Deleted.

Source/WebKit:

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::ensureLegacyPrivateBrowsingSession):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::ensurePrivateBrowsingSession): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/RemoteNetworkingContext.h:
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): Deleted.
* Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::legacyPrivateSessionParameters):
* Shared/WebsiteDataStoreParameters.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::pageAddedToProcess):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setPrivateBrowsingEnabled):
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession):
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): Deleted.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setSessionID):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensurePrivateBrowsingSession): Deleted.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

Source/WebKitLegacy/mac:

* WebCoreSupport/WebFrameNetworkingContext.mm:
(WebFrameNetworkingContext::ensurePrivateBrowsingSession):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (224790 => 224791)


--- trunk/Source/WebCore/ChangeLog	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebCore/ChangeLog	2017-11-13 23:50:47 UTC (rev 224791)
@@ -1,3 +1,21 @@
+2017-11-13  Alex Christensen  <[email protected]>
+
+        Merge NetworkProcess::EnsurePrivateBrowsingSession and NetworkProcess::AddWebsiteDataStore into one message type
+        https://bugs.webkit.org/show_bug.cgi?id=178751
+
+        Reviewed by Brady Eidson.
+
+        The creation of private browsing sessions and persistent browsing sessions has evolved to be the same thing
+        with differences in parameters, like no sandbox extensions or paths to persistent storage locations for private browsing.
+        These should be united to simplify future development of WebsiteDataStore construction.
+
+        * platform/network/NetworkStorageSession.h:
+        * platform/network/cf/NetworkStorageSessionCFNet.cpp:
+        (WebCore::NetworkStorageSession::ensurePrivateBrowsingSession): Deleted.
+        * platform/network/soup/NetworkStorageSessionSoup.cpp:
+        (WebCore::NetworkStorageSession::ensureSession):
+        (WebCore::NetworkStorageSession::ensurePrivateBrowsingSession): Deleted.
+
 2017-11-07  Brian Burg  <[email protected]>
 
         Web Automation: inViewCenterPoint should not include topContentInset when computed in viewport coordinates

Modified: trunk/Source/WebCore/platform/network/NetworkStorageSession.h (224790 => 224791)


--- trunk/Source/WebCore/platform/network/NetworkStorageSession.h	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebCore/platform/network/NetworkStorageSession.h	2017-11-13 23:50:47 UTC (rev 224791)
@@ -63,7 +63,6 @@
 public:
     WEBCORE_EXPORT static NetworkStorageSession& defaultStorageSession();
     WEBCORE_EXPORT static NetworkStorageSession* storageSession(PAL::SessionID);
-    WEBCORE_EXPORT static void ensurePrivateBrowsingSession(PAL::SessionID, const String& identifierBase = String());
     WEBCORE_EXPORT static void ensureSession(PAL::SessionID, const String& identifierBase = String());
     WEBCORE_EXPORT static void destroySession(PAL::SessionID);
     WEBCORE_EXPORT static void forEach(const WTF::Function<void(const WebCore::NetworkStorageSession&)>&);

Modified: trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp (224790 => 224791)


--- trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp	2017-11-13 23:50:47 UTC (rev 224791)
@@ -108,12 +108,6 @@
     return *defaultNetworkStorageSession();
 }
 
-void NetworkStorageSession::ensurePrivateBrowsingSession(PAL::SessionID sessionID, const String& identifierBase)
-{
-    ASSERT(sessionID.isEphemeral());
-    ensureSession(sessionID, identifierBase);
-}
-
 void NetworkStorageSession::ensureSession(PAL::SessionID sessionID, const String& identifierBase, RetainPtr<CFHTTPCookieStorageRef>&& cookieStorage)
 {
     auto addResult = globalSessionMap().add(sessionID, nullptr);

Modified: trunk/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp (224790 => 224791)


--- trunk/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp	2017-11-13 23:50:47 UTC (rev 224791)
@@ -79,18 +79,12 @@
     return *defaultSession();
 }
 
-void NetworkStorageSession::ensurePrivateBrowsingSession(PAL::SessionID sessionID, const String&)
+void NetworkStorageSession::ensureSession(PAL::SessionID sessionID, const String&)
 {
-    ASSERT(sessionID != PAL::SessionID::defaultSessionID());
     ASSERT(!globalSessionMap().contains(sessionID));
     globalSessionMap().add(sessionID, std::make_unique<NetworkStorageSession>(sessionID, std::make_unique<SoupNetworkSession>(sessionID)));
 }
 
-void NetworkStorageSession::ensureSession(PAL::SessionID, const String&)
-{
-    // FIXME: Implement
-}
-
 void NetworkStorageSession::switchToNewTestingSession()
 {
     defaultSession() = std::make_unique<NetworkStorageSession>(PAL::SessionID::defaultSessionID(), std::make_unique<SoupNetworkSession>());

Modified: trunk/Source/WebKit/ChangeLog (224790 => 224791)


--- trunk/Source/WebKit/ChangeLog	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/ChangeLog	2017-11-13 23:50:47 UTC (rev 224791)
@@ -1,5 +1,43 @@
 2017-11-13  Alex Christensen  <[email protected]>
 
+        Merge NetworkProcess::EnsurePrivateBrowsingSession and NetworkProcess::AddWebsiteDataStore into one message type
+        https://bugs.webkit.org/show_bug.cgi?id=178751
+
+        Reviewed by Brady Eidson.
+
+        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+        (WebKit::NetworkConnectionToWebProcess::ensureLegacyPrivateBrowsingSession):
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::initializeNetworkProcess):
+        (WebKit::NetworkProcess::ensurePrivateBrowsingSession): Deleted.
+        * NetworkProcess/NetworkProcess.h:
+        * NetworkProcess/NetworkProcess.messages.in:
+        * NetworkProcess/RemoteNetworkingContext.h:
+        * NetworkProcess/mac/RemoteNetworkingContext.mm:
+        (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
+        (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): Deleted.
+        * Shared/WebsiteDataStoreParameters.cpp:
+        (WebKit::WebsiteDataStoreParameters::legacyPrivateSessionParameters):
+        * Shared/WebsiteDataStoreParameters.h:
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled):
+        (WebKit::WebProcessPool::createNewWebProcess):
+        (WebKit::WebProcessPool::pageAddedToProcess):
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::setPrivateBrowsingEnabled):
+        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
+        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
+        (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession):
+        (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): Deleted.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::setSessionID):
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::ensurePrivateBrowsingSession): Deleted.
+        * WebProcess/WebProcess.h:
+        * WebProcess/WebProcess.messages.in:
+
+2017-11-13  Alex Christensen  <[email protected]>
+
         Add logs to debug content extension test failures
         https://bugs.webkit.org/show_bug.cgi?id=179624
 

Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (224790 => 224791)


--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp	2017-11-13 23:50:47 UTC (rev 224791)
@@ -468,7 +468,7 @@
 
 void NetworkConnectionToWebProcess::ensureLegacyPrivateBrowsingSession()
 {
-    NetworkProcess::singleton().ensurePrivateBrowsingSession({ { }, { }, { }, { }, WebsiteDataStore::defaultCacheStoragePerOriginQuota, { }, { PAL::SessionID::legacyPrivateSessionID(), { }, { }, AllowsCellularAccess::Yes }});
+    NetworkProcess::singleton().addWebsiteDataStore(WebsiteDataStoreParameters::legacyPrivateSessionParameters());
 }
 
 } // namespace WebKit

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (224790 => 224791)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2017-11-13 23:50:47 UTC (rev 224791)
@@ -238,7 +238,7 @@
 
     // FIXME: instead of handling this here, a message should be sent later (scales to multiple sessions)
     if (parameters.privateBrowsingEnabled)
-        RemoteNetworkingContext::ensurePrivateBrowsingSession({ { }, { }, { }, { }, WebsiteDataStore::defaultCacheStoragePerOriginQuota, { }, { PAL::SessionID::legacyPrivateSessionID(), { }, { },  AllowsCellularAccess::Yes }});
+        RemoteNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters::legacyPrivateSessionParameters());
 
     if (parameters.shouldUseTestingNetworkSession)
         NetworkStorageSession::switchToNewTestingSession();
@@ -297,11 +297,6 @@
 #endif
 }
 
-void NetworkProcess::ensurePrivateBrowsingSession(WebsiteDataStoreParameters&& parameters)
-{
-    RemoteNetworkingContext::ensurePrivateBrowsingSession(WTFMove(parameters));
-}
-
 void NetworkProcess::addWebsiteDataStore(WebsiteDataStoreParameters&& parameters)
 {
     RemoteNetworkingContext::ensureWebsiteDataStoreSession(WTFMove(parameters));

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (224790 => 224791)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h	2017-11-13 23:50:47 UTC (rev 224791)
@@ -132,7 +132,7 @@
 
     void prefetchDNS(const String&);
 
-    void ensurePrivateBrowsingSession(WebsiteDataStoreParameters&&);
+    void addWebsiteDataStore(WebsiteDataStoreParameters&&);
 
     void grantSandboxExtensionsToStorageProcessForBlobs(const Vector<String>& filenames, Function<void ()>&& completionHandler);
 
@@ -187,7 +187,6 @@
     void didReceiveSyncNetworkProcessMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&);
     void initializeNetworkProcess(NetworkProcessCreationParameters&&);
     void createNetworkConnectionToWebProcess();
-    void addWebsiteDataStore(WebsiteDataStoreParameters&&);
     void destroySession(PAL::SessionID);
 
     void fetchWebsiteData(PAL::SessionID, OptionSet<WebsiteDataType>, OptionSet<WebsiteDataFetchOption>, uint64_t callbackID);

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in (224790 => 224791)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in	2017-11-13 23:50:47 UTC (rev 224791)
@@ -35,7 +35,6 @@
 
     ClearCachedCredentials()
 
-    EnsurePrivateBrowsingSession(struct WebKit::WebsiteDataStoreParameters websiteDataStoreParameters)
     AddWebsiteDataStore(struct WebKit::WebsiteDataStoreParameters websiteDataStoreParameters);
     DestroySession(PAL::SessionID sessionID)
 

Modified: trunk/Source/WebKit/NetworkProcess/RemoteNetworkingContext.h (224790 => 224791)


--- trunk/Source/WebKit/NetworkProcess/RemoteNetworkingContext.h	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/NetworkProcess/RemoteNetworkingContext.h	2017-11-13 23:50:47 UTC (rev 224791)
@@ -43,7 +43,6 @@
     virtual ~RemoteNetworkingContext();
 
     // FIXME: Remove platform-specific code and use SessionTracker.
-    static void ensurePrivateBrowsingSession(WebsiteDataStoreParameters&&);
     static void ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&&);
 
     bool shouldClearReferrerOnHTTPSToHTTPRedirect() const override { return m_shouldClearReferrerOnHTTPSToHTTPRedirect; }

Modified: trunk/Source/WebKit/NetworkProcess/mac/RemoteNetworkingContext.mm (224790 => 224791)


--- trunk/Source/WebKit/NetworkProcess/mac/RemoteNetworkingContext.mm	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/NetworkProcess/mac/RemoteNetworkingContext.mm	2017-11-13 23:50:47 UTC (rev 224791)
@@ -81,32 +81,6 @@
     return WebKit::blockedError(request);
 }
 
-void RemoteNetworkingContext::ensurePrivateBrowsingSession(WebsiteDataStoreParameters&& parameters)
-{
-    auto sessionID = parameters.networkSessionParameters.sessionID;
-    ASSERT(sessionID.isEphemeral());
-
-    if (NetworkStorageSession::storageSession(sessionID))
-        return;
-
-    String base;
-    if (SessionTracker::getIdentifierBase().isNull())
-        base = [[NSBundle mainBundle] bundleIdentifier];
-    else
-        base = SessionTracker::getIdentifierBase();
-
-    NetworkStorageSession::ensurePrivateBrowsingSession(sessionID, base + '.' + String::number(sessionID.sessionID()));
-
-    auto* session = NetworkStorageSession::storageSession(sessionID);
-    for (const auto& cookie : parameters.pendingCookies)
-        session->setCookie(cookie);
-
-#if USE(NETWORK_SESSION)
-    parameters.networkSessionParameters.legacyCustomProtocolManager = NetworkProcess::singleton().supplement<LegacyCustomProtocolManager>();
-    SessionTracker::setSession(sessionID, NetworkSession::create(WTFMove(parameters.networkSessionParameters)));
-#endif
-}
-
 void RemoteNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&& parameters)
 {
     auto sessionID = parameters.networkSessionParameters.sessionID;
@@ -119,7 +93,10 @@
     else
         base = SessionTracker::getIdentifierBase();
 
-    SandboxExtension::consumePermanently(parameters.cookieStoragePathExtensionHandle);
+    if (!sessionID.isEphemeral()) {
+        bool result = SandboxExtension::consumePermanently(parameters.cookieStoragePathExtensionHandle);
+        ASSERT_UNUSED(result, result);
+    }
 
     RetainPtr<CFHTTPCookieStorageRef> uiProcessCookieStorage;
     if (!parameters.uiProcessCookieStorageIdentifier.isEmpty())

Modified: trunk/Source/WebKit/NetworkProcess/soup/RemoteNetworkingContextSoup.cpp (224790 => 224791)


--- trunk/Source/WebKit/NetworkProcess/soup/RemoteNetworkingContextSoup.cpp	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/NetworkProcess/soup/RemoteNetworkingContextSoup.cpp	2017-11-13 23:50:47 UTC (rev 224791)
@@ -48,23 +48,16 @@
     return true;
 }
 
-void RemoteNetworkingContext::ensurePrivateBrowsingSession(WebsiteDataStoreParameters&& parameters)
+void RemoteNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&& parameters)
 {
     auto sessionID = parameters.networkSessionParameters.sessionID;
-    ASSERT(sessionID.isEphemeral());
-
     if (NetworkStorageSession::storageSession(sessionID))
         return;
 
-    NetworkStorageSession::ensurePrivateBrowsingSession(sessionID, String::number(sessionID.sessionID()));
+    NetworkStorageSession::ensureSession(sessionID, String::number(sessionID.sessionID()));
     SessionTracker::setSession(sessionID, NetworkSession::create(WTFMove(parameters.networkSessionParameters)));
 }
 
-void RemoteNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&&)
-{
-    // FIXME: Implement.
-}
-
 NetworkStorageSession& RemoteNetworkingContext::storageSession() const
 {
     if (auto session = NetworkStorageSession::storageSession(m_sessionID))

Modified: trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp (224790 => 224791)


--- trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp	2017-11-13 23:50:47 UTC (rev 224791)
@@ -27,6 +27,7 @@
 #include "WebsiteDataStoreParameters.h"
 
 #include "WebCoreArgumentCoders.h"
+#include "WebsiteDataStore.h"
 
 namespace WebKit {
 
@@ -77,5 +78,9 @@
     return true;
 }
 
+WebsiteDataStoreParameters WebsiteDataStoreParameters::legacyPrivateSessionParameters()
+{
+    return { { }, { }, { }, { }, WebsiteDataStore::defaultCacheStoragePerOriginQuota, { }, { PAL::SessionID::legacyPrivateSessionID(), { }, { }, { }}};
+}
 
 } // namespace WebKit

Modified: trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.h (224790 => 224791)


--- trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.h	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.h	2017-11-13 23:50:47 UTC (rev 224791)
@@ -43,6 +43,7 @@
     WebsiteDataStoreParameters() = default;
     WebsiteDataStoreParameters(WebsiteDataStoreParameters&&) = default;
     ~WebsiteDataStoreParameters();
+    static WebsiteDataStoreParameters legacyPrivateSessionParameters();
     
     void encode(IPC::Encoder&) const;
     static bool decode(IPC::Decoder&, WebsiteDataStoreParameters&);

Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (224790 => 224791)


--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2017-11-13 23:50:47 UTC (rev 224791)
@@ -634,13 +634,13 @@
 {
     if (networkProcess()) {
         if (privateBrowsingEnabled)
-            networkProcess()->send(Messages::NetworkProcess::EnsurePrivateBrowsingSession({ { }, { }, { }, { }, WebsiteDataStore::defaultCacheStoragePerOriginQuota, { }, { PAL::SessionID::legacyPrivateSessionID(), { }, { }, AllowsCellularAccess::Yes }}), 0);
+            networkProcess()->send(Messages::NetworkProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::legacyPrivateSessionParameters()), 0);
         else
             networkProcess()->send(Messages::NetworkProcess::DestroySession(PAL::SessionID::legacyPrivateSessionID()), 0);
     }
 
     if (privateBrowsingEnabled)
-        sendToAllProcesses(Messages::WebProcess::EnsurePrivateBrowsingSession(PAL::SessionID::legacyPrivateSessionID()));
+        sendToAllProcesses(Messages::WebProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::legacyPrivateSessionParameters()));
     else
         sendToAllProcesses(Messages::WebProcess::DestroySession(PAL::SessionID::legacyPrivateSessionID()));
 }
@@ -831,7 +831,7 @@
 #endif
 
     if (WebPreferences::anyPagesAreUsingPrivateBrowsing())
-        process.send(Messages::WebProcess::EnsurePrivateBrowsingSession(PAL::SessionID::legacyPrivateSessionID()), 0);
+        process.send(Messages::WebProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::legacyPrivateSessionParameters()), 0);
 
     if (m_automationSession)
         process.send(Messages::WebProcess::EnsureAutomationSessionProxy(m_automationSession->sessionIdentifier()), 0);
@@ -1021,11 +1021,9 @@
 
     auto sessionID = page.sessionID();
     if (sessionID.isEphemeral()) {
-        // FIXME: Merge NetworkProcess::EnsurePrivateBrowsingSession and NetworkProcess::AddWebsiteDataStore into one message type.
-        // They do basically the same thing.
         ASSERT(page.websiteDataStore().parameters().networkSessionParameters.sessionID == sessionID);
-        sendToNetworkingProcess(Messages::NetworkProcess::EnsurePrivateBrowsingSession(page.websiteDataStore().parameters()));
-        page.process().send(Messages::WebProcess::EnsurePrivateBrowsingSession(sessionID), 0);
+        sendToNetworkingProcess(Messages::NetworkProcess::AddWebsiteDataStore(page.websiteDataStore().parameters()));
+        page.process().send(Messages::WebProcess::AddWebsiteDataStore({{ }, { }, { }, { }, { }, { }, { sessionID, { }, { }, { }}}), 0);
     } else if (sessionID != PAL::SessionID::defaultSessionID()) {
         sendToNetworkingProcess(Messages::NetworkProcess::AddWebsiteDataStore(page.websiteDataStore().parameters()));
         page.process().send(Messages::WebProcess::AddWebsiteDataStore(page.websiteDataStore().parameters()), 0);

Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp (224790 => 224791)


--- trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp	2017-11-13 23:50:47 UTC (rev 224791)
@@ -321,7 +321,7 @@
 {
     if (enabled) {
         WebProcess::singleton().ensureLegacyPrivateBrowsingSessionInNetworkProcess();
-        WebFrameNetworkingContext::ensurePrivateBrowsingSession({ { }, { }, { }, { }, { }, { }, { PAL::SessionID::legacyPrivateSessionID(), { }, { }, AllowsCellularAccess::Yes }});
+        WebFrameNetworkingContext::ensureWebsiteDataStoreSession({ { }, { }, { }, { }, { }, { }, { PAL::SessionID::legacyPrivateSessionID(), { }, { }, AllowsCellularAccess::Yes }});
     } else
         SessionTracker::destroySession(PAL::SessionID::legacyPrivateSessionID());
 

Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h (224790 => 224791)


--- trunk/Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h	2017-11-13 23:50:47 UTC (rev 224791)
@@ -42,7 +42,6 @@
     }
 
     // FIXME: remove platform-specific code and use SessionTracker
-    static void ensurePrivateBrowsingSession(WebsiteDataStoreParameters&&);
     static void ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&&);
 
     static void setCookieAcceptPolicyForAllContexts(HTTPCookieAcceptPolicy);

Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm (224790 => 224791)


--- trunk/Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm	2017-11-13 23:50:47 UTC (rev 224791)
@@ -45,27 +45,7 @@
 using namespace WebCore;
 
 namespace WebKit {
-    
-void WebFrameNetworkingContext::ensurePrivateBrowsingSession(WebsiteDataStoreParameters&& parameters)
-{
-    auto sessionID = parameters.networkSessionParameters.sessionID;
-    ASSERT(sessionID.isEphemeral());
 
-    if (WebCore::NetworkStorageSession::storageSession(sessionID))
-        return;
-
-    String base;
-    if (SessionTracker::getIdentifierBase().isNull())
-        base = [[NSBundle mainBundle] bundleIdentifier];
-    else
-        base = SessionTracker::getIdentifierBase();
-
-    NetworkStorageSession::ensurePrivateBrowsingSession(sessionID, base + '.' + String::number(sessionID.sessionID()));
-#if USE(NETWORK_SESSION)
-    SessionTracker::setSession(sessionID, NetworkSession::create(WTFMove(parameters.networkSessionParameters)));
-#endif
-}
-
 void WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&& parameters)
 {
     auto sessionID = parameters.networkSessionParameters.sessionID;
@@ -78,9 +58,16 @@
     else
         base = SessionTracker::getIdentifierBase();
 
-    SandboxExtension::consumePermanently(parameters.cookieStoragePathExtensionHandle);
+    if (!sessionID.isEphemeral()) {
+        bool result = SandboxExtension::consumePermanently(parameters.cookieStoragePathExtensionHandle);
+        ASSERT_UNUSED(result, result);
+    }
 
-    RetainPtr<CFHTTPCookieStorageRef> uiProcessCookieStorage = cookieStorageFromIdentifyingData(parameters.uiProcessCookieStorageIdentifier);
+    RetainPtr<CFHTTPCookieStorageRef> uiProcessCookieStorage;
+    if (!sessionID.isEphemeral())
+        uiProcessCookieStorage = cookieStorageFromIdentifyingData(parameters.uiProcessCookieStorageIdentifier);
+    else
+        ASSERT(parameters.uiProcessCookieStorageIdentifier.isEmpty());
 
     NetworkStorageSession::ensureSession(sessionID, base + '.' + String::number(sessionID.sessionID()), WTFMove(uiProcessCookieStorage));
 

Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp (224790 => 224791)


--- trunk/Source/WebKit/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp	2017-11-13 23:50:47 UTC (rev 224791)
@@ -43,24 +43,18 @@
 
 namespace WebKit {
 
-void WebFrameNetworkingContext::ensurePrivateBrowsingSession(WebsiteDataStoreParameters&& parameters)
+void WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&& parameters)
 {
     auto sessionID = parameters.networkSessionParameters.sessionID;
     ASSERT(RunLoop::isMain());
-    ASSERT(sessionID.isEphemeral());
 
     if (NetworkStorageSession::storageSession(sessionID))
         return;
 
-    NetworkStorageSession::ensurePrivateBrowsingSession(sessionID, String::number(sessionID.sessionID()));
+    NetworkStorageSession::ensureSession(sessionID, String::number(sessionID.sessionID()));
     SessionTracker::setSession(sessionID, NetworkSession::create(WTFMove(parameters.networkSessionParameters)));
 }
 
-void WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&&)
-{
-    // FIXME: Implement
-}
-
 WebFrameNetworkingContext::WebFrameNetworkingContext(WebFrame* frame)
     : FrameNetworkingContext(frame->coreFrame())
 {

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (224790 => 224791)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2017-11-13 23:50:47 UTC (rev 224791)
@@ -121,6 +121,7 @@
 #include "WebUserContentController.h"
 #include "WebUserMediaClient.h"
 #include "WebValidationMessageClient.h"
+#include "WebsiteDataStoreParameters.h"
 #include <_javascript_Core/APICast.h>
 #include <WebCore/ApplicationCacheStorage.h>
 #include <WebCore/ArchiveResource.h>
@@ -2740,7 +2741,7 @@
 void WebPage::setSessionID(PAL::SessionID sessionID)
 {
     if (sessionID.isEphemeral())
-        WebProcess::singleton().ensurePrivateBrowsingSession(sessionID);
+        WebProcess::singleton().addWebsiteDataStore({{ }, { }, { }, { }, { }, { }, { sessionID, { }, { }, { }}});
     m_page->setSessionID(sessionID);
 }
 

Modified: trunk/Source/WebKit/WebProcess/WebProcess.cpp (224790 => 224791)


--- trunk/Source/WebKit/WebProcess/WebProcess.cpp	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/WebProcess/WebProcess.cpp	2017-11-13 23:50:47 UTC (rev 224791)
@@ -515,11 +515,6 @@
     m_fullKeyboardAccessEnabled = fullKeyboardAccessEnabled;
 }
 
-void WebProcess::ensurePrivateBrowsingSession(PAL::SessionID sessionID)
-{
-    WebFrameNetworkingContext::ensurePrivateBrowsingSession({ { }, { }, { }, { }, { }, { }, { sessionID, { }, { }, AllowsCellularAccess::Yes }});
-}
-
 void WebProcess::addWebsiteDataStore(WebsiteDataStoreParameters&& parameters)
 {
     WebFrameNetworkingContext::ensureWebsiteDataStoreSession(WTFMove(parameters));

Modified: trunk/Source/WebKit/WebProcess/WebProcess.h (224790 => 224791)


--- trunk/Source/WebKit/WebProcess/WebProcess.h	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/WebProcess/WebProcess.h	2017-11-13 23:50:47 UTC (rev 224791)
@@ -178,7 +178,6 @@
 
     void setCacheModel(uint32_t);
 
-    void ensurePrivateBrowsingSession(PAL::SessionID);
     void ensureLegacyPrivateBrowsingSessionInNetworkProcess();
     void addWebsiteDataStore(WebsiteDataStoreParameters&&);
     void destroySession(PAL::SessionID);

Modified: trunk/Source/WebKit/WebProcess/WebProcess.messages.in (224790 => 224791)


--- trunk/Source/WebKit/WebProcess/WebProcess.messages.in	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKit/WebProcess/WebProcess.messages.in	2017-11-13 23:50:47 UTC (rev 224791)
@@ -47,7 +47,6 @@
 
     ClearCachedCredentials()
 
-    EnsurePrivateBrowsingSession(PAL::SessionID sessionID)
     AddWebsiteDataStore(struct WebKit::WebsiteDataStoreParameters websiteDataStoreParameters);
     DestroySession(PAL::SessionID sessionID)
 

Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (224790 => 224791)


--- trunk/Source/WebKitLegacy/mac/ChangeLog	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog	2017-11-13 23:50:47 UTC (rev 224791)
@@ -1,3 +1,13 @@
+2017-11-13  Alex Christensen  <[email protected]>
+
+        Merge NetworkProcess::EnsurePrivateBrowsingSession and NetworkProcess::AddWebsiteDataStore into one message type
+        https://bugs.webkit.org/show_bug.cgi?id=178751
+
+        Reviewed by Brady Eidson.
+
+        * WebCoreSupport/WebFrameNetworkingContext.mm:
+        (WebFrameNetworkingContext::ensurePrivateBrowsingSession):
+
 2017-11-08  Keith Miller  <[email protected]>
 
         Async iteration should only fetch the next method once and add feature flag

Modified: trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameNetworkingContext.mm (224790 => 224791)


--- trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameNetworkingContext.mm	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameNetworkingContext.mm	2017-11-13 23:50:47 UTC (rev 224791)
@@ -46,7 +46,7 @@
 NetworkStorageSession& WebFrameNetworkingContext::ensurePrivateBrowsingSession()
 {
     ASSERT(isMainThread());
-    NetworkStorageSession::ensurePrivateBrowsingSession(PAL::SessionID::legacyPrivateSessionID(), [[NSBundle mainBundle] bundleIdentifier]);
+    NetworkStorageSession::ensureSession(PAL::SessionID::legacyPrivateSessionID(), [[NSBundle mainBundle] bundleIdentifier]);
     return *NetworkStorageSession::storageSession(PAL::SessionID::legacyPrivateSessionID());
 }
 

Modified: trunk/Source/WebKitLegacy/win/WebCoreSupport/WebFrameNetworkingContext.cpp (224790 => 224791)


--- trunk/Source/WebKitLegacy/win/WebCoreSupport/WebFrameNetworkingContext.cpp	2017-11-13 23:25:00 UTC (rev 224790)
+++ trunk/Source/WebKitLegacy/win/WebCoreSupport/WebFrameNetworkingContext.cpp	2017-11-13 23:50:47 UTC (rev 224791)
@@ -81,7 +81,7 @@
     } else
         base = identifierBase();
 
-    NetworkStorageSession::ensurePrivateBrowsingSession(PAL::SessionID::legacyPrivateSessionID(), base);
+    NetworkStorageSession::ensureSession(PAL::SessionID::legacyPrivateSessionID(), base);
 
 #endif
     return *NetworkStorageSession::storageSession(PAL::SessionID::legacyPrivateSessionID());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to