+2008-01-17 Simon Hausmann <hausmann@webkit.org>
+
+ Reviewed by Maciej, Lars, Holger.
+
+ http://bugs.webkit.org/show_bug.cgi?id=16589
+
+ Add a document parameter to WebCore::cookies, setCookies and cookiesEnabled.
+
+ * WebCore.pro:
+ * bindings/js/kjs_navigator.cpp:
+ (KJS::Navigator::getValueProperty):
+ * dom/Document.cpp:
+ (WebCore::Document::cookie):
+ * platform/CookieJar.h:
+ * platform/gtk/CookieJarGtk.cpp:
+ (WebCore::setCookies):
+ (WebCore::cookies):
+ * platform/mac/CookieJar.mm:
+ * platform/network/win/CookieJarWin.cpp:
+ * platform/qt/CookieJarQt.cpp:
+ (WebCore::setCookies):
+ (WebCore::cookies):
+ (WebCore::cookiesEnabled):
+ * platform/wx/TemporaryLinkStubs.cpp:
+
2008-01-17 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
$$PWD/../WebKit/qt/Api/qwebpage.h \
$$PWD/../WebKit/qt/Api/qwebview.h \
$$PWD/../WebKit/qt/Api/qwebhistoryinterface.h \
- $$PWD/../WebKit/qt/Api/qcookiejar.h \
$$PWD/../WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h \
$$PWD/platform/network/qt/QNetworkReplyHandler.h
../WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp \
../WebKit/qt/WebCoreSupport/InspectorClientQt.cpp \
../WebKit/qt/Api/qwebframe.cpp \
- ../WebKit/qt/Api/qcookiejar.cpp \
../WebKit/qt/Api/qwebpage.cpp \
../WebKit/qt/Api/qwebview.cpp \
../WebKit/qt/Api/qwebhistory.cpp \
$$PWD/../WebKit/qt/Api/qwebnetworkinterface_p.h \
$$PWD/../WebKit/qt/Api/qwebobjectplugin.h \
$$PWD/../WebKit/qt/Api/qwebobjectplugin_p.h \
- $$PWD/../WebKit/qt/Api/qwebobjectpluginconnector.h
+ $$PWD/../WebKit/qt/Api/qwebobjectpluginconnector.h \
+ $$PWD/../WebKit/qt/Api/qcookiejar.h
SOURCES += \
../WebKit/qt/Api/qwebnetworkinterface.cpp \
../WebKit/qt/Api/qwebobjectplugin.cpp \
- ../WebKit/qt/Api/qwebobjectpluginconnector.cpp
+ ../WebKit/qt/Api/qwebobjectpluginconnector.cpp \
+ ../WebKit/qt/Api/qcookiejar.cpp
}
}
case _MimeTypes:
return new MimeTypes(exec);
case CookieEnabled:
- return jsBoolean(cookiesEnabled());
+ return jsBoolean(cookiesEnabled(m_frame->document()));
}
return 0;
}
String Document::cookie() const
{
- return cookies(url());
+ return cookies(this, url());
}
void Document::setCookie(const String& value)
{
- setCookies(url(), policyBaseURL().deprecatedString(), value);
+ setCookies(this, url(), policyBaseURL().deprecatedString(), value);
}
String Document::referrer() const
class KURL;
class String;
+ class Document;
- String cookies(const KURL&);
- void setCookies(const KURL&, const KURL& policyBaseURL, const String&);
- bool cookiesEnabled();
+ String cookies(const Document* document, const KURL&);
+ void setCookies(Document* document, const KURL&, const KURL& policyBaseURL, const String&);
+ bool cookiesEnabled(const Document* document);
}
static HashMap<String, String> cookieJar;
-void setCookies(const KURL& url, const KURL& /*policyURL*/, const String& value)
+void setCookies(Document* /*document*/, const KURL& url, const KURL& /*policyURL*/, const String& value)
{
cookieJar.set(url.string(), value);
}
-String cookies(const KURL& url)
+String cookies(const Document* /*document*/, const KURL& url)
{
return cookieJar.get(url.string());
}
-bool cookiesEnabled()
+bool cookiesEnabled(const Document* /*document*/)
{
return true;
}
namespace WebCore {
-String cookies(const KURL& url)
+String cookies(const Document* /*document*/, const KURL& url)
{
BEGIN_BLOCK_OBJC_EXCEPTIONS;
return String();
}
-void setCookies(const KURL& url, const KURL& policyBaseURL, const String& cookieStr)
+void setCookies(Document* /*document*/, const KURL& url, const KURL& policyBaseURL, const String& cookieStr)
{
BEGIN_BLOCK_OBJC_EXCEPTIONS;
END_BLOCK_OBJC_EXCEPTIONS;
}
-bool cookiesEnabled()
+bool cookiesEnabled(const Document* /*document*/)
{
BEGIN_BLOCK_OBJC_EXCEPTIONS;
#endif
-void setCookies(const KURL& url, const KURL& policyURL, const String& value)
+void setCookies(const Document* /*document*/, const KURL& url, const KURL& policyURL, const String& value)
{
#if USE(CFNETWORK)
// <rdar://problem/5632883> CFHTTPCookieStorage happily stores an empty cookie, which would be sent as "Cookie: =".
#endif
}
-String cookies(const KURL& url)
+String cookies(const Document* /*document*/, const KURL& url)
{
#if USE(CFNETWORK)
CFHTTPCookieStorageRef defaultCookieStorage = wkGetDefaultHTTPCookieStorage();
#endif
}
-bool cookiesEnabled()
+bool cookiesEnabled(const Document* /*document*/)
{
CFHTTPCookieStorageAcceptPolicy policy = CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain;
if (CFHTTPCookieStorageRef defaultCookieStorage = wkGetDefaultHTTPCookieStorage())
#include "KURL.h"
#include "PlatformString.h"
+#if QT_VERSION >= 0x040400
+#include "Document.h"
+#include "qwebpage.h"
+#include "qwebframe.h"
+#include "FrameLoaderClientQt.h"
+#include <QNetworkAccessManager>
+#include <QNetworkCookie>
+#else
#include <qcookiejar.h>
+#endif
namespace WebCore {
-void setCookies(const KURL& url, const KURL& policyURL, const String& value)
+void setCookies(Document* document, const KURL& url, const KURL& policyURL, const String& value)
{
- QUrl u((QString)url.string());
- QUrl p((QString)policyURL.string());
+ QUrl u(url);
+ QUrl p(policyURL);
+#if QT_VERSION >= 0x040400
+ QWebFrame* frame = static_cast<FrameLoaderClientQt*>(document->frame()->loader()->client())->webFrame();
+ QWebPage* page = frame->page();
+ QNetworkAccessManager* manager = page->networkAccessManager();
+ QNetworkCookieJar* jar = manager->cookieJar();
+
+ QList<QNetworkCookie> cookies = QNetworkCookie::parseCookies(QString(value).toAscii());
+ jar->setCookiesFromUrl(cookies, p);
+#else
QCookieJar::cookieJar()->setCookies(u, p, (QString)value);
+#endif
}
-String cookies(const KURL& url)
+String cookies(const Document* document, const KURL& url)
{
- QUrl u((QString)url.string());
+ QUrl u(url);
+#if QT_VERSION >= 0x040400
+ QWebFrame* frame = static_cast<FrameLoaderClientQt*>(document->frame()->loader()->client())->webFrame();
+ QWebPage* page = frame->page();
+ QNetworkAccessManager* manager = page->networkAccessManager();
+ QNetworkCookieJar* jar = manager->cookieJar();
+
+ QList<QNetworkCookie> cookies = jar->cookiesForUrl(u);
+ if (cookies.isEmpty())
+ return String();
+
+ return QString::fromAscii(cookies.first().toRawForm());
+#else
QString cookies = QCookieJar::cookieJar()->cookies(u);
int idx = cookies.indexOf(QLatin1Char(';'));
if (idx > 0)
cookies = cookies.left(idx);
return cookies;
+#endif
}
-bool cookiesEnabled()
+bool cookiesEnabled(const Document* document)
{
+#if QT_VERSION >= 0x040400
+ // ###
+ return true;
+#else
return QCookieJar::cookieJar()->isEnabled();
+#endif
}
}
void GraphicsContext::addInnerRoundedRectClip(const IntRect& rect, int thickness) { notImplemented(); }
// cookies (we'll need a place to store these
-void WebCore::setCookies(const KURL& url, const KURL& policyURL, const String& value) { notImplemented(); }
-String WebCore::cookies(const KURL& url) { notImplemented(); return String(); }
-bool WebCore::cookiesEnabled() { notImplemented(); return false; }
+void WebCore::setCookies(Document* document, const KURL& url, const KURL& policyURL, const String& value) { notImplemented(); }
+String WebCore::cookies(const Document* document, const KURL& url) { notImplemented(); return String(); }
+bool WebCore::cookiesEnabled(const Document* document) { notImplemented(); return false; }
/********************************************************/
/* Completely empty stubs (mostly to allow DRT to run): */
#include "qwebnetworkinterface_p.h"
#include "qwebobjectpluginconnector.h"
#include "qwebpage.h"
+#include "qcookiejar.h"
#include <qdebug.h>
#include <qfile.h>
#include <qnetworkproxy.h>
httpHeader.setValue(QLatin1String("User-Agent"), resourceRequest->httpUserAgent());
const QString scheme = url.scheme().toLower();
if (scheme == QLatin1String("http") || scheme == QLatin1String("https")) {
- QString cookies = WebCore::cookies(resourceRequest->url());
+ QString cookies = QCookieJar::cookieJar()->cookies(resourceRequest->url());
if (!cookies.isEmpty())
httpHeader.setValue(QLatin1String("Cookie"), cookies);
}
QStringList cookies = job->d->response.allValues("Set-Cookie");
KURL url(job->url());
foreach (QString c, cookies) {
- setCookies(url, url, c);
+ QCookieJar::cookieJar()->setCookies(url, url, c);
}
QString contentType = job->d->response.value("Content-Type");
QString encoding;
+2008-01-17 Simon Hausmann <hausmann@webkit.org>
+
+ Reviewed by Maciej, Lars, Holger.
+
+ http://bugs.webkit.org/show_bug.cgi?id=16589
+
+ Add a document parameter to WebCore::cookies, setCookies and cookiesEnabled.
+
+ * Api/qwebnetworkinterface.cpp:
+ (QWebNetworkRequestPrivate::init):
+ (QWebNetworkManager::started):
+
2008-01-17 Warwick Allison <warwick@trolltech.com>
Reviewed by Simon Hausmann <hausmann@webkit.org>.