diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-27 19:05:15 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-27 19:05:15 +0000 |
commit | 0994896272d87b3376a2d7687e6f1452506b5746 (patch) | |
tree | 9f70e05a1dbf7449db58898bfce343f09684b7ce /content/browser/download | |
parent | 6335fc2676f780d574d4465517ca7ee339066149 (diff) | |
download | chromium_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.cc | 5 | ||||
-rw-r--r-- | content/browser/download/save_package.cc | 22 |
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)); } |