Index: content/browser/download/download_item.cc |
diff --git a/content/browser/download/download_item.cc b/content/browser/download/download_item.cc |
index e71366b411ce07b214b039a66cae298302f1658a..799a2a250e01f8b8ea9580134808b70789d559a9 100644 |
--- a/content/browser/download/download_item.cc |
+++ b/content/browser/download/download_item.cc |
@@ -91,25 +91,6 @@ const char* DebugDownloadStateString(DownloadItem::DownloadState state) { |
}; |
} |
-DownloadItem::SafetyState GetSafetyState(bool dangerous_file, |
- bool dangerous_url) { |
- return (dangerous_url || dangerous_file) ? |
- DownloadItem::DANGEROUS : DownloadItem::SAFE; |
-} |
- |
-// Note: When a download has both |dangerous_file| and |dangerous_url| set, |
-// danger type is set to DANGEROUS_URL since the risk of dangerous URL |
-// overweights that of dangerous file type. |
-DownloadItem::DangerType GetDangerType(bool dangerous_file, |
- bool dangerous_url) { |
- if (dangerous_url) { |
- // dangerous URL overweights dangerous file. We check dangerous URL first. |
- return DownloadItem::DANGEROUS_URL; |
- } |
- return dangerous_file ? |
- DownloadItem::DANGEROUS_FILE : DownloadItem::NOT_DANGEROUS; |
-} |
- |
// Classes to null out request handle calls (for SavePage DownloadItems, which |
// may have, e.g., Cancel() called on them without it doing anything) |
// and to DCHECK on them (for history DownloadItems, which should never have |
@@ -187,7 +168,7 @@ DownloadItem::DownloadItem(DownloadManager* download_manager, |
: state_info_(info.original_name, info.save_info.file_path, |
info.has_user_gesture, info.transition_type, |
info.prompt_user_for_save_location, info.path_uniquifier, |
- false, false), |
+ DownloadStateInfo::NOT_DANGEROUS), |
request_handle_(request_handle), |
download_id_(info.download_id), |
full_path_(info.path), |
@@ -338,7 +319,7 @@ void DownloadItem::DangerousDownloadValidated() { |
UMA_HISTOGRAM_ENUMERATION("Download.DangerousDownloadValidated", |
GetDangerType(), |
- DANGEROUS_TYPE_MAX); |
+ DownloadStateInfo::DANGEROUS_TYPE_MAX); |
safety_state_ = DANGEROUS_BUT_VALIDATED; |
UpdateObservers(); |
@@ -462,9 +443,8 @@ void DownloadItem::TransitionTo(DownloadState new_state) { |
} |
void DownloadItem::UpdateSafetyState() { |
- SafetyState updated_value( |
- GetSafetyState(state_info_.is_dangerous_file, |
- state_info_.is_dangerous_url)); |
+ SafetyState updated_value = state_info_.IsDangerous() ? |
+ DownloadItem::DANGEROUS : DownloadItem::SAFE; |
if (updated_value != safety_state_) { |
safety_state_ = updated_value; |
UpdateObservers(); |
@@ -501,11 +481,11 @@ void DownloadItem::Delete(DeleteReason reason) { |
switch (reason) { |
case DELETE_DUE_TO_USER_DISCARD: |
UMA_HISTOGRAM_ENUMERATION("Download.UserDiscard", GetDangerType(), |
- DANGEROUS_TYPE_MAX); |
+ DownloadStateInfo::DANGEROUS_TYPE_MAX); |
break; |
case DELETE_DUE_TO_BROWSER_SHUTDOWN: |
UMA_HISTOGRAM_ENUMERATION("Download.Discard", GetDangerType(), |
- DANGEROUS_TYPE_MAX); |
+ DownloadStateInfo::DANGEROUS_TYPE_MAX); |
break; |
default: |
NOTREACHED(); |
@@ -671,28 +651,32 @@ void DownloadItem::SetFileCheckResults(const DownloadStateInfo& state) { |
UpdateSafetyState(); |
} |
-DownloadItem::DangerType DownloadItem::GetDangerType() const { |
- return ::GetDangerType(state_info_.is_dangerous_file, |
- state_info_.is_dangerous_url); |
+DownloadStateInfo::DangerType DownloadItem::GetDangerType() const { |
+ return state_info_.danger; |
} |
bool DownloadItem::IsDangerous() const { |
- return GetDangerType() != DownloadItem::NOT_DANGEROUS; |
+ return state_info_.IsDangerous(); |
} |
void DownloadItem::MarkFileDangerous() { |
// TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved. |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- |
- state_info_.is_dangerous_file = true; |
+ state_info_.danger = DownloadStateInfo::DANGEROUS_FILE; |
UpdateSafetyState(); |
} |
void DownloadItem::MarkUrlDangerous() { |
// TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved. |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ state_info_.danger = DownloadStateInfo::DANGEROUS_URL; |
+ UpdateSafetyState(); |
+} |
- state_info_.is_dangerous_url = true; |
+void DownloadItem::MarkContentDangerous() { |
+ // TODO(rdsmith): Change to DCHECK after http://crbug.com/85408 resolved. |
+ CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ state_info_.danger = DownloadStateInfo::DANGEROUS_CONTENT; |
UpdateSafetyState(); |
} |