JNIEXPORT jintLong JNICALL WebKit_win32_NATIVE(CFHTTPCookieStorageCopyCookies) (JNIEnv *env, jclass that, jintLong arg0) { jintLong rc = 0; WebKit_win32_NATIVE_ENTER(env, that, CFHTTPCookieStorageCopyCookies_FUNC); rc = (jintLong)CFHTTPCookieStorageCopyCookies((CFHTTPCookieStorageRef)arg0); WebKit_win32_NATIVE_EXIT(env, that, CFHTTPCookieStorageCopyCookies_FUNC); return rc; }
void getHostnamesWithCookies(const NetworkStorageSession& session, HashSet<String>& hostnames) { RetainPtr<CFArrayRef> cookiesCF = adoptCF(CFHTTPCookieStorageCopyCookies(session.cookieStorage().get())); if (!cookiesCF) return; CFIndex count = CFArrayGetCount(cookiesCF.get()); for (CFIndex i = 0; i < count; ++i) { CFHTTPCookieRef cookie = static_cast<CFHTTPCookieRef>(const_cast<void *>(CFArrayGetValueAtIndex(cookiesCF.get(), i))); RetainPtr<CFStringRef> domain = cookieDomain(cookie); hostnames.add(domain.get()); } }
void deleteCookiesForHostname(const NetworkStorageSession& session, const String& hostname) { RetainPtr<CFHTTPCookieStorageRef> cookieStorage = session.cookieStorage(); RetainPtr<CFArrayRef> cookiesCF = adoptCF(CFHTTPCookieStorageCopyCookies(cookieStorage.get())); if (!cookiesCF) return; CFIndex count = CFArrayGetCount(cookiesCF.get()); for (CFIndex i = count - 1; i >=0; i--) { CFHTTPCookieRef cookie = static_cast<CFHTTPCookieRef>(const_cast<void *>(CFArrayGetValueAtIndex(cookiesCF.get(), i))); RetainPtr<CFStringRef> domain = cookieDomain(cookie); if (String(domain.get()) == hostname) CFHTTPCookieStorageDeleteCookie(cookieStorage.get(), cookie); } }