Chromium Code Reviews| Index: net/base/data_url.cc |
| diff --git a/net/base/data_url.cc b/net/base/data_url.cc |
| index e7b46cd44ceb5bc144d29ffc99fb4489a1a02eaf..07fbd1ebc36e7db2f3362ff7e5daf92c90e33512 100644 |
| --- a/net/base/data_url.cc |
| +++ b/net/base/data_url.cc |
| @@ -13,6 +13,7 @@ |
| #include "base/strings/string_split.h" |
| #include "base/strings/string_util.h" |
| #include "net/base/escape.h" |
| +#include "net/http/http_util.h" |
| #include "url/gurl.h" |
| namespace net { |
| @@ -59,9 +60,18 @@ bool DataURL::Parse(const GURL& url, std::string* mime_type, |
| } |
| } |
| - // fallback to defaults if nothing specified in the URL: |
| - if (mime_type->empty()) |
| + if (mime_type->empty()) { |
| + // fallback to defaults if nothing specified in the URL: |
| mime_type->assign("text/plain"); |
| + } else { |
| + // Check grammar. |
|
asanka
2014/03/26 19:42:09
Consider using IsMimeType() instead?
tyoshino (SeeGerritForStatus)
2014/03/26 22:07:00
I considered that. But IsMimeType() doesn't check
asanka
2014/03/26 22:29:42
SGTM
|
| + std::vector<std::string> mime_type_components; |
| + base::SplitString(*mime_type, '/', &mime_type_components); |
| + if (mime_type_components.size() != 2 || |
| + !HttpUtil::IsToken(mime_type_components[0]) || |
| + !HttpUtil::IsToken(mime_type_components[1])) |
| + return false; |
| + } |
| if (charset->empty()) |
| charset->assign("US-ASCII"); |