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

Side by Side Diff: chrome/browser/download/chrome_download_manager_delegate.cc

Issue 1982723002: Use FileTypePolicies for download danger classifications. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@use_policies
Patch Set: Fix bad rebase Created 4 years, 7 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 #include "chrome/browser/download/chrome_download_manager_delegate.h" 5 #include "chrome/browser/download/chrome_download_manager_delegate.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 #include "chrome/browser/extensions/api/downloads/downloads_api.h" 66 #include "chrome/browser/extensions/api/downloads/downloads_api.h"
67 #include "chrome/browser/extensions/crx_installer.h" 67 #include "chrome/browser/extensions/crx_installer.h"
68 #include "chrome/browser/extensions/webstore_installer.h" 68 #include "chrome/browser/extensions/webstore_installer.h"
69 #include "extensions/browser/notification_types.h" 69 #include "extensions/browser/notification_types.h"
70 #include "extensions/common/constants.h" 70 #include "extensions/common/constants.h"
71 #endif 71 #endif
72 72
73 using content::BrowserThread; 73 using content::BrowserThread;
74 using content::DownloadItem; 74 using content::DownloadItem;
75 using content::DownloadManager; 75 using content::DownloadManager;
76 using safe_browsing::DownloadFileType;
76 using safe_browsing::DownloadProtectionService; 77 using safe_browsing::DownloadProtectionService;
77 78
78 namespace { 79 namespace {
79 80
80 #if defined(FULL_SAFE_BROWSING) 81 #if defined(FULL_SAFE_BROWSING)
81 82
82 // String pointer used for identifying safebrowing data associated with 83 // String pointer used for identifying safebrowing data associated with
83 // a download item. 84 // a download item.
84 const char kSafeBrowsingUserDataKey[] = "Safe Browsing ID"; 85 const char kSafeBrowsingUserDataKey[] = "Safe Browsing ID";
85 86
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 base::Bind(&ChromeDownloadManagerDelegate::CheckClientDownloadDone, 319 base::Bind(&ChromeDownloadManagerDelegate::CheckClientDownloadDone,
319 weak_ptr_factory_.GetWeakPtr(), 320 weak_ptr_factory_.GetWeakPtr(),
320 item->GetId())); 321 item->GetId()));
321 return false; 322 return false;
322 } 323 }
323 324
324 // In case the service was disabled between the download starting and now, 325 // In case the service was disabled between the download starting and now,
325 // we need to restore the danger state. 326 // we need to restore the danger state.
326 content::DownloadDangerType danger_type = item->GetDangerType(); 327 content::DownloadDangerType danger_type = item->GetDangerType();
327 if (DownloadItemModel(item).GetDangerLevel() != 328 if (DownloadItemModel(item).GetDangerLevel() !=
328 download_util::NOT_DANGEROUS && 329 DownloadFileType::NOT_DANGEROUS &&
329 (danger_type == content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS || 330 (danger_type == content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS ||
330 danger_type == 331 danger_type ==
331 content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT)) { 332 content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT)) {
332 DVLOG(2) << __FUNCTION__ 333 DVLOG(2) << __FUNCTION__
333 << "() SB service disabled. Marking download as DANGEROUS FILE"; 334 << "() SB service disabled. Marking download as DANGEROUS FILE";
334 item->OnContentCheckCompleted( 335 item->OnContentCheckCompleted(
335 content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE); 336 content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE);
336 content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE, 337 content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE,
337 internal_complete_callback); 338 internal_complete_callback);
338 return false; 339 return false;
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 // has not been set to DANGEROUS yet. We don't want to show two warnings. 662 // has not been set to DANGEROUS yet. We don't want to show two warnings.
662 if (item->GetDangerType() == content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS || 663 if (item->GetDangerType() == content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS ||
663 item->GetDangerType() == 664 item->GetDangerType() ==
664 content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT) { 665 content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT) {
665 content::DownloadDangerType danger_type = 666 content::DownloadDangerType danger_type =
666 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS; 667 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS;
667 switch (result) { 668 switch (result) {
668 case DownloadProtectionService::UNKNOWN: 669 case DownloadProtectionService::UNKNOWN:
669 // The check failed or was inconclusive. 670 // The check failed or was inconclusive.
670 if (DownloadItemModel(item).GetDangerLevel() != 671 if (DownloadItemModel(item).GetDangerLevel() !=
671 download_util::NOT_DANGEROUS) 672 DownloadFileType::NOT_DANGEROUS)
672 danger_type = content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE; 673 danger_type = content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE;
673 break; 674 break;
674 case DownloadProtectionService::SAFE: 675 case DownloadProtectionService::SAFE:
675 // If this file type require explicit consent, then set the danger type 676 // If this file type require explicit consent, then set the danger type
676 // to DANGEROUS_FILE so that the user be required to manually vet 677 // to DANGEROUS_FILE so that the user be required to manually vet
677 // whether the download is intended or not. 678 // whether the download is intended or not.
678 if (DownloadItemModel(item).GetDangerLevel() == 679 if (DownloadItemModel(item).GetDangerLevel() ==
679 download_util::DANGEROUS) 680 DownloadFileType::DANGEROUS)
680 danger_type = content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE; 681 danger_type = content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE;
681 break; 682 break;
682 case DownloadProtectionService::DANGEROUS: 683 case DownloadProtectionService::DANGEROUS:
683 danger_type = content::DOWNLOAD_DANGER_TYPE_DANGEROUS_CONTENT; 684 danger_type = content::DOWNLOAD_DANGER_TYPE_DANGEROUS_CONTENT;
684 break; 685 break;
685 case DownloadProtectionService::UNCOMMON: 686 case DownloadProtectionService::UNCOMMON:
686 danger_type = content::DOWNLOAD_DANGER_TYPE_UNCOMMON_CONTENT; 687 danger_type = content::DOWNLOAD_DANGER_TYPE_UNCOMMON_CONTENT;
687 break; 688 break;
688 case DownloadProtectionService::DANGEROUS_HOST: 689 case DownloadProtectionService::DANGEROUS_HOST:
689 danger_type = content::DOWNLOAD_DANGER_TYPE_DANGEROUS_HOST; 690 danger_type = content::DOWNLOAD_DANGER_TYPE_DANGEROUS_HOST;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 path.MatchesExtension(FILE_PATH_LITERAL(".xht")) || 772 path.MatchesExtension(FILE_PATH_LITERAL(".xht")) ||
772 path.MatchesExtension(FILE_PATH_LITERAL(".xhtm")) || 773 path.MatchesExtension(FILE_PATH_LITERAL(".xhtm")) ||
773 path.MatchesExtension(FILE_PATH_LITERAL(".xhtml")) || 774 path.MatchesExtension(FILE_PATH_LITERAL(".xhtml")) ||
774 path.MatchesExtension(FILE_PATH_LITERAL(".xsl")) || 775 path.MatchesExtension(FILE_PATH_LITERAL(".xsl")) ||
775 path.MatchesExtension(FILE_PATH_LITERAL(".xslt"))) { 776 path.MatchesExtension(FILE_PATH_LITERAL(".xslt"))) {
776 return true; 777 return true;
777 } 778 }
778 #endif 779 #endif
779 return false; 780 return false;
780 } 781 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698