Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/save_package.h" | 5 #include "content/browser/download/save_package.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 442 // TODO(jungshik): Figure out the referrer charset when having one | 442 // TODO(jungshik): Figure out the referrer charset when having one |
| 443 // makes sense and pass it to GenerateFileName. | 443 // makes sense and pass it to GenerateFileName. |
| 444 base::FilePath file_path = net::GenerateFileName(url, | 444 base::FilePath file_path = net::GenerateFileName(url, |
| 445 disposition, | 445 disposition, |
| 446 std::string(), | 446 std::string(), |
| 447 std::string(), | 447 std::string(), |
| 448 std::string(), | 448 std::string(), |
| 449 kDefaultSaveName); | 449 kDefaultSaveName); |
| 450 | 450 |
| 451 DCHECK(!file_path.empty()); | 451 DCHECK(!file_path.empty()); |
| 452 if (need_html_ext) | |
| 453 file_path = file_path.ReplaceExtension(kDefaultHtmlExtension); | |
|
Nathan Parker
2016/06/13 21:15:00
Does this remove the existing extension? Might th
asanka
2016/06/14 21:24:07
Indeed. Now using .AddExtension() instead.
| |
| 454 | |
| 455 download_manager_->GetDelegate()->SanitizeSaveItemFilename(&file_path); | |
| 456 | |
| 457 DCHECK_EQ(file_path.DirName().value(), base::FilePath::kCurrentDirectory) | |
| 458 << "Sanitization shouldn't change containing directory"; | |
| 459 | |
| 452 base::FilePath::StringType base_name = | 460 base::FilePath::StringType base_name = |
| 453 file_path.RemoveExtension().BaseName().value(); | 461 file_path.RemoveExtension().BaseName().value(); |
| 454 base::FilePath::StringType file_name_ext = file_path.Extension(); | 462 base::FilePath::StringType file_name_ext = file_path.Extension(); |
| 455 | 463 |
| 456 // If it is HTML resource, use ".html" as its extension. | |
| 457 if (need_html_ext) { | |
| 458 file_name_ext = FILE_PATH_LITERAL("."); | |
| 459 file_name_ext.append(kDefaultHtmlExtension); | |
| 460 } | |
| 461 | |
| 462 // Need to make sure the suggested file name is not too long. | 464 // Need to make sure the suggested file name is not too long. |
| 463 uint32_t max_path = GetMaxPathLengthForDirectory(saved_main_directory_path_); | 465 uint32_t max_path = GetMaxPathLengthForDirectory(saved_main_directory_path_); |
| 464 | 466 |
| 465 // Get safe pure file name. | 467 // Get safe pure file name. |
| 466 if (!TruncateBaseNameToFitPathConstraints( | 468 if (!TruncateBaseNameToFitPathConstraints( |
| 467 saved_main_directory_path_, file_name_ext, max_path, &base_name)) | 469 saved_main_directory_path_, file_name_ext, max_path, &base_name)) |
| 468 return false; | 470 return false; |
| 469 | 471 |
| 470 base::FilePath::StringType file_name = base_name + file_name_ext; | 472 base::FilePath::StringType file_name = base_name + file_name_ext; |
| 471 | 473 |
| (...skipping 1036 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1508 } | 1510 } |
| 1509 | 1511 |
| 1510 void SavePackage::FinalizeDownloadEntry() { | 1512 void SavePackage::FinalizeDownloadEntry() { |
| 1511 DCHECK(download_); | 1513 DCHECK(download_); |
| 1512 | 1514 |
| 1513 download_manager_->OnSavePackageSuccessfullyFinished(download_); | 1515 download_manager_->OnSavePackageSuccessfullyFinished(download_); |
| 1514 RemoveObservers(); | 1516 RemoveObservers(); |
| 1515 } | 1517 } |
| 1516 | 1518 |
| 1517 } // namespace content | 1519 } // namespace content |
| OLD | NEW |