Index: chrome/browser/download/chrome_download_manager_delegate.cc |
=================================================================== |
--- chrome/browser/download/chrome_download_manager_delegate.cc (revision 106761) |
+++ chrome/browser/download/chrome_download_manager_delegate.cc (working copy) |
@@ -225,8 +225,39 @@ |
DownloadItem* item, |
const FilePath& new_path) { |
download_history_->UpdateDownloadPath(item, new_path); |
+ |
Randy Smith (Not in Mondays)
2011/10/22 17:08:07
Can we localize the safebrowsing code in this file
|
+#if defined(ENABLE_SAFE_BROWSING) |
+ // Begin the safe browsing download protection check. |
+ SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service(); |
+ if (sb_service && sb_service->download_protection_service()) { |
+ safe_browsing::DownloadProtectionService::DownloadInfo download_info; |
+ download_info.local_file = new_path; |
+ download_info.download_url_chain = item->url_chain(); |
+ download_info.referrer_url = item->referrer_url(); |
+ // TODO(bryner): Fill in the hash (we shouldn't compute it again) |
+ download_info.total_bytes = item->total_bytes(); |
+ // TODO(bryner): Populate user_initiated |
+ if (sb_service->download_protection_service()->CheckClientDownload( |
+ download_info, base::Bind( |
+ &ChromeDownloadManagerDelegate::CheckClientDownloadDone, |
+ this, item))) { |
+ CheckClientDownloadDone(item, |
+ safe_browsing::DownloadProtectionService::SAFE); |
+ } // otherwise we will be notified asynchronously |
+ } |
+#else |
+ // Assume safe. |
+ CheckClientDownloadDone(item, |
+ safe_browsing::DownloadProtectionService::SAFE); |
+#endif |
} |
+void ChromeDownloadManagerDelegate::CheckClientDownloadDone( |
+ DownloadItem* item, |
+ safe_browsing::DownloadProtectionService::DownloadCheckResult result) { |
+ // TODO(bryner): notify the user based on this result |
+} |
+ |
void ChromeDownloadManagerDelegate::RemoveItemFromPersistentStore( |
DownloadItem* item) { |
download_history_->RemoveEntry(item); |