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

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

Issue 16994004: Remove DownloadItem::Is*() in favor of DI::GetState() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@di-getstate-2
Patch Set: Rebased to fix new test, applied suggestions from bauerb and benjhayden Created 7 years, 6 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
« no previous file with comments | « content/browser/download/drag_download_file.cc ('k') | content/public/browser/download_item.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/save_package.h" 5 #include "content/browser/download/save_package.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 void SavePackage::OnMHTMLGenerated(const base::FilePath& path, int64 size) { 356 void SavePackage::OnMHTMLGenerated(const base::FilePath& path, int64 size) {
357 if (size <= 0) { 357 if (size <= 0) {
358 Cancel(false); 358 Cancel(false);
359 return; 359 return;
360 } 360 }
361 wrote_to_completed_file_ = true; 361 wrote_to_completed_file_ = true;
362 362
363 // Hack to avoid touching download_ after user cancel. 363 // Hack to avoid touching download_ after user cancel.
364 // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem 364 // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem
365 // with SavePackage flow. 365 // with SavePackage flow.
366 if (download_->IsInProgress()) { 366 if (download_->GetState() == DownloadItem::IN_PROGRESS) {
367 download_->SetTotalBytes(size); 367 download_->SetTotalBytes(size);
368 download_->DestinationUpdate(size, 0, std::string()); 368 download_->DestinationUpdate(size, 0, std::string());
369 // Must call OnAllDataSaved here in order for 369 // Must call OnAllDataSaved here in order for
370 // GDataDownloadObserver::ShouldUpload() to return true. 370 // GDataDownloadObserver::ShouldUpload() to return true.
371 // ShouldCompleteDownload() may depend on the gdata uploader to finish. 371 // ShouldCompleteDownload() may depend on the gdata uploader to finish.
372 download_->OnAllDataSaved(DownloadItem::kEmptyFileHash); 372 download_->OnAllDataSaved(DownloadItem::kEmptyFileHash);
373 } 373 }
374 374
375 if (!download_manager_->GetDelegate()) { 375 if (!download_manager_->GetDelegate()) {
376 Finish(); 376 Finish();
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
783 BrowserThread::PostTask( 783 BrowserThread::PostTask(
784 BrowserThread::FILE, FROM_HERE, 784 BrowserThread::FILE, FROM_HERE,
785 base::Bind(&SaveFileManager::RemoveSavedFileFromFileMap, 785 base::Bind(&SaveFileManager::RemoveSavedFileFromFileMap,
786 file_manager_, 786 file_manager_,
787 save_ids)); 787 save_ids));
788 788
789 if (download_) { 789 if (download_) {
790 // Hack to avoid touching download_ after user cancel. 790 // Hack to avoid touching download_ after user cancel.
791 // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem 791 // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem
792 // with SavePackage flow. 792 // with SavePackage flow.
793 if (download_->IsInProgress()) { 793 if (download_->GetState() == DownloadItem::IN_PROGRESS) {
794 if (save_type_ != SAVE_PAGE_TYPE_AS_MHTML) { 794 if (save_type_ != SAVE_PAGE_TYPE_AS_MHTML) {
795 download_->DestinationUpdate( 795 download_->DestinationUpdate(
796 all_save_items_count_, CurrentSpeed(), std::string()); 796 all_save_items_count_, CurrentSpeed(), std::string());
797 download_->OnAllDataSaved(DownloadItem::kEmptyFileHash); 797 download_->OnAllDataSaved(DownloadItem::kEmptyFileHash);
798 } 798 }
799 download_->MarkAsComplete(); 799 download_->MarkAsComplete();
800 } 800 }
801 FinalizeDownloadEntry(); 801 FinalizeDownloadEntry();
802 } 802 }
803 } 803 }
(...skipping 11 matching lines...) Expand all
815 // Remove the associated save id and SavePackage. 815 // Remove the associated save id and SavePackage.
816 file_manager_->RemoveSaveFile(save_id, save_item->url(), this); 816 file_manager_->RemoveSaveFile(save_id, save_item->url(), this);
817 817
818 PutInProgressItemToSavedMap(save_item); 818 PutInProgressItemToSavedMap(save_item);
819 819
820 // Inform the DownloadItem to update UI. 820 // Inform the DownloadItem to update UI.
821 // We use the received bytes as number of saved files. 821 // We use the received bytes as number of saved files.
822 // Hack to avoid touching download_ after user cancel. 822 // Hack to avoid touching download_ after user cancel.
823 // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem 823 // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem
824 // with SavePackage flow. 824 // with SavePackage flow.
825 if (download_ && download_->IsInProgress()) { 825 if (download_ && (download_->GetState() == DownloadItem::IN_PROGRESS)) {
826 download_->DestinationUpdate( 826 download_->DestinationUpdate(
827 completed_count(), CurrentSpeed(), std::string()); 827 completed_count(), CurrentSpeed(), std::string());
828 } 828 }
829 829
830 if (save_item->save_source() == SaveFileCreateInfo::SAVE_FILE_FROM_DOM && 830 if (save_item->save_source() == SaveFileCreateInfo::SAVE_FILE_FROM_DOM &&
831 save_item->url() == page_url_ && !save_item->received_bytes()) { 831 save_item->url() == page_url_ && !save_item->received_bytes()) {
832 // If size of main HTML page is 0, treat it as disk error. 832 // If size of main HTML page is 0, treat it as disk error.
833 Cancel(false); 833 Cancel(false);
834 return; 834 return;
835 } 835 }
(...skipping 26 matching lines...) Expand all
862 862
863 save_item->Finish(0, false); 863 save_item->Finish(0, false);
864 864
865 PutInProgressItemToSavedMap(save_item); 865 PutInProgressItemToSavedMap(save_item);
866 866
867 // Inform the DownloadItem to update UI. 867 // Inform the DownloadItem to update UI.
868 // We use the received bytes as number of saved files. 868 // We use the received bytes as number of saved files.
869 // Hack to avoid touching download_ after user cancel. 869 // Hack to avoid touching download_ after user cancel.
870 // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem 870 // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem
871 // with SavePackage flow. 871 // with SavePackage flow.
872 if (download_ && download_->IsInProgress()) { 872 if (download_ && (download_->GetState() == DownloadItem::IN_PROGRESS)) {
873 download_->DestinationUpdate( 873 download_->DestinationUpdate(
874 completed_count(), CurrentSpeed(), std::string()); 874 completed_count(), CurrentSpeed(), std::string());
875 } 875 }
876 876
877 if ((save_type_ == SAVE_PAGE_TYPE_AS_ONLY_HTML) || 877 if ((save_type_ == SAVE_PAGE_TYPE_AS_ONLY_HTML) ||
878 (save_type_ == SAVE_PAGE_TYPE_AS_MHTML) || 878 (save_type_ == SAVE_PAGE_TYPE_AS_MHTML) ||
879 (save_item->save_source() == SaveFileCreateInfo::SAVE_FILE_FROM_DOM)) { 879 (save_item->save_source() == SaveFileCreateInfo::SAVE_FILE_FROM_DOM)) {
880 // We got error when saving page. Treat it as disk error. 880 // We got error when saving page. Treat it as disk error.
881 Cancel(true); 881 Cancel(true);
882 } 882 }
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
1157 if (resources_list.size() != referrers_list.size()) 1157 if (resources_list.size() != referrers_list.size())
1158 return; 1158 return;
1159 1159
1160 all_save_items_count_ = static_cast<int>(resources_list.size()) + 1160 all_save_items_count_ = static_cast<int>(resources_list.size()) +
1161 static_cast<int>(frames_list.size()); 1161 static_cast<int>(frames_list.size());
1162 1162
1163 // We use total bytes as the total number of files we want to save. 1163 // We use total bytes as the total number of files we want to save.
1164 // Hack to avoid touching download_ after user cancel. 1164 // Hack to avoid touching download_ after user cancel.
1165 // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem 1165 // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem
1166 // with SavePackage flow. 1166 // with SavePackage flow.
1167 if (download_ && download_->IsInProgress()) 1167 if (download_ && (download_->GetState() == DownloadItem::IN_PROGRESS))
1168 download_->SetTotalBytes(all_save_items_count_); 1168 download_->SetTotalBytes(all_save_items_count_);
1169 1169
1170 if (all_save_items_count_) { 1170 if (all_save_items_count_) {
1171 // Put all sub-resources to wait list. 1171 // Put all sub-resources to wait list.
1172 for (int i = 0; i < static_cast<int>(resources_list.size()); ++i) { 1172 for (int i = 0; i < static_cast<int>(resources_list.size()); ++i) {
1173 const GURL& u = resources_list[i]; 1173 const GURL& u = resources_list[i];
1174 DCHECK(u.is_valid()); 1174 DCHECK(u.is_valid());
1175 SaveFileCreateInfo::SaveFileSource save_source = u.SchemeIsFile() ? 1175 SaveFileCreateInfo::SaveFileSource save_source = u.SchemeIsFile() ?
1176 SaveFileCreateInfo::SAVE_FILE_FROM_FILE : 1176 SaveFileCreateInfo::SAVE_FILE_FROM_FILE :
1177 SaveFileCreateInfo::SAVE_FILE_FROM_NET; 1177 SaveFileCreateInfo::SAVE_FILE_FROM_NET;
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
1436 1436
1437 void SavePackage::FinalizeDownloadEntry() { 1437 void SavePackage::FinalizeDownloadEntry() {
1438 DCHECK(download_); 1438 DCHECK(download_);
1439 DCHECK(download_manager_); 1439 DCHECK(download_manager_);
1440 1440
1441 download_manager_->OnSavePackageSuccessfullyFinished(download_); 1441 download_manager_->OnSavePackageSuccessfullyFinished(download_);
1442 StopObservation(); 1442 StopObservation();
1443 } 1443 }
1444 1444
1445 } // namespace content 1445 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/download/drag_download_file.cc ('k') | content/public/browser/download_item.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698