[GTK][WPE] webkit_cookie_manager_delete_all_cookies doesn't delete the cookies if...
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 20 Nov 2017 08:11:29 +0000 (08:11 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 20 Nov 2017 08:11:29 +0000 (08:11 +0000)
commit194bce173385b94298a9f9dd28cd1674398f8706
tree427ac8156c026d2b2320f2882dfbb9fad456c495
parent81b939ed77417904ea20e74d0a322b2a07ee24f0
[GTK][WPE] webkit_cookie_manager_delete_all_cookies doesn't delete the cookies if called before a web process is running
https://bugs.webkit.org/show_bug.cgi?id=175265

Reviewed by Michael Catanzaro.

Source/WebKit:

This is what happens:

1- We create our WebKitWebContext that creates its WebProcessPool.
2- We set a persistent cookies storage.
3- We ask the website data store to delete all cookies, but since website data store is a web process observer
   and we haven't spawned any web process yet, it creates a new WebProcessPool with the default configuration
   (no persistent cookies) and sends the message to delete the cookies there.
4- The network process of the second process pool does nothing because it doesn't have cookies at all.

We need to set the primary data store of the WebProcessPool when WebKitWebContext is constructed to ensure that
one is used before the web process is launched.

* UIProcess/API/glib/WebKitWebContext.cpp:
(webkitWebContextConstructed):

Tools:

Add test case.

* TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:
(testCookieManagerPersistentStorageDeleteAll):
(serverCallback):
(beforeAll):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225043 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit/ChangeLog
Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp
Tools/ChangeLog
Tools/TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp