| Index: content/browser/download/download_item_impl.cc
|
| diff --git a/content/browser/download/download_item_impl.cc b/content/browser/download/download_item_impl.cc
|
| index 1708a63c50cabe56137073dea3f94dff5acf0a38..a1fa926b3182450680c6668ac0a42fcb970c4714 100644
|
| --- a/content/browser/download/download_item_impl.cc
|
| +++ b/content/browser/download/download_item_impl.cc
|
| @@ -474,8 +474,7 @@ bool DownloadItemImpl::IsComplete() const {
|
| }
|
|
|
| const GURL& DownloadItemImpl::GetURL() const {
|
| - return url_chain_.empty() ?
|
| - GURL::EmptyGURL() : url_chain_.back();
|
| + return url_chain_.empty() ? GURL::EmptyGURL() : url_chain_.back();
|
| }
|
|
|
| const std::vector<GURL>& DownloadItemImpl::GetUrlChain() const {
|
| @@ -483,7 +482,9 @@ const std::vector<GURL>& DownloadItemImpl::GetUrlChain() const {
|
| }
|
|
|
| const GURL& DownloadItemImpl::GetOriginalUrl() const {
|
| - return url_chain_.front();
|
| + // Be careful about taking the front() of possibly-empty vectors!
|
| + // http://crbug.com/190096
|
| + return url_chain_.empty() ? GURL::EmptyGURL() : url_chain_.front();
|
| }
|
|
|
| const GURL& DownloadItemImpl::GetReferrerUrl() const {
|
| @@ -721,12 +722,12 @@ std::string DownloadItemImpl::DebugString(bool verbose) const {
|
| if (!url_chain_.empty()) {
|
| std::vector<GURL>::const_iterator iter = url_chain_.begin();
|
| std::vector<GURL>::const_iterator last = url_chain_.end();
|
| - url_list = (*iter).spec();
|
| + url_list = (*iter).is_valid() ? (*iter).spec() : "<invalid>";
|
| ++iter;
|
| for ( ; verbose && (iter != last); ++iter) {
|
| url_list += " ->\n\t";
|
| const GURL& next_url = *iter;
|
| - url_list += next_url.spec();
|
| + url_list += next_url.is_valid() ? next_url.spec() : "<invalid>";
|
| }
|
| }
|
|
|
|
|