summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpdr@chromium.org <pdr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-07 20:20:39 +0000
committerpdr@chromium.org <pdr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-07 20:20:39 +0000
commitddba66b64259c75afa34e654b1cdf0ae86444be6 (patch)
tree181622b619aa7fb6887d6d2b2ca3484a876578b2
parent7a055c917006400b81662815a2e0a8d837edbccb (diff)
downloadchromium_src-ddba66b64259c75afa34e654b1cdf0ae86444be6.zip
chromium_src-ddba66b64259c75afa34e654b1cdf0ae86444be6.tar.gz
chromium_src-ddba66b64259c75afa34e654b1cdf0ae86444be6.tar.bz2
Expose parseDataURL to Platform
This patch exposes data url parsing to WebKit. This is a Chromium-side change for https://codereview.chromium.org/16433002. BUG=224317 R=jamesr@chromium.org Review URL: https://codereview.chromium.org/16096016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204907 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--webkit/glue/webkitplatformsupport_impl.cc16
-rw-r--r--webkit/glue/webkitplatformsupport_impl.h3
2 files changed, 19 insertions, 0 deletions
diff --git a/webkit/glue/webkitplatformsupport_impl.cc b/webkit/glue/webkitplatformsupport_impl.cc
index c4d9e52..850041b 100644
--- a/webkit/glue/webkitplatformsupport_impl.cc
+++ b/webkit/glue/webkitplatformsupport_impl.cc
@@ -28,6 +28,8 @@
#include "grit/webkit_chromium_resources.h"
#include "grit/webkit_resources.h"
#include "grit/webkit_strings.h"
+#include "net/base/data_url.h"
+#include "net/base/mime_util.h"
#include "net/base/net_errors.h"
#include "third_party/WebKit/public/platform/WebCookie.h"
#include "third_party/WebKit/public/platform/WebData.h"
@@ -403,6 +405,20 @@ WebString WebKitPlatformSupportImpl::userAgent(const WebURL& url) {
return WebString::fromUTF8(webkit_glue::GetUserAgent(url));
}
+WebData WebKitPlatformSupportImpl::parseDataURL(
+ const WebURL& url,
+ WebString& mimetype_out,
+ WebString& charset_out) {
+ std::string mime_type, char_set, data;
+ if (net::DataURL::Parse(url, &mime_type, &char_set, &data)
+ && net::IsSupportedMimeType(mime_type)) {
+ mimetype_out = WebString::fromUTF8(mime_type);
+ charset_out = WebString::fromUTF8(char_set);
+ return data;
+ }
+ return WebData();
+}
+
WebURLError WebKitPlatformSupportImpl::cancelledError(
const WebURL& unreachableURL) const {
return WebURLLoaderImpl::CreateError(unreachableURL, net::ERR_ABORTED);
diff --git a/webkit/glue/webkitplatformsupport_impl.h b/webkit/glue/webkitplatformsupport_impl.h
index 5e4acb2..53d31bf 100644
--- a/webkit/glue/webkitplatformsupport_impl.h
+++ b/webkit/glue/webkitplatformsupport_impl.h
@@ -85,6 +85,9 @@ class WEBKIT_GLUE_EXPORT WebKitPlatformSupportImpl :
virtual WebKit::WebURLLoader* createURLLoader();
virtual WebKit::WebSocketStreamHandle* createSocketStreamHandle();
virtual WebKit::WebString userAgent(const WebKit::WebURL& url);
+ WebKit::WebData parseDataURL(
+ const WebKit::WebURL& url, WebKit::WebString& mimetype,
+ WebKit::WebString& charset);
virtual WebKit::WebURLError cancelledError(const WebKit::WebURL& url) const;
virtual void getPluginList(bool refresh, WebKit::WebPluginListBuilder*);
virtual void decrementStatsCounter(const char* name);