Changeset 280128 in webkit
- Timestamp:
- Jul 21, 2021 4:51:18 AM (3 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r280122 r280128 1 2021-07-21 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 REGRESSION(r267763): [SOUP] After network process crash, all cookies are lost until browser is restarted 4 https://bugs.webkit.org/show_bug.cgi?id=228128 5 6 Reviewed by Adrian Perez de Castro. 7 8 Cookies configuration is no longer stored to be sent again to the new network process after a crash. 9 10 * NetworkProcess/NetworkSessionCreationParameters.cpp: 11 (WebKit::NetworkSessionCreationParameters::encode const): Encode cookieAcceptPolicy. 12 (WebKit::NetworkSessionCreationParameters::decode): Decode cookieAcceptPolicy. 13 * NetworkProcess/NetworkSessionCreationParameters.h: Add cookieAcceptPolicy. 14 * NetworkProcess/soup/NetworkSessionSoup.cpp: 15 (WebKit::NetworkSessionSoup::NetworkSessionSoup): Set cookie accept policy on NetworkStorageSession. 16 * UIProcess/API/glib/WebKitCookieManager.cpp: 17 (webkit_cookie_manager_set_persistent_storage): Use WebsiteDataStore API to cache the given values. 18 (webkit_cookie_manager_set_accept_policy): Ditto. 19 * UIProcess/WebCookieManagerProxy.h: 20 * UIProcess/WebsiteData/WebsiteDataStore.h: 21 * UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp: 22 (WebKit::WebsiteDataStore::platformSetNetworkParameters): Set cached cookie settings to network session parameters. 23 (WebKit::WebsiteDataStore::setCookiePersistentStorage): Cache the given value and notify the cookie manager. 24 (WebKit::WebsiteDataStore::setHTTPCookieAcceptPolicy): Ditto. 25 * UIProcess/soup/WebCookieManagerProxySoup.cpp: 26 (WebKit::WebCookieManagerProxy::getCookiePersistentStorage const): Deleted. 27 1 28 2021-07-20 Wenson Hsieh <wenson_hsieh@apple.com> 2 29 -
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp
r280015 r280128 65 65 encoder << ignoreTLSErrors; 66 66 encoder << proxySettings; 67 encoder << cookieAcceptPolicy; 67 68 #endif 68 69 #if USE(CURL) … … 190 191 if (!proxySettings) 191 192 return std::nullopt; 193 194 std::optional<WebCore::HTTPCookieAcceptPolicy> cookieAcceptPolicy; 195 decoder >> cookieAcceptPolicy; 196 if (!cookieAcceptPolicy) 197 return std::nullopt; 192 198 #endif 193 199 … … 319 325 , WTFMove(*ignoreTLSErrors) 320 326 , WTFMove(*proxySettings) 327 , WTFMove(*cookieAcceptPolicy) 321 328 #endif 322 329 #if USE(CURL) -
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
r280015 r280128 34 34 #if USE(SOUP) 35 35 #include "SoupCookiePersistentStorageType.h" 36 #include <WebCore/HTTPCookieAcceptPolicy.h> 36 37 #include <WebCore/SoupNetworkProxySettings.h> 37 38 #endif … … 78 79 bool ignoreTLSErrors { false }; 79 80 WebCore::SoupNetworkProxySettings proxySettings; 81 WebCore::HTTPCookieAcceptPolicy cookieAcceptPolicy { WebCore::HTTPCookieAcceptPolicy::ExclusivelyFromMainDocumentDomain }; 80 82 #endif 81 83 #if USE(CURL) -
trunk/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp
r275116 r280128 47 47 auto* storageSession = networkStorageSession(); 48 48 ASSERT(storageSession); 49 50 storageSession->setCookieAcceptPolicy(parameters.cookieAcceptPolicy); 49 51 50 52 setIgnoreTLSErrors(parameters.ignoreTLSErrors); -
trunk/Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp
r278941 r280128 195 195 return; 196 196 197 manager->priv->cookieManager().setCookiePersistentStorage(sessionID, String::fromUTF8(filename), toSoupCookiePersistentStorageType(storage)); 197 auto& websiteDataStore = webkitWebsiteDataManagerGetDataStore(manager->priv->dataManager); 198 websiteDataStore.setCookiePersistentStorage(String::fromUTF8(filename), toSoupCookiePersistentStorageType(storage)); 198 199 } 199 200 … … 213 214 g_return_if_fail(WEBKIT_IS_COOKIE_MANAGER(manager)); 214 215 215 manager->priv->cookieManager().setHTTPCookieAcceptPolicy(manager->priv->sessionID(), toHTTPCookieAcceptPolicy(policy), []() { }); 216 auto& websiteDataStore = webkitWebsiteDataManagerGetDataStore(manager->priv->dataManager); 217 websiteDataStore.setHTTPCookieAcceptPolicy(toHTTPCookieAcceptPolicy(policy)); 216 218 } 217 219 -
trunk/Source/WebKit/UIProcess/WebCookieManagerProxy.h
r278941 r280128 88 88 #if USE(SOUP) 89 89 void setCookiePersistentStorage(PAL::SessionID, const String& storagePath, SoupCookiePersistentStorageType); 90 void getCookiePersistentStorage(PAL::SessionID, String& storagePath, SoupCookiePersistentStorageType&) const;91 90 #endif 92 91 … … 100 99 101 100 WeakPtr<NetworkProcessProxy> m_networkProcess; 102 103 #if USE(SOUP)104 using CookiePersistentStorageMap = HashMap<PAL::SessionID, std::pair<String, SoupCookiePersistentStorageType>>;105 CookiePersistentStorageMap m_cookiePersistentStorageMap;106 #endif107 101 }; 108 102 -
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
r279477 r280128 63 63 64 64 #if USE(SOUP) 65 #include "SoupCookiePersistentStorageType.h" 66 #include <WebCore/HTTPCookieAcceptPolicy.h> 65 67 #include <WebCore/SoupNetworkProxySettings.h> 66 68 #endif … … 291 293 void setNetworkProxySettings(WebCore::SoupNetworkProxySettings&&); 292 294 const WebCore::SoupNetworkProxySettings& networkProxySettings() const { return m_networkProxySettings; } 295 void setCookiePersistentStorage(const String&, SoupCookiePersistentStorageType); 296 void setHTTPCookieAcceptPolicy(WebCore::HTTPCookieAcceptPolicy); 293 297 #endif 294 298 … … 434 438 bool m_ignoreTLSErrors { true }; 435 439 WebCore::SoupNetworkProxySettings m_networkProxySettings; 440 String m_cookiePersistentStoragePath; 441 SoupCookiePersistentStorageType m_cookiePersistentStorageType { SoupCookiePersistentStorageType::SQLite }; 442 WebCore::HTTPCookieAcceptPolicy m_cookieAcceptPolicy { WebCore::HTTPCookieAcceptPolicy::ExclusivelyFromMainDocumentDomain }; 436 443 #endif 437 444 -
trunk/Source/WebKit/UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp
r267763 r280128 42 42 networkSessionParameters.ignoreTLSErrors = m_ignoreTLSErrors; 43 43 networkSessionParameters.proxySettings = m_networkProxySettings; 44 45 networkProcess().cookieManager().getCookiePersistentStorage(m_sessionID, networkSessionParameters.cookiePersistentStoragePath, networkSessionParameters.cookiePersistentStorageType); 44 networkSessionParameters.cookiePersistentStoragePath = m_cookiePersistentStoragePath; 45 networkSessionParameters.cookiePersistentStorageType = m_cookiePersistentStorageType; 46 networkSessionParameters.cookieAcceptPolicy = m_cookieAcceptPolicy; 46 47 } 47 48 … … 73 74 } 74 75 76 void WebsiteDataStore::setCookiePersistentStorage(const String& storagePath, SoupCookiePersistentStorageType storageType) 77 { 78 if (m_cookiePersistentStoragePath == storagePath && m_cookiePersistentStorageType == storageType) 79 return; 80 81 m_cookiePersistentStoragePath = storagePath; 82 m_cookiePersistentStorageType = storageType; 83 networkProcess().cookieManager().setCookiePersistentStorage(m_sessionID, m_cookiePersistentStoragePath, m_cookiePersistentStorageType); 84 } 85 86 void WebsiteDataStore::setHTTPCookieAcceptPolicy(WebCore::HTTPCookieAcceptPolicy policy) 87 { 88 if (m_cookieAcceptPolicy == policy) 89 return; 90 91 m_cookieAcceptPolicy = policy; 92 networkProcess().cookieManager().setHTTPCookieAcceptPolicy(m_sessionID, policy, [] { }); 93 } 94 75 95 } // namespace WebKit -
trunk/Source/WebKit/UIProcess/soup/WebCookieManagerProxySoup.cpp
r267763 r280128 29 29 #include "NetworkProcessProxy.h" 30 30 #include "WebCookieManagerMessages.h" 31 #include "WebProcessPool.h"32 31 33 32 namespace WebKit { … … 39 38 } 40 39 41 void WebCookieManagerProxy::getCookiePersistentStorage(PAL::SessionID sessionID, String& storagePath, SoupCookiePersistentStorageType& storageType) const 42 { 43 auto pair = m_cookiePersistentStorageMap.get(sessionID); 44 storagePath = pair.first; 45 storageType = pair.second; 46 } 47 48 } 40 } // namespace WebKit
Note: See TracChangeset
for help on using the changeset viewer.