WebKit2: Use CFNetwork Sessions API.
authorjberlin@webkit.org <jberlin@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 6 Mar 2011 18:39:18 +0000 (18:39 +0000)
committerjberlin@webkit.org <jberlin@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 6 Mar 2011 18:39:18 +0000 (18:39 +0000)
commit62a7ad1aa5d3d2bd4805bae83be2c74686de0093
treeabe383b77054b7f7632f3958def0372b7d78a7b8
parent7554622e454661e52094c4b49ae5a24586ba4c19
WebKit2: Use CFNetwork Sessions API.
https://bugs.webkit.org/show_bug.cgi?id=55435.

Reviewed by Sam Weinig.

Source/WebCore:

When Private Browsing is enabled, use cookies from a in-memory cookie storage based on the
Private Browsing Storage Session.

* WebCore.exp.in:
Add the new WKSI functions.
* platform/mac/WebCoreSystemInterface.h:
Ditto.
* platform/mac/WebCoreSystemInterface.mm:
Ditto.

* platform/mac/CookieJar.mm:
(WebCore::cookies):
If USE(CFURLSTORAGESESSIONS) and there is a Private Browsing Cookie Storage, call into WKSI.
Otherwise, behave the same as before.
(WebCore::cookieRequestHeaderFieldValue):
Ditto.
(WebCore::setCookies):
Ditto.
(WebCore::cookiesEnabled):
Ditto
(WebCore::getRawCookies):
Ditto.
(WebCore::deleteCookie):
Ditto.

* platform/network/CookieStorage.h:
* platform/network/cf/CookieStorageCFNet.cpp:
(WebCore::privateBrowsingCookieStorage):
Keep track of the Private Browsing Cookie Storage in a locally defined static inside a
function instead of at the global scope.
(WebCore::currentCookieStorage):
Use privateBrowsingCookieStorage.
(WebCore::setCurrentCookieStorage):
Ditto.
(WebCore::setCookieStoragePrivateBrowsingEnabled):
If USE(CFURLSTORAGESESSIONS), send the Private Browsing Storage Session to
wkCreatePrivateInMemoryHTTPCookieStorage.
* platform/network/mac/CookieStorageMac.mm:
(WebCore::privateBrowsingCookieStorage):
Keep track of the Private Browsing Cookie Storage.
(WebCore::setCookieStoragePrivateBrowsingEnabled):
If USE(CFURLSTORAGESESSIONS), then set or clear privateBrowsingCookieStorage().
Added a FIXME to observe changes to the Private Browsing Cookie Storage when it is defined.

* platform/network/mac/ResourceHandleMac.mm:
(WebCore::shouldRelaxThirdPartyCookiePolicy):
Refactor the logic to determine whether or not to relax the third party cookie policy here.
If USE(CFURLSTORAGESESSIONS), then get the information from the privateBrowsingCookieStorage.
(WebCore::ResourceHandle::createNSURLConnection):
Use shouldRelaxThirdPartyCookiePolicy.
(WebCore::ResourceHandle::loadResourceSynchronously):
Ditto.

Source/WebKit/mac:

When Private Browsing is enabled, use cookies from a in-memory cookie storage based on the
Private Browsing Storage Session.

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
Add support for using the new WKSI functions in WebCore.

Source/WebKit2:

When Private Browsing is enabled, use cookies from a in-memory cookie storage based on the
Private Browsing Storage Session.

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
Add support for using the new WKSI functions in WebCore.

WebKitLibraries:

When Private Browsing is enabled, use cookies from a in-memory Cookie Storage based on the
Private Browsing Storage Session.

Update WebKitSystemInterface headers and libraries with the new functions.

* WebKitSystemInterface.h:
* libWebKitSystemInterfaceLeopard.a:
* libWebKitSystemInterfaceSnowLeopard.a:
* win/include/WebKitSystemInterface/WebKitSystemInterface.h:
* win/lib/WebKitSystemInterface.lib:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@80435 268f45cc-cd09-0410-ab3c-d52691b4dbfc
19 files changed:
Source/WebCore/ChangeLog
Source/WebCore/WebCore.exp.in
Source/WebCore/platform/mac/CookieJar.mm
Source/WebCore/platform/mac/WebCoreSystemInterface.h
Source/WebCore/platform/mac/WebCoreSystemInterface.mm
Source/WebCore/platform/network/CookieStorage.h
Source/WebCore/platform/network/cf/CookieStorageCFNet.cpp
Source/WebCore/platform/network/mac/CookieStorageMac.mm
Source/WebCore/platform/network/mac/ResourceHandleMac.mm
Source/WebKit/mac/ChangeLog
Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm
Source/WebKit2/ChangeLog
Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm
WebKitLibraries/ChangeLog
WebKitLibraries/WebKitSystemInterface.h
WebKitLibraries/libWebKitSystemInterfaceLeopard.a
WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a
WebKitLibraries/win/include/WebKitSystemInterface/WebKitSystemInterface.h
WebKitLibraries/win/lib/WebKitSystemInterface.lib