WebKit Bugzilla
Attachment 360731 Details for
Bug 194092
: [SOUP] Improve use of PAL::SessionID in WebKitCookieManager
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-194092-20190131105418.patch (text/plain), 8.49 KB, created by
Michael Catanzaro
on 2019-01-31 08:54:19 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Michael Catanzaro
Created:
2019-01-31 08:54:19 PST
Size:
8.49 KB
patch
obsolete
>Subversion Revision: 240788 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index dd09e1bcd77c13904f0edef65253f119395e0a05..7a32f6aa45befddd812842fe1a962a9e709c069a 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,24 @@ >+2019-01-31 Michael Catanzaro <mcatanzaro@igalia.com> >+ >+ [SOUP] Improve use of PAL::SessionID in WebKitCookieManager >+ https://bugs.webkit.org/show_bug.cgi?id=194092 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Always get it from the data store instead of assuming the default session ID, and add a >+ helper function for this. >+ >+ * UIProcess/API/glib/WebKitCookieManager.cpp: >+ (_WebKitCookieManagerPrivate::sessionID const): >+ (_WebKitCookieManagerPrivate::~_WebKitCookieManagerPrivate): >+ (webkitCookieManagerCreate): >+ (webkit_cookie_manager_set_persistent_storage): >+ (webkit_cookie_manager_set_accept_policy): >+ (webkit_cookie_manager_get_accept_policy): >+ (webkit_cookie_manager_add_cookie): >+ (webkit_cookie_manager_get_cookies): >+ (webkit_cookie_manager_delete_cookie): >+ > 2019-01-30 Simon Fraser <simon.fraser@apple.com> > > [Mac] Implement basic hit testing in the scrolling tree >diff --git a/Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp b/Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp >index 01e1a3eda83df0bd8bbdbdf7f6a64e0266329cd7..f50feea9e56af2a6c1164dfd4e798e97145a67f1 100644 >--- a/Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp >+++ b/Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp >@@ -55,11 +55,16 @@ enum { > }; > > struct _WebKitCookieManagerPrivate { >+ PAL::SessionID sessionID() const >+ { >+ ASSERT(dataManager); >+ return webkitWebsiteDataManagerGetDataStore(dataManager).websiteDataStore().sessionID(); >+ } >+ > ~_WebKitCookieManagerPrivate() > { >- auto sessionID = webkitWebsiteDataManagerGetDataStore(dataManager).websiteDataStore().sessionID(); > for (auto* processPool : webkitWebsiteDataManagerGetProcessPools(dataManager)) >- processPool->supplement<WebCookieManagerProxy>()->setCookieObserverCallback(sessionID, nullptr); >+ processPool->supplement<WebCookieManagerProxy>()->setCookieObserverCallback(sessionID(), nullptr); > } > > WebKitWebsiteDataManager* dataManager; >@@ -135,9 +140,8 @@ WebKitCookieManager* webkitCookieManagerCreate(WebKitWebsiteDataManager* dataMan > { > WebKitCookieManager* manager = WEBKIT_COOKIE_MANAGER(g_object_new(WEBKIT_TYPE_COOKIE_MANAGER, nullptr)); > manager->priv->dataManager = dataManager; >- auto sessionID = webkitWebsiteDataManagerGetDataStore(manager->priv->dataManager).websiteDataStore().sessionID(); > for (auto* processPool : webkitWebsiteDataManagerGetProcessPools(manager->priv->dataManager)) { >- processPool->supplement<WebCookieManagerProxy>()->setCookieObserverCallback(sessionID, [manager] { >+ processPool->supplement<WebCookieManagerProxy>()->setCookieObserverCallback(manager->priv->sessionID(), [manager] { > g_signal_emit(manager, signals[CHANGED], 0); > }); > } >@@ -166,7 +170,7 @@ void webkit_cookie_manager_set_persistent_storage(WebKitCookieManager* manager, > g_return_if_fail(filename); > g_return_if_fail(!webkit_website_data_manager_is_ephemeral(manager->priv->dataManager)); > >- auto sessionID = webkitWebsiteDataManagerGetDataStore(manager->priv->dataManager).websiteDataStore().sessionID(); >+ auto sessionID = manager->priv->sessionID(); > if (sessionID.isEphemeral()) > return; > >@@ -186,7 +190,7 @@ void webkit_cookie_manager_set_accept_policy(WebKitCookieManager* manager, WebKi > g_return_if_fail(WEBKIT_IS_COOKIE_MANAGER(manager)); > > for (auto* processPool : webkitWebsiteDataManagerGetProcessPools(manager->priv->dataManager)) >- processPool->supplement<WebCookieManagerProxy>()->setHTTPCookieAcceptPolicy(PAL::SessionID::defaultSessionID(), toHTTPCookieAcceptPolicy(policy), [](CallbackBase::Error){}); >+ processPool->supplement<WebCookieManagerProxy>()->setHTTPCookieAcceptPolicy(manager->priv->sessionID(), toHTTPCookieAcceptPolicy(policy), [](CallbackBase::Error) { }); > } > > /** >@@ -214,7 +218,7 @@ void webkit_cookie_manager_get_accept_policy(WebKitCookieManager* manager, GCanc > return; > } > >- processPools[0]->supplement<WebCookieManagerProxy>()->getHTTPCookieAcceptPolicy(PAL::SessionID::defaultSessionID(), [task = WTFMove(task)](HTTPCookieAcceptPolicy policy, CallbackBase::Error) { >+ processPools[0]->supplement<WebCookieManagerProxy>()->getHTTPCookieAcceptPolicy(manager->priv->sessionID(), [task = WTFMove(task)](HTTPCookieAcceptPolicy policy, CallbackBase::Error) { > g_task_return_int(task.get(), toWebKitCookieAcceptPolicy(policy)); > }); > } >@@ -260,12 +264,10 @@ void webkit_cookie_manager_add_cookie(WebKitCookieManager* manager, SoupCookie* > > GRefPtr<GTask> task = adoptGRef(g_task_new(manager, cancellable, callback, userData)); > >- auto sessionID = webkitWebsiteDataManagerGetDataStore(manager->priv->dataManager).websiteDataStore().sessionID(); >- const auto& processPools = webkitWebsiteDataManagerGetProcessPools(manager->priv->dataManager); >- > // Cookies are read/written from/to the same SQLite database on disk regardless > // of the process we access them from, so just use the first process pool. >- processPools[0]->supplement<WebCookieManagerProxy>()->setCookie(sessionID, WebCore::Cookie(cookie), [task = WTFMove(task)](CallbackBase::Error error) { >+ const auto& processPools = webkitWebsiteDataManagerGetProcessPools(manager->priv->dataManager); >+ processPools[0]->supplement<WebCookieManagerProxy>()->setCookie(manager->priv->sessionID(), WebCore::Cookie(cookie), [task = WTFMove(task)](CallbackBase::Error error) { > if (error != CallbackBase::Error::None) { > // This can only happen in cases where the web process is not available, > // consider the operation "cancelled" from the point of view of the client. >@@ -320,12 +322,10 @@ void webkit_cookie_manager_get_cookies(WebKitCookieManager* manager, const gchar > > GRefPtr<GTask> task = adoptGRef(g_task_new(manager, cancellable, callback, userData)); > >- auto sessionID = webkitWebsiteDataManagerGetDataStore(manager->priv->dataManager).websiteDataStore().sessionID(); >- const auto& processPools = webkitWebsiteDataManagerGetProcessPools(manager->priv->dataManager); >- > // Cookies are read/written from/to the same SQLite database on disk regardless > // of the process we access them from, so just use the first process pool. >- processPools[0]->supplement<WebCookieManagerProxy>()->getCookies(sessionID, URL(URL(), String::fromUTF8(uri)), [task = WTFMove(task)](const Vector<WebCore::Cookie>& cookies, CallbackBase::Error error) { >+ const auto& processPools = webkitWebsiteDataManagerGetProcessPools(manager->priv->dataManager); >+ processPools[0]->supplement<WebCookieManagerProxy>()->getCookies(manager->priv->sessionID(), URL(URL(), String::fromUTF8(uri)), [task = WTFMove(task)](const Vector<WebCore::Cookie>& cookies, CallbackBase::Error error) { > if (error != CallbackBase::Error::None) { > // This can only happen in cases where the web process is not available, > // consider the operation "cancelled" from the point of view of the client. >@@ -387,12 +387,10 @@ void webkit_cookie_manager_delete_cookie(WebKitCookieManager* manager, SoupCooki > > GRefPtr<GTask> task = adoptGRef(g_task_new(manager, cancellable, callback, userData)); > >- auto sessionID = webkitWebsiteDataManagerGetDataStore(manager->priv->dataManager).websiteDataStore().sessionID(); >- const auto& processPools = webkitWebsiteDataManagerGetProcessPools(manager->priv->dataManager); >- > // Cookies are read/written from/to the same SQLite database on disk regardless > // of the process we access them from, so just use the first process pool. >- processPools[0]->supplement<WebCookieManagerProxy>()->deleteCookie(sessionID, WebCore::Cookie(cookie), [task = WTFMove(task)](CallbackBase::Error error) { >+ const auto& processPools = webkitWebsiteDataManagerGetProcessPools(manager->priv->dataManager); >+ processPools[0]->supplement<WebCookieManagerProxy>()->deleteCookie(manager->priv->sessionID(), WebCore::Cookie(cookie), [task = WTFMove(task)](CallbackBase::Error error) { > if (error != CallbackBase::Error::None) { > // This can only happen in cases where the web process is not available, > // consider the operation "cancelled" from the point of view of the client.
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 194092
: 360731