summaryrefslogtreecommitdiffstats
path: root/WebKit/chromium/src/ChromiumBridge.cpp
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-04-27 16:23:55 +0100
committerSteve Block <steveblock@google.com>2010-04-27 17:07:03 +0100
commit692e5dbf12901edacf14812a6fae25462920af42 (patch)
treed62802373a429e0a9dc093b6046c166b2c514285 /WebKit/chromium/src/ChromiumBridge.cpp
parente24bea4efef1c414137d36a9778aa4e142e10c7d (diff)
downloadexternal_webkit-692e5dbf12901edacf14812a6fae25462920af42.zip
external_webkit-692e5dbf12901edacf14812a6fae25462920af42.tar.gz
external_webkit-692e5dbf12901edacf14812a6fae25462920af42.tar.bz2
Merge webkit.org at r55033 : Initial merge by git
Change-Id: I98a4af828067cc243ec3dc5e5826154dd88074b5
Diffstat (limited to 'WebKit/chromium/src/ChromiumBridge.cpp')
-rw-r--r--WebKit/chromium/src/ChromiumBridge.cpp89
1 files changed, 72 insertions, 17 deletions
diff --git a/WebKit/chromium/src/ChromiumBridge.cpp b/WebKit/chromium/src/ChromiumBridge.cpp
index 0fd0825..e04226e 100644
--- a/WebKit/chromium/src/ChromiumBridge.cpp
+++ b/WebKit/chromium/src/ChromiumBridge.cpp
@@ -37,6 +37,7 @@
#include "ChromeClientImpl.h"
#include "WebClipboard.h"
#include "WebCookie.h"
+#include "WebCookieJar.h"
#include "WebCursorInfo.h"
#include "WebData.h"
#include "WebFrameClient.h"
@@ -73,6 +74,7 @@
#include "BitmapImage.h"
#include "Cookie.h"
#include "FrameView.h"
+#include "GeolocationServiceBridgeChromium.h"
#include "GraphicsContext.h"
#include "KURL.h"
#include "NotImplemented.h"
@@ -112,6 +114,17 @@ static WebWidgetClient* toWebWidgetClient(Widget* widget)
return chromeClientImpl->webView()->client();
}
+static WebCookieJar* getCookieJar(const Document* document)
+{
+ WebFrameImpl* frameImpl = WebFrameImpl::fromFrame(document->frame());
+ if (!frameImpl || !frameImpl->client())
+ return 0;
+ WebCookieJar* cookieJar = frameImpl->client()->cookieJar();
+ if (!cookieJar)
+ cookieJar = webKitClient()->cookieJar();
+ return cookieJar;
+}
+
// Clipboard ------------------------------------------------------------------
bool ChromiumBridge::clipboardIsFormatAvailable(
@@ -173,25 +186,51 @@ void ChromiumBridge::clipboardWriteImage(NativeImagePtr image,
// Cookies --------------------------------------------------------------------
-void ChromiumBridge::setCookies(const KURL& url,
- const KURL& firstPartyForCookies,
- const String& cookie)
+void ChromiumBridge::setCookies(const Document* document, const KURL& url,
+ const String& value)
{
- webKitClient()->setCookies(url, firstPartyForCookies, cookie);
+ WebCookieJar* cookieJar = getCookieJar(document);
+ if (cookieJar)
+ cookieJar->setCookie(url, document->firstPartyForCookies(), value);
+ else
+ webKitClient()->setCookies(url, document->firstPartyForCookies(), value); // DEPRECATED
+}
+
+String ChromiumBridge::cookies(const Document* document, const KURL& url)
+{
+ String result;
+ WebCookieJar* cookieJar = getCookieJar(document);
+ if (cookieJar)
+ result = cookieJar->cookies(url, document->firstPartyForCookies());
+ else
+ result = webKitClient()->cookies(url, document->firstPartyForCookies()); // DEPRECATED
+ return result;
}
-String ChromiumBridge::cookies(const KURL& url,
- const KURL& firstPartyForCookies)
+String ChromiumBridge::cookieRequestHeaderFieldValue(const Document* document,
+ const KURL& url)
{
- return webKitClient()->cookies(url, firstPartyForCookies);
+ String result;
+ WebCookieJar* cookieJar = getCookieJar(document);
+ if (cookieJar)
+ result = cookieJar->cookieRequestHeaderFieldValue(url, document->firstPartyForCookies());
+ else {
+ // FIXME: This does not return http-only cookies
+ result = webKitClient()->cookies(url, document->firstPartyForCookies()); // DEPRECATED
+ }
+ return result;
}
-bool ChromiumBridge::rawCookies(const KURL& url, const KURL& firstPartyForCookies, Vector<Cookie>* rawCookies)
+bool ChromiumBridge::rawCookies(const Document* document, const KURL& url, Vector<Cookie>& rawCookies)
{
- rawCookies->clear();
+ rawCookies.clear();
WebVector<WebCookie> webCookies;
- if (!webKitClient()->rawCookies(url, firstPartyForCookies, &webCookies))
- return false;
+
+ WebCookieJar* cookieJar = getCookieJar(document);
+ if (cookieJar)
+ cookieJar->rawCookies(url, document->firstPartyForCookies(), webCookies);
+ else
+ webKitClient()->rawCookies(url, document->firstPartyForCookies(), &webCookies); // DEPRECATED
for (unsigned i = 0; i < webCookies.size(); ++i) {
const WebCookie& webCookie = webCookies[i];
@@ -203,20 +242,29 @@ bool ChromiumBridge::rawCookies(const KURL& url, const KURL& firstPartyForCookie
webCookie.httpOnly,
webCookie.secure,
webCookie.session);
- rawCookies->append(cookie);
+ rawCookies.append(cookie);
}
return true;
}
-void ChromiumBridge::deleteCookie(const KURL& url, const String& cookieName)
+void ChromiumBridge::deleteCookie(const Document* document, const KURL& url, const String& cookieName)
{
- webKitClient()->deleteCookie(url, cookieName);
+ WebCookieJar* cookieJar = getCookieJar(document);
+ if (cookieJar)
+ cookieJar->deleteCookie(url, cookieName);
+ else
+ webKitClient()->deleteCookie(url, cookieName); // DEPRECATED
}
-bool ChromiumBridge::cookiesEnabled(const KURL& url,
- const KURL& firstPartyForCookies)
+bool ChromiumBridge::cookiesEnabled(const Document* document)
{
- return webKitClient()->cookiesEnabled(url, firstPartyForCookies);
+ bool result;
+ WebCookieJar* cookieJar = getCookieJar(document);
+ if (cookieJar)
+ result = cookieJar->cookiesEnabled(document->cookieURL(), document->firstPartyForCookies());
+ else
+ result = webKitClient()->cookiesEnabled(document->cookieURL(), document->firstPartyForCookies()); // DEPRECATED
+ return result;
}
// DNS ------------------------------------------------------------------------
@@ -310,6 +358,13 @@ String ChromiumBridge::getFontFamilyForCharacters(const UChar* characters, size_
}
#endif
+// Geolocation ----------------------------------------------------------------
+
+GeolocationServiceBridge* ChromiumBridge::createGeolocationServiceBridge(GeolocationServiceChromium* geolocationServiceChromium)
+{
+ return createGeolocationServiceBridgeImpl(geolocationServiceChromium);
+}
+
// HTML5 DB -------------------------------------------------------------------
#if ENABLE(DATABASE)