REGRESSION(r216977): [GTK] Ephemeral sessions broken after r216977
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 19 May 2017 16:11:33 +0000 (16:11 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 19 May 2017 16:11:33 +0000 (16:11 +0000)
https://bugs.webkit.org/show_bug.cgi?id=172345

Reviewed by Michael Catanzaro.

Since r216977, WebProcessPool sends the page session ID to the web process, but the WebsiteDataStoreParameters
session ID to the network process. WebsiteDataStoreParameters is only implemented for Cocoa, so we are sending 0
session ID to the network process, while using the right session ID everywhere else.

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::pageAddedToProcess): Add an ASSERT to ensure we are sending the same session ID to Web
and Network processes.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters): Add minimal implementation for non-Cocoa ports to at least set the
session ID.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@217128 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/WebProcessPool.cpp
Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp

index 6bb2e8c..6f0bb91 100644 (file)
@@ -1,5 +1,23 @@
 2017-05-19  Carlos Garcia Campos  <cgarcia@igalia.com>
 
 2017-05-19  Carlos Garcia Campos  <cgarcia@igalia.com>
 
+        REGRESSION(r216977): [GTK] Ephemeral sessions broken after r216977
+        https://bugs.webkit.org/show_bug.cgi?id=172345
+
+        Reviewed by Michael Catanzaro.
+
+        Since r216977, WebProcessPool sends the page session ID to the web process, but the WebsiteDataStoreParameters
+        session ID to the network process. WebsiteDataStoreParameters is only implemented for Cocoa, so we are sending 0
+        session ID to the network process, while using the right session ID everywhere else.
+
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::pageAddedToProcess): Add an ASSERT to ensure we are sending the same session ID to Web
+        and Network processes.
+        * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+        (WebKit::WebsiteDataStore::parameters): Add minimal implementation for non-Cocoa ports to at least set the
+        session ID.
+
+2017-05-19  Carlos Garcia Campos  <cgarcia@igalia.com>
+
         Add more input validation in Connection::processMessage()
         https://bugs.webkit.org/show_bug.cgi?id=171682
 
         Add more input validation in Connection::processMessage()
         https://bugs.webkit.org/show_bug.cgi?id=171682
 
index 12b1178..26f5b2b 100644 (file)
@@ -947,6 +947,7 @@ void WebProcessPool::pageAddedToProcess(WebPageProxy& page)
     if (sessionID.isEphemeral()) {
         // FIXME: Merge NetworkProcess::EnsurePrivateBrowsingSession and NetworkProcess::AddWebsiteDataStore into one message type.
         // They do basically the same thing.
     if (sessionID.isEphemeral()) {
         // FIXME: Merge NetworkProcess::EnsurePrivateBrowsingSession and NetworkProcess::AddWebsiteDataStore into one message type.
         // They do basically the same thing.
+        ASSERT(page.websiteDataStore().parameters().sessionID == sessionID);
         sendToNetworkingProcess(Messages::NetworkProcess::EnsurePrivateBrowsingSession(page.websiteDataStore().parameters()));
         page.process().send(Messages::WebProcess::EnsurePrivateBrowsingSession(sessionID), 0);
     } else if (sessionID != SessionID::defaultSessionID()) {
         sendToNetworkingProcess(Messages::NetworkProcess::EnsurePrivateBrowsingSession(page.websiteDataStore().parameters()));
         page.process().send(Messages::WebProcess::EnsurePrivateBrowsingSession(sessionID), 0);
     } else if (sessionID != SessionID::defaultSessionID()) {
index 1069599..de23517 100644 (file)
@@ -1299,9 +1299,10 @@ void WebsiteDataStore::removePendingCookie(const WebCore::Cookie& cookie)
 #if !PLATFORM(COCOA)
 WebsiteDataStoreParameters WebsiteDataStore::parameters()
 {
 #if !PLATFORM(COCOA)
 WebsiteDataStoreParameters WebsiteDataStore::parameters()
 {
-    // FIXME: Implement.
-
-    return { };
+    // FIXME: Implement cookies.
+    WebsiteDataStoreParameters parameters;
+    parameters.sessionID = m_sessionID;
+    return parameters;
 }
 #endif
 
 }
 #endif