+2007-10-11 Ada Chan <adachan@apple.com>
+
+ <rdar://problem/5534421>
+ Switched to using wkGetDefaultHTTPCookieStorage() and removed some cookie-related
+ methods we no longer need in ResourceHandle.
+
+ <rdar://problem/5244261> "Never" cookie policy was ignored on windows
+ Need to set the cookie accept policy on each CFURLRequest.
+
+ Reviewed by Oliver.
+
+ * platform/network/ResourceHandle.h:
+ * platform/network/cf/ResourceHandleCFNet.cpp:
+ (WebCore::makeFinalRequest):
+ * platform/network/cf/ResourceRequestCFNet.cpp:
+ (WebCore::ResourceRequest::doUpdatePlatformRequest):
+ * platform/network/win/CookieJarWin.cpp:
+ (WebCore::setCookies):
+ (WebCore::cookies):
+ (WebCore::cookiesEnabled):
+
2007-10-11 Mark Rowe <mrowe@apple.com>
Reviewed by Tim Hatcher.
CFURLConnectionRef connection() const;
CFURLConnectionRef releaseConnectionForDownload();
- static CFHTTPCookieStorageAcceptPolicy cookieStorageAcceptPolicy();
- static void setCookieStorageAcceptPolicy(CFHTTPCookieStorageAcceptPolicy);
-
- static CFHTTPCookieStorageRef cookieStorage();
- static void setCookieStorage(CFHTTPCookieStorageRef);
-
static void setHostAllowsAnyHTTPSCertificate(const String&);
#endif
PassRefPtr<SharedBuffer> bufferedData();
#include <process.h> // for _beginthread()
#include <CFNetwork/CFNetwork.h>
+#include <WebKitSystemInterface/WebKitSystemInterface.h>
namespace WebCore {
-static CFHTTPCookieStorageAcceptPolicy defaultAcceptPolicy = CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain;
-static CFHTTPCookieStorageRef defaultStorage;
-
static HashSet<String>& allowsAnyHTTPSCertificateHosts()
{
static HashSet<String> hosts;
CFURLRequestSetSSLProperties(newRequest, sslProps);
}
-#ifdef CFNETWORK_HAS_NEW_COOKIE_FUNCTIONS
- CFURLRequestSetHTTPCookieStorage(newRequest, defaultStorage);
- CFURLRequestSetHTTPCookieStorageAcceptPolicy(newRequest, defaultAcceptPolicy);
-#endif
+ if (CFHTTPCookieStorageRef defaultCookieStorage = wkGetDefaultHTTPCookieStorage())
+ CFURLRequestSetHTTPCookieStorageAcceptPolicy(newRequest, CFHTTPCookieStorageGetCookieAcceptPolicy(defaultCookieStorage));
return newRequest;
}
}
}
-CFHTTPCookieStorageAcceptPolicy ResourceHandle::cookieStorageAcceptPolicy()
-{
- return defaultAcceptPolicy;
-}
-
-void ResourceHandle::setCookieStorageAcceptPolicy(CFHTTPCookieStorageAcceptPolicy acceptPolicy)
-{
- defaultAcceptPolicy = acceptPolicy;
- if (defaultStorage)
- CFHTTPCookieStorageSetCookieAcceptPolicy(defaultStorage, defaultAcceptPolicy);
-}
-
-CFHTTPCookieStorageRef ResourceHandle::cookieStorage()
-{
- return defaultStorage;
-}
-
-void ResourceHandle::setCookieStorage(CFHTTPCookieStorageRef storage)
-{
- if (storage)
- CFRetain(storage);
- if (defaultStorage)
- CFRelease(defaultStorage);
- defaultStorage = storage;
- if (defaultStorage)
- CFHTTPCookieStorageSetCookieAcceptPolicy(defaultStorage, defaultAcceptPolicy);
-}
-
void ResourceHandle::setHostAllowsAnyHTTPSCertificate(const String& host)
{
allowsAnyHTTPSCertificateHosts().add(host.lower());
CFURLRequestSetShouldHandleHTTPCookies(cfRequest, allowHTTPCookies());
if (m_cfRequest) {
-#ifdef CFNETWORK_HAS_NEW_COOKIE_FUNCTIONS
- RetainPtr<CFHTTPCookieStorageRef> cookieStorage(AdoptCF, CFURLRequestCopyHTTPCookieStorage(m_cfRequest.get()));
- CFURLRequestSetHTTPCookieStorage(cfRequest, cookieStorage.get());
CFURLRequestSetHTTPCookieStorageAcceptPolicy(cfRequest, CFURLRequestGetHTTPCookieStorageAcceptPolicy(m_cfRequest.get()));
-#endif
CFURLRequestSetSSLProperties(cfRequest, CFURLRequestGetSSLProperties(m_cfRequest.get()));
}
#if USE(CFNETWORK)
#include <CoreFoundation/CoreFoundation.h>
#include <CFNetwork/CFHTTPCookiesPriv.h>
+#include <WebKitSystemInterface/WebKitSystemInterface.h>
#else
#include <Wininet.h>
#endif
void setCookies(const KURL& url, const KURL& policyURL, const String& value)
{
#if USE(CFNETWORK)
- if (!ResourceHandle::cookieStorage())
+ CFHTTPCookieStorageRef defaultCookieStorage = wkGetDefaultHTTPCookieStorage();
+ if (!defaultCookieStorage)
return;
RetainPtr<CFURLRef> urlCF(AdoptCF, url.createCFURL());
RetainPtr<CFArrayRef> cookiesCF(AdoptCF, CFHTTPCookieCreateWithResponseHeaderFields(kCFAllocatorDefault,
headerFieldsCF.get(), urlCF.get()));
- CFHTTPCookieStorageSetCookies(ResourceHandle::cookieStorage(), cookiesCF.get(), urlCF.get(), policyURLCF.get());
+ CFHTTPCookieStorageSetCookies(defaultCookieStorage, cookiesCF.get(), urlCF.get(), policyURLCF.get());
#else
// FIXME: Deal with the policy URL.
DeprecatedString str = url.url();
String cookies(const KURL& url)
{
#if USE(CFNETWORK)
- if (!ResourceHandle::cookieStorage())
+ CFHTTPCookieStorageRef defaultCookieStorage = wkGetDefaultHTTPCookieStorage();
+ if (!defaultCookieStorage)
return String();
String cookieString;
bool secure = equalIgnoringCase(url.protocol(), "https");
- RetainPtr<CFArrayRef> cookiesCF(AdoptCF, CFHTTPCookieStorageCopyCookiesForURL(ResourceHandle::cookieStorage(), urlCF.get(), secure));
+ RetainPtr<CFArrayRef> cookiesCF(AdoptCF, CFHTTPCookieStorageCopyCookiesForURL(defaultCookieStorage, urlCF.get(), secure));
RetainPtr<CFDictionaryRef> headerCF(AdoptCF, CFHTTPCookieCopyRequestHeaderFields(kCFAllocatorDefault, cookiesCF.get()));
return (CFStringRef)CFDictionaryGetValue(headerCF.get(), s_cookieCF);
bool cookiesEnabled()
{
- return ResourceHandle::cookieStorageAcceptPolicy() == CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain ||
- ResourceHandle::cookieStorageAcceptPolicy() == CFHTTPCookieStorageAcceptPolicyAlways;
+ CFHTTPCookieStorageAcceptPolicy policy = CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain;
+ if (CFHTTPCookieStorageRef defaultCookieStorage = wkGetDefaultHTTPCookieStorage())
+ policy = CFHTTPCookieStorageGetCookieAcceptPolicy(defaultCookieStorage);
+ return policy == CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain || policy == CFHTTPCookieStorageAcceptPolicyAlways;
}
}
+2007-10-11 Ada Chan <adachan@apple.com>
+
+ <rdar://problem/5534421>
+ Switched to using wkGetDefaultHTTPCookieStorage() to avoid recreating CFHTTPCookieStorageRef.
+ Removed usage of ResourceHandle::cookieStorage().
+
+ Reviewed by Oliver.
+
+ * WebView.cpp:
+ (WebView::updateWebCoreSettingsFromPreferences):
+ (WebView::initWithFrame):
+
2007-10-10 Alice Liu <alice.liu@apple.com>
Reviewed by Geoff Garen.
#include "WebPreferences.h"
#pragma warning( push, 0 )
#include <CoreGraphics/CGContext.h>
-#include <CFNetwork/CFHTTPCookiesPriv.h>
#include <WebCore/BString.h>
#include <WebCore/Cache.h>
#include <WebCore/CommandByName.h>
#include <JavaScriptCore/collector.h>
#include <JavaScriptCore/value.h>
#include <CFNetwork/CFURLProtocolPriv.h>
+#include <WebKitSystemInterface/WebKitSystemInterface.h>
#include <tchar.h>
#include <dimm.h>
#include <windowsx.h>
return hr;
settings->setDOMPasteAllowed(!!enabled);
- ResourceHandle::setCookieStorageAcceptPolicy(acceptPolicy);
+ // set cookie storage accept policy
+ if (CFHTTPCookieStorageRef defaultCookieStorage = wkGetDefaultHTTPCookieStorage())
+ CFHTTPCookieStorageSetCookieAcceptPolicy(defaultCookieStorage, acceptPolicy);
settings->setShowsURLsInToolTips(false);
if (FAILED(hr))
return hr;
- // Use default cookie storage
- RetainPtr<CFHTTPCookieStorageRef> cookies(AdoptCF, CFHTTPCookieStorageCreateFromFile(kCFAllocatorDefault, 0, 0));
- ResourceHandle::setCookieStorage(cookies.get());
-
// Register to receive notifications whenever preference values change.
//[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_preferencesChangedNotification:)
// name:WebPreferencesChangedNotification object:[self preferences]];