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

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

Issue 2674973003: Adding a DownloadRestrictions group policy. (Closed)
Patch Set: Test compile fix Created 3 years, 10 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 578 matching lines...) Expand 10 before | Expand all | Expand 10 after
589 std::string DownloadItemImpl::GetOriginalMimeType() const { 589 std::string DownloadItemImpl::GetOriginalMimeType() const {
590 return original_mime_type_; 590 return original_mime_type_;
591 } 591 }
592 592
593 std::string DownloadItemImpl::GetRemoteAddress() const { 593 std::string DownloadItemImpl::GetRemoteAddress() const {
594 return remote_address_; 594 return remote_address_;
595 } 595 }
596 596
597 bool DownloadItemImpl::HasUserGesture() const { 597 bool DownloadItemImpl::HasUserGesture() const {
598 return has_user_gesture_; 598 return has_user_gesture_;
599 }; 599 }
600 600
601 ui::PageTransition DownloadItemImpl::GetTransitionType() const { 601 ui::PageTransition DownloadItemImpl::GetTransitionType() const {
602 return transition_type_; 602 return transition_type_;
603 }; 603 }
604 604
605 const std::string& DownloadItemImpl::GetLastModifiedTime() const { 605 const std::string& DownloadItemImpl::GetLastModifiedTime() const {
606 return last_modified_time_; 606 return last_modified_time_;
607 } 607 }
608 608
609 const std::string& DownloadItemImpl::GetETag() const { 609 const std::string& DownloadItemImpl::GetETag() const {
610 return etag_; 610 return etag_;
611 } 611 }
612 612
613 bool DownloadItemImpl::IsSavePackageDownload() const { 613 bool DownloadItemImpl::IsSavePackageDownload() const {
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 WebContents* DownloadItemImpl::GetWebContents() const { 770 WebContents* DownloadItemImpl::GetWebContents() const {
771 // TODO(rdsmith): Remove null check after removing GetWebContents() from 771 // TODO(rdsmith): Remove null check after removing GetWebContents() from
772 // paths that might be used by DownloadItems created from history import. 772 // paths that might be used by DownloadItems created from history import.
773 // Currently such items have null request_handle_s, where other items 773 // Currently such items have null request_handle_s, where other items
774 // (regular and SavePackage downloads) have actual objects off the pointer. 774 // (regular and SavePackage downloads) have actual objects off the pointer.
775 if (request_handle_) 775 if (request_handle_)
776 return request_handle_->GetWebContents(); 776 return request_handle_->GetWebContents();
777 return NULL; 777 return NULL;
778 } 778 }
779 779
780 void DownloadItemImpl::OnContentCheckCompleted(DownloadDangerType danger_type) { 780 void DownloadItemImpl::OnContentCheckCompleted(DownloadDangerType danger_type,
781 bool block_file) {
781 DCHECK_CURRENTLY_ON(BrowserThread::UI); 782 DCHECK_CURRENTLY_ON(BrowserThread::UI);
782 DCHECK(AllDataSaved()); 783 DCHECK(AllDataSaved());
783 784
784 // Danger type is only allowed to be set on an active download after all data 785 // Danger type is only allowed to be set on an active download after all data
785 // has been saved. This excludes all other states. In particular, 786 // has been saved. This excludes all other states. In particular,
786 // OnContentCheckCompleted() isn't allowed on an INTERRUPTED download since 787 // OnContentCheckCompleted() isn't allowed on an INTERRUPTED download since
787 // such an interruption would need to happen between OnAllDataSaved() and 788 // such an interruption would need to happen between OnAllDataSaved() and
788 // OnContentCheckCompleted() during which no disk or network activity 789 // OnContentCheckCompleted() during which no disk or network activity
789 // should've taken place. 790 // should've taken place.
790 DCHECK_EQ(state_, IN_PROGRESS_INTERNAL); 791 DCHECK_EQ(state_, IN_PROGRESS_INTERNAL);
791 DVLOG(20) << __func__ << "() danger_type=" << danger_type 792 DVLOG(20) << __func__ << "() danger_type=" << danger_type
792 << " download=" << DebugString(true); 793 << " download=" << DebugString(true);
793 SetDangerType(danger_type); 794 SetDangerType(danger_type);
795 if (block_file)
796 InterruptAndDiscardPartialState(DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED);
794 UpdateObservers(); 797 UpdateObservers();
795 } 798 }
796 799
797 void DownloadItemImpl::SetOpenWhenComplete(bool open) { 800 void DownloadItemImpl::SetOpenWhenComplete(bool open) {
798 open_when_complete_ = open; 801 open_when_complete_ = open;
799 } 802 }
800 803
801 void DownloadItemImpl::SetOpened(bool opened) { 804 void DownloadItemImpl::SetOpened(bool opened) {
802 opened_ = opened; 805 opened_ = opened;
803 } 806 }
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
874 // We also can't continue if we don't have some verifier to make sure 877 // We also can't continue if we don't have some verifier to make sure
875 // we're getting the same file. 878 // we're getting the same file.
876 bool restart_required = 879 bool restart_required =
877 (current_path_.empty() || (etag_.empty() && last_modified_time_.empty())); 880 (current_path_.empty() || (etag_.empty() && last_modified_time_.empty()));
878 881
879 // We won't auto-restart if we've used up our attempts or the 882 // We won't auto-restart if we've used up our attempts or the
880 // download has been paused by user action. 883 // download has been paused by user action.
881 bool user_action_required = 884 bool user_action_required =
882 (auto_resume_count_ >= kMaxAutoResumeAttempts || is_paused_); 885 (auto_resume_count_ >= kMaxAutoResumeAttempts || is_paused_);
883 886
884 switch(last_reason_) { 887 switch (last_reason_) {
885 case DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR: 888 case DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR:
886 case DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT: 889 case DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT:
887 break; 890 break;
888 891
889 case DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE: 892 case DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE:
890 // The server disagreed with the file offset that we sent. 893 // The server disagreed with the file offset that we sent.
891 894
892 case DOWNLOAD_INTERRUPT_REASON_FILE_HASH_MISMATCH: 895 case DOWNLOAD_INTERRUPT_REASON_FILE_HASH_MISMATCH:
893 // The file on disk was found to not match the expected hash. Discard and 896 // The file on disk was found to not match the expected hash. Discard and
894 // start from beginning. 897 // start from beginning.
(...skipping 1202 matching lines...) Expand 10 before | Expand all | Expand 10 after
2097 case COMPLETE_INTERNAL: 2100 case COMPLETE_INTERNAL:
2098 return "COMPLETE"; 2101 return "COMPLETE";
2099 case CANCELLED_INTERNAL: 2102 case CANCELLED_INTERNAL:
2100 return "CANCELLED"; 2103 return "CANCELLED";
2101 case INTERRUPTED_INTERNAL: 2104 case INTERRUPTED_INTERNAL:
2102 return "INTERRUPTED"; 2105 return "INTERRUPTED";
2103 case RESUMING_INTERNAL: 2106 case RESUMING_INTERNAL:
2104 return "RESUMING"; 2107 return "RESUMING";
2105 case MAX_DOWNLOAD_INTERNAL_STATE: 2108 case MAX_DOWNLOAD_INTERNAL_STATE:
2106 break; 2109 break;
2107 }; 2110 }
2108 NOTREACHED() << "Unknown download state " << state; 2111 NOTREACHED() << "Unknown download state " << state;
2109 return "unknown"; 2112 return "unknown";
2110 } 2113 }
2111 2114
2112 const char* DownloadItemImpl::DebugResumeModeString(ResumeMode mode) { 2115 const char* DownloadItemImpl::DebugResumeModeString(ResumeMode mode) {
2113 switch (mode) { 2116 switch (mode) {
2114 case RESUME_MODE_INVALID: 2117 case RESUME_MODE_INVALID:
2115 return "INVALID"; 2118 return "INVALID";
2116 case RESUME_MODE_IMMEDIATE_CONTINUE: 2119 case RESUME_MODE_IMMEDIATE_CONTINUE:
2117 return "IMMEDIATE_CONTINUE"; 2120 return "IMMEDIATE_CONTINUE";
2118 case RESUME_MODE_IMMEDIATE_RESTART: 2121 case RESUME_MODE_IMMEDIATE_RESTART:
2119 return "IMMEDIATE_RESTART"; 2122 return "IMMEDIATE_RESTART";
2120 case RESUME_MODE_USER_CONTINUE: 2123 case RESUME_MODE_USER_CONTINUE:
2121 return "USER_CONTINUE"; 2124 return "USER_CONTINUE";
2122 case RESUME_MODE_USER_RESTART: 2125 case RESUME_MODE_USER_RESTART:
2123 return "USER_RESTART"; 2126 return "USER_RESTART";
2124 } 2127 }
2125 NOTREACHED() << "Unknown resume mode " << mode; 2128 NOTREACHED() << "Unknown resume mode " << mode;
2126 return "unknown"; 2129 return "unknown";
2127 } 2130 }
2128 2131
2129 } // namespace content 2132 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698