Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(386)

Side by Side Diff: content/browser/download/download_resource_handler.cc

Issue 246893006: [Downloads] Clear suggested filename on cross origin redirect. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Simplify use of EmbeddedTestServer Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/download/download_resource_handler.h" 5 #include "content/browser/download/download_resource_handler.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 // Success & not range response; if we asked for a range, we didn't 232 // Success & not range response; if we asked for a range, we didn't
233 // get it--reset the file pointers to reflect that. 233 // get it--reset the file pointers to reflect that.
234 info->save_info->offset = 0; 234 info->save_info->offset = 0;
235 info->save_info->hash_state = ""; 235 info->save_info->hash_state = "";
236 } 236 }
237 237
238 if (!headers->GetMimeType(&info->original_mime_type)) 238 if (!headers->GetMimeType(&info->original_mime_type))
239 info->original_mime_type.clear(); 239 info->original_mime_type.clear();
240 } 240 }
241 241
242 // Blink verifies that the requester of this download is allowed to set a
243 // suggested name for the security origin of the downlaod URL. However, this
244 // assumption doesn't hold if there were cross origin redirects. Therefore,
245 // clear the suggested_name for such requests.
246 if (info->url_chain.size() > 1 &&
247 info->url_chain.front().GetOrigin() != info->url_chain.back().GetOrigin())
248 info->save_info->suggested_name.clear();
249
242 BrowserThread::PostTask( 250 BrowserThread::PostTask(
243 BrowserThread::UI, FROM_HERE, 251 BrowserThread::UI, FROM_HERE,
244 base::Bind(&StartOnUIThread, 252 base::Bind(&StartOnUIThread,
245 base::Passed(&info), 253 base::Passed(&info),
246 base::Owned(tab_info_), 254 base::Owned(tab_info_),
247 base::Passed(&stream_reader), 255 base::Passed(&stream_reader),
248 // Pass to StartOnUIThread so that variable 256 // Pass to StartOnUIThread so that variable
249 // access is always on IO thread but function 257 // access is always on IO thread but function
250 // is called on UI thread. 258 // is called on UI thread.
251 started_cb_)); 259 started_cb_));
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 // tab_info_ must be destroyed on UI thread, since 541 // tab_info_ must be destroyed on UI thread, since
534 // InitializeDownloadTabInfoOnUIThread might still be using it. 542 // InitializeDownloadTabInfoOnUIThread might still be using it.
535 if (tab_info_) 543 if (tab_info_)
536 BrowserThread::DeleteSoon(BrowserThread::UI, FROM_HERE, tab_info_); 544 BrowserThread::DeleteSoon(BrowserThread::UI, FROM_HERE, tab_info_);
537 545
538 UMA_HISTOGRAM_TIMES("SB2.DownloadDuration", 546 UMA_HISTOGRAM_TIMES("SB2.DownloadDuration",
539 base::TimeTicks::Now() - download_start_time_); 547 base::TimeTicks::Now() - download_start_time_);
540 } 548 }
541 549
542 } // namespace content 550 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698