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

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

Issue 2044233002: Remove download resumption feature flag. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
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 // File method ordering: Methods in this file are in the same order as 5 // File method ordering: Methods in this file are in the same order as
6 // in download_item_impl.h, with the following exception: The public 6 // in download_item_impl.h, with the following exception: The public
7 // interface Start is placed in chronological order with the other 7 // interface Start is placed in chronological order with the other
8 // (private) routines that together define a DownloadItem's state 8 // (private) routines that together define a DownloadItem's state
9 // transitions as the download progresses. See "Download progression 9 // transitions as the download progresses. See "Download progression
10 // cascade" later in this file. 10 // cascade" later in this file.
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 base::FilePath full_path = download_file->FullPath(); 88 base::FilePath full_path = download_file->FullPath();
89 download_file->Detach(); 89 download_file->Detach();
90 return full_path; 90 return full_path;
91 } 91 }
92 92
93 static void DownloadFileCancel(std::unique_ptr<DownloadFile> download_file) { 93 static void DownloadFileCancel(std::unique_ptr<DownloadFile> download_file) {
94 DCHECK_CURRENTLY_ON(BrowserThread::FILE); 94 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
95 download_file->Cancel(); 95 download_file->Cancel();
96 } 96 }
97 97
98 bool IsDownloadResumptionEnabled() {
99 return base::FeatureList::IsEnabled(features::kDownloadResumption);
100 }
101
102 } // namespace 98 } // namespace
103 99
104 const uint32_t DownloadItem::kInvalidId = 0; 100 const uint32_t DownloadItem::kInvalidId = 0;
105 101
106 // The maximum number of attempts we will make to resume automatically. 102 // The maximum number of attempts we will make to resume automatically.
107 const int DownloadItemImpl::kMaxAutoResumeAttempts = 5; 103 const int DownloadItemImpl::kMaxAutoResumeAttempts = 5;
108 104
109 // Constructor for reading from the history service. 105 // Constructor for reading from the history service.
110 DownloadItemImpl::DownloadItemImpl(DownloadItemImplDelegate* delegate, 106 DownloadItemImpl::DownloadItemImpl(DownloadItemImplDelegate* delegate,
111 const std::string& guid, 107 const std::string& guid,
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 472
477 case TARGET_PENDING_INTERNAL: 473 case TARGET_PENDING_INTERNAL:
478 case TARGET_RESOLVED_INTERNAL: 474 case TARGET_RESOLVED_INTERNAL:
479 case IN_PROGRESS_INTERNAL: 475 case IN_PROGRESS_INTERNAL:
480 return is_paused_; 476 return is_paused_;
481 477
482 case INTERRUPTED_INTERNAL: { 478 case INTERRUPTED_INTERNAL: {
483 ResumeMode resume_mode = GetResumeMode(); 479 ResumeMode resume_mode = GetResumeMode();
484 // Only allow Resume() calls if the resumption mode requires a user 480 // Only allow Resume() calls if the resumption mode requires a user
485 // action. 481 // action.
486 return IsDownloadResumptionEnabled() && 482 return resume_mode == RESUME_MODE_USER_RESTART ||
487 (resume_mode == RESUME_MODE_USER_RESTART || 483 resume_mode == RESUME_MODE_USER_CONTINUE;
488 resume_mode == RESUME_MODE_USER_CONTINUE);
489 } 484 }
490 485
491 case MAX_DOWNLOAD_INTERNAL_STATE: 486 case MAX_DOWNLOAD_INTERNAL_STATE:
492 NOTREACHED(); 487 NOTREACHED();
493 } 488 }
494 return false; 489 return false;
495 } 490 }
496 491
497 bool DownloadItemImpl::IsDone() const { 492 bool DownloadItemImpl::IsDone() const {
498 switch (state_) { 493 switch (state_) {
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
837 } 832 }
838 833
839 description += " }"; 834 description += " }";
840 835
841 return description; 836 return description;
842 } 837 }
843 838
844 DownloadItemImpl::ResumeMode DownloadItemImpl::GetResumeMode() const { 839 DownloadItemImpl::ResumeMode DownloadItemImpl::GetResumeMode() const {
845 DCHECK_CURRENTLY_ON(BrowserThread::UI); 840 DCHECK_CURRENTLY_ON(BrowserThread::UI);
846 841
847 if (!IsDownloadResumptionEnabled())
848 return RESUME_MODE_INVALID;
849
850 // Only support resumption for HTTP(S). 842 // Only support resumption for HTTP(S).
851 if (!GetURL().SchemeIsHTTPOrHTTPS()) 843 if (!GetURL().SchemeIsHTTPOrHTTPS())
852 return RESUME_MODE_INVALID; 844 return RESUME_MODE_INVALID;
853 845
854 // We can't continue without a handle on the intermediate file. 846 // We can't continue without a handle on the intermediate file.
855 // We also can't continue if we don't have some verifier to make sure 847 // We also can't continue if we don't have some verifier to make sure
856 // we're getting the same file. 848 // we're getting the same file.
857 bool restart_required = 849 bool restart_required =
858 (current_path_.empty() || (etag_.empty() && last_modified_time_.empty())); 850 (current_path_.empty() || (etag_.empty() && last_modified_time_.empty()));
859 851
(...skipping 1017 matching lines...) Expand 10 before | Expand all | Expand 10 after
1877 } 1869 }
1878 1870
1879 auto_resume_count_++; 1871 auto_resume_count_++;
1880 1872
1881 ResumeInterruptedDownload(ResumptionRequestSource::AUTOMATIC); 1873 ResumeInterruptedDownload(ResumptionRequestSource::AUTOMATIC);
1882 } 1874 }
1883 1875
1884 void DownloadItemImpl::ResumeInterruptedDownload( 1876 void DownloadItemImpl::ResumeInterruptedDownload(
1885 ResumptionRequestSource source) { 1877 ResumptionRequestSource source) {
1886 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1878 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1887 if (!IsDownloadResumptionEnabled())
1888 return;
1889
1890 // If we're not interrupted, ignore the request; our caller is drunk. 1879 // If we're not interrupted, ignore the request; our caller is drunk.
1891 if (state_ != INTERRUPTED_INTERNAL) 1880 if (state_ != INTERRUPTED_INTERNAL)
1892 return; 1881 return;
1893 1882
1894 // We are starting a new request. Shake off all pending operations. 1883 // We are starting a new request. Shake off all pending operations.
1895 DCHECK(!download_file_); 1884 DCHECK(!download_file_);
1896 weak_ptr_factory_.InvalidateWeakPtrs(); 1885 weak_ptr_factory_.InvalidateWeakPtrs();
1897 1886
1898 // Reset the appropriate state if restarting. 1887 // Reset the appropriate state if restarting.
1899 ResumeMode mode = GetResumeMode(); 1888 ResumeMode mode = GetResumeMode();
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
2109 case RESUME_MODE_USER_CONTINUE: 2098 case RESUME_MODE_USER_CONTINUE:
2110 return "USER_CONTINUE"; 2099 return "USER_CONTINUE";
2111 case RESUME_MODE_USER_RESTART: 2100 case RESUME_MODE_USER_RESTART:
2112 return "USER_RESTART"; 2101 return "USER_RESTART";
2113 } 2102 }
2114 NOTREACHED() << "Unknown resume mode " << mode; 2103 NOTREACHED() << "Unknown resume mode " << mode;
2115 return "unknown"; 2104 return "unknown";
2116 } 2105 }
2117 2106
2118 } // namespace content 2107 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/download/download_browsertest.cc ('k') | content/browser/download/download_item_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698