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

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

Issue 2674973003: Adding a DownloadRestrictions group policy. (Closed)
Patch Set: Rebase Created 3 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 614 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 std::string DownloadItemImpl::GetOriginalMimeType() const { 625 std::string DownloadItemImpl::GetOriginalMimeType() const {
626 return original_mime_type_; 626 return original_mime_type_;
627 } 627 }
628 628
629 std::string DownloadItemImpl::GetRemoteAddress() const { 629 std::string DownloadItemImpl::GetRemoteAddress() const {
630 return remote_address_; 630 return remote_address_;
631 } 631 }
632 632
633 bool DownloadItemImpl::HasUserGesture() const { 633 bool DownloadItemImpl::HasUserGesture() const {
634 return has_user_gesture_; 634 return has_user_gesture_;
635 }; 635 }
636 636
637 ui::PageTransition DownloadItemImpl::GetTransitionType() const { 637 ui::PageTransition DownloadItemImpl::GetTransitionType() const {
638 return transition_type_; 638 return transition_type_;
639 }; 639 }
640 640
641 const std::string& DownloadItemImpl::GetLastModifiedTime() const { 641 const std::string& DownloadItemImpl::GetLastModifiedTime() const {
642 return last_modified_time_; 642 return last_modified_time_;
643 } 643 }
644 644
645 const std::string& DownloadItemImpl::GetETag() const { 645 const std::string& DownloadItemImpl::GetETag() const {
646 return etag_; 646 return etag_;
647 } 647 }
648 648
649 bool DownloadItemImpl::IsSavePackageDownload() const { 649 bool DownloadItemImpl::IsSavePackageDownload() const {
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 WebContents* DownloadItemImpl::GetWebContents() const { 819 WebContents* DownloadItemImpl::GetWebContents() const {
820 // TODO(rdsmith): Remove null check after removing GetWebContents() from 820 // TODO(rdsmith): Remove null check after removing GetWebContents() from
821 // paths that might be used by DownloadItems created from history import. 821 // paths that might be used by DownloadItems created from history import.
822 // Currently such items have null request_handle_s, where other items 822 // Currently such items have null request_handle_s, where other items
823 // (regular and SavePackage downloads) have actual objects off the pointer. 823 // (regular and SavePackage downloads) have actual objects off the pointer.
824 if (job_) 824 if (job_)
825 return job_->GetWebContents(); 825 return job_->GetWebContents();
826 return nullptr; 826 return nullptr;
827 } 827 }
828 828
829 void DownloadItemImpl::OnContentCheckCompleted(DownloadDangerType danger_type) { 829 void DownloadItemImpl::OnContentCheckCompleted(DownloadDangerType danger_type,
830 DownloadInterruptReason reason) {
830 DCHECK_CURRENTLY_ON(BrowserThread::UI); 831 DCHECK_CURRENTLY_ON(BrowserThread::UI);
831 DCHECK(AllDataSaved()); 832 DCHECK(AllDataSaved());
832 833
833 // Danger type is only allowed to be set on an active download after all data 834 // Danger type is only allowed to be set on an active download after all data
834 // has been saved. This excludes all other states. In particular, 835 // has been saved. This excludes all other states. In particular,
835 // OnContentCheckCompleted() isn't allowed on an INTERRUPTED download since 836 // OnContentCheckCompleted() isn't allowed on an INTERRUPTED download since
836 // such an interruption would need to happen between OnAllDataSaved() and 837 // such an interruption would need to happen between OnAllDataSaved() and
837 // OnContentCheckCompleted() during which no disk or network activity 838 // OnContentCheckCompleted() during which no disk or network activity
838 // should've taken place. 839 // should've taken place.
839 DCHECK_EQ(state_, IN_PROGRESS_INTERNAL); 840 DCHECK_EQ(state_, IN_PROGRESS_INTERNAL);
840 DVLOG(20) << __func__ << "() danger_type=" << danger_type 841 DVLOG(20) << __func__ << "() danger_type=" << danger_type
841 << " download=" << DebugString(true); 842 << " download=" << DebugString(true);
842 SetDangerType(danger_type); 843 SetDangerType(danger_type);
844 if (reason != DOWNLOAD_INTERRUPT_REASON_NONE)
845 InterruptAndDiscardPartialState(reason);
asanka 2017/06/06 03:00:36 The only interrupt reasons that make sense here ar
MAD 2017/06/06 18:00:28 Héhé... Interestingly, I initially had a bool and
asanka 2017/06/06 18:34:18 LOL. Apologies for the runaround :). I'll defer to
MAD 2017/06/12 17:38:15 OK, thanks, I'll wait to see if the OWNERs prefer
David Trainor- moved to gerrit 2017/06/12 19:09:04 I'm ok leaving the interrupt reason here. Could w
MAD 2017/06/12 19:45:13 Done.
843 UpdateObservers(); 846 UpdateObservers();
844 } 847 }
845 848
846 void DownloadItemImpl::SetOpenWhenComplete(bool open) { 849 void DownloadItemImpl::SetOpenWhenComplete(bool open) {
847 open_when_complete_ = open; 850 open_when_complete_ = open;
848 } 851 }
849 852
850 void DownloadItemImpl::SetOpened(bool opened) { 853 void DownloadItemImpl::SetOpened(bool opened) {
851 opened_ = opened; 854 opened_ = opened;
852 } 855 }
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
928 // We also can't continue if we don't have some verifier to make sure 931 // We also can't continue if we don't have some verifier to make sure
929 // we're getting the same file. 932 // we're getting the same file.
930 bool restart_required = 933 bool restart_required =
931 (current_path_.empty() || (etag_.empty() && last_modified_time_.empty())); 934 (current_path_.empty() || (etag_.empty() && last_modified_time_.empty()));
932 935
933 // We won't auto-restart if we've used up our attempts or the 936 // We won't auto-restart if we've used up our attempts or the
934 // download has been paused by user action. 937 // download has been paused by user action.
935 bool user_action_required = 938 bool user_action_required =
936 (auto_resume_count_ >= kMaxAutoResumeAttempts || IsPaused()); 939 (auto_resume_count_ >= kMaxAutoResumeAttempts || IsPaused());
937 940
938 switch(last_reason_) { 941 switch (last_reason_) {
939 case DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR: 942 case DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR:
940 case DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT: 943 case DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT:
941 case DOWNLOAD_INTERRUPT_REASON_SERVER_CONTENT_LENGTH_MISMATCH: 944 case DOWNLOAD_INTERRUPT_REASON_SERVER_CONTENT_LENGTH_MISMATCH:
942 break; 945 break;
943 946
944 case DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE: 947 case DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE:
945 // The server disagreed with the file offset that we sent. 948 // The server disagreed with the file offset that we sent.
946 949
947 case DOWNLOAD_INTERRUPT_REASON_FILE_HASH_MISMATCH: 950 case DOWNLOAD_INTERRUPT_REASON_FILE_HASH_MISMATCH:
948 // The file on disk was found to not match the expected hash. Discard and 951 // The file on disk was found to not match the expected hash. Discard and
(...skipping 1337 matching lines...) Expand 10 before | Expand all | Expand 10 after
2286 case RESUME_MODE_USER_CONTINUE: 2289 case RESUME_MODE_USER_CONTINUE:
2287 return "USER_CONTINUE"; 2290 return "USER_CONTINUE";
2288 case RESUME_MODE_USER_RESTART: 2291 case RESUME_MODE_USER_RESTART:
2289 return "USER_RESTART"; 2292 return "USER_RESTART";
2290 } 2293 }
2291 NOTREACHED() << "Unknown resume mode " << mode; 2294 NOTREACHED() << "Unknown resume mode " << mode;
2292 return "unknown"; 2295 return "unknown";
2293 } 2296 }
2294 2297
2295 } // namespace content 2298 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698