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

Side by Side Diff: chrome/browser/safe_browsing/download_protection_service.cc

Issue 19863005: Warn users about potentially unwanted downloads. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add a "Learn more" URL for unwanted downloads. Created 7 years, 5 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 | Annotate | Revision Log
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/safe_browsing/download_protection_service.h" 5 #include "chrome/browser/safe_browsing/download_protection_service.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/format_macros.h" 9 #include "base/format_macros.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 reason = REASON_DOWNLOAD_NOT_SUPPORTED; 410 reason = REASON_DOWNLOAD_NOT_SUPPORTED;
411 } else if (response.verdict() == ClientDownloadResponse::DANGEROUS) { 411 } else if (response.verdict() == ClientDownloadResponse::DANGEROUS) {
412 reason = REASON_DOWNLOAD_DANGEROUS; 412 reason = REASON_DOWNLOAD_DANGEROUS;
413 result = DANGEROUS; 413 result = DANGEROUS;
414 } else if (response.verdict() == ClientDownloadResponse::UNCOMMON) { 414 } else if (response.verdict() == ClientDownloadResponse::UNCOMMON) {
415 reason = REASON_DOWNLOAD_UNCOMMON; 415 reason = REASON_DOWNLOAD_UNCOMMON;
416 result = UNCOMMON; 416 result = UNCOMMON;
417 } else if (response.verdict() == ClientDownloadResponse::DANGEROUS_HOST) { 417 } else if (response.verdict() == ClientDownloadResponse::DANGEROUS_HOST) {
418 reason = REASON_DOWNLOAD_DANGEROUS_HOST; 418 reason = REASON_DOWNLOAD_DANGEROUS_HOST;
419 result = DANGEROUS_HOST; 419 result = DANGEROUS_HOST;
420 } else if (
421 response.verdict() == ClientDownloadResponse::POTENTIALLY_UNWANTED) {
422 reason = REASON_DOWNLOAD_POTENTIALLY_UNWANTED;
423 result = POTENTIALLY_UNWANTED;
420 } else { 424 } else {
421 LOG(DFATAL) << "Unknown download response verdict: " 425 LOG(DFATAL) << "Unknown download response verdict: "
422 << response.verdict(); 426 << response.verdict();
423 reason = REASON_INVALID_RESPONSE_VERDICT; 427 reason = REASON_INVALID_RESPONSE_VERDICT;
424 } 428 }
425 DownloadFeedbackService::MaybeStorePingsForDownload( 429 DownloadFeedbackService::MaybeStorePingsForDownload(
426 result, item_, client_download_request_data_, data); 430 result, item_, client_download_request_data_, data);
427 } 431 }
428 // We don't need the fetcher anymore. 432 // We don't need the fetcher anymore.
429 fetcher_.reset(); 433 fetcher_.reset();
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
857 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 861 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
858 std::set<scoped_refptr<CheckClientDownloadRequest> >::iterator it = 862 std::set<scoped_refptr<CheckClientDownloadRequest> >::iterator it =
859 download_requests_.find(request); 863 download_requests_.find(request);
860 DCHECK(it != download_requests_.end()); 864 DCHECK(it != download_requests_.end());
861 download_requests_.erase(*it); 865 download_requests_.erase(*it);
862 } 866 }
863 867
864 void DownloadProtectionService::ShowDetailsForDownload( 868 void DownloadProtectionService::ShowDetailsForDownload(
865 const content::DownloadItem& item, 869 const content::DownloadItem& item,
866 content::PageNavigator* navigator) { 870 content::PageNavigator* navigator) {
871 GURL learn_more_url(chrome::kDownloadScanningLearnMoreURL);
872 if (item.GetDangerType() ==
873 content::DOWNLOAD_DANGER_TYPE_POTENTIALLY_UNWANTED)
874 learn_more_url = GURL(chrome::kDownloadPotentiallyUnwantedLearnMoreURL);
867 navigator->OpenURL( 875 navigator->OpenURL(
868 content::OpenURLParams(GURL(chrome::kDownloadScanningLearnMoreURL), 876 content::OpenURLParams(learn_more_url,
869 content::Referrer(), 877 content::Referrer(),
870 NEW_FOREGROUND_TAB, 878 NEW_FOREGROUND_TAB,
871 content::PAGE_TRANSITION_LINK, 879 content::PAGE_TRANSITION_LINK,
872 false)); 880 false));
873 } 881 }
874 882
875 namespace { 883 namespace {
876 // Escapes a certificate attribute so that it can be used in a whitelist 884 // Escapes a certificate attribute so that it can be used in a whitelist
877 // entry. Currently, we only escape slashes, since they are used as a 885 // entry. Currently, we only escape slashes, since they are used as a
878 // separator between attributes. 886 // separator between attributes.
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 std::string url = kDownloadRequestUrl; 960 std::string url = kDownloadRequestUrl;
953 std::string api_key = google_apis::GetAPIKey(); 961 std::string api_key = google_apis::GetAPIKey();
954 if (!api_key.empty()) { 962 if (!api_key.empty()) {
955 base::StringAppendF(&url, "?key=%s", 963 base::StringAppendF(&url, "?key=%s",
956 net::EscapeQueryParamValue(api_key, true).c_str()); 964 net::EscapeQueryParamValue(api_key, true).c_str());
957 } 965 }
958 return url; 966 return url;
959 } 967 }
960 968
961 } // namespace safe_browsing 969 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698