summaryrefslogtreecommitdiffstats
path: root/content/browser/download
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-27 19:05:15 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-27 19:05:15 +0000
commit0994896272d87b3376a2d7687e6f1452506b5746 (patch)
tree9f70e05a1dbf7449db58898bfce343f09684b7ce /content/browser/download
parent6335fc2676f780d574d4465517ca7ee339066149 (diff)
downloadchromium_src-0994896272d87b3376a2d7687e6f1452506b5746.zip
chromium_src-0994896272d87b3376a2d7687e6f1452506b5746.tar.gz
chromium_src-0994896272d87b3376a2d7687e6f1452506b5746.tar.bz2
Enable saving of data: urls.
1. Add data: to the list of savable urls, for "save page as" path (used for text and html files). 2. Instead of suggesting the whole url as file name for dataurls, suggest just "dataurl". That's at least shorter. 3. Remove explicit blacklisting of data: urls from download path (used for images) BUG=97108,119129 TEST=Open |data:text/plain;charset=ascii,hello|, hit cmd-s. Should save. Open |data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==|, hit cmd-s. Should save. TBR=avi Review URL: http://codereview.chromium.org/10241004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134314 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/download')
-rw-r--r--content/browser/download/download_resource_handler.cc5
-rw-r--r--content/browser/download/save_package.cc22
2 files changed, 13 insertions, 14 deletions
diff --git a/content/browser/download/download_resource_handler.cc b/content/browser/download/download_resource_handler.cc
index bdcd1d7..c3e47fe 100644
--- a/content/browser/download/download_resource_handler.cc
+++ b/content/browser/download/download_resource_handler.cc
@@ -98,11 +98,6 @@ bool DownloadResourceHandler::OnResponseStarted(
<< " request_id = " << request_id;
download_start_time_ = base::TimeTicks::Now();
- if (request_->url().scheme() == "data") {
- CallStartedCB(download_id_, net::ERR_DISALLOWED_URL_SCHEME);
- return false;
- }
-
// If it's a download, we don't want to poison the cache with it.
request_->StopCaching();
diff --git a/content/browser/download/save_package.cc b/content/browser/download/save_package.cc
index 65fe474..3debc15 100644
--- a/content/browser/download/save_package.cc
+++ b/content/browser/download/save_package.cc
@@ -1106,17 +1106,21 @@ FilePath SavePackage::GetSuggestedNameForSaveAs(
// similarly).
if (title_ == net::FormatUrl(page_url_, accept_langs)) {
std::string url_path;
- std::vector<std::string> url_parts;
- base::SplitString(page_url_.path(), '/', &url_parts);
- if (!url_parts.empty()) {
- for (int i = static_cast<int>(url_parts.size()) - 1; i >= 0; --i) {
- url_path = url_parts[i];
- if (!url_path.empty())
- break;
+ if (!page_url_.SchemeIs(chrome::kDataScheme)) {
+ std::vector<std::string> url_parts;
+ base::SplitString(page_url_.path(), '/', &url_parts);
+ if (!url_parts.empty()) {
+ for (int i = static_cast<int>(url_parts.size()) - 1; i >= 0; --i) {
+ url_path = url_parts[i];
+ if (!url_path.empty())
+ break;
+ }
}
+ if (url_path.empty())
+ url_path = page_url_.host();
+ } else {
+ url_path = "dataurl";
}
- if (url_path.empty())
- url_path = page_url_.host();
name_with_proper_ext = FilePath::FromWStringHack(UTF8ToWide(url_path));
}