summaryrefslogtreecommitdiffstats
path: root/chrome/browser/download/download_manager.cc
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-25 21:17:34 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-25 21:17:34 +0000
commit4289d9b66a1453aad1115f6ede0007faab22d6d4 (patch)
treea9fc79dd283f3561bd24cea14342f39552ed05c4 /chrome/browser/download/download_manager.cc
parent811f3431f0066d9c4d94deb8af113df65dd67d6a (diff)
downloadchromium_src-4289d9b66a1453aad1115f6ede0007faab22d6d4.zip
chromium_src-4289d9b66a1453aad1115f6ede0007faab22d6d4.tar.gz
chromium_src-4289d9b66a1453aad1115f6ede0007faab22d6d4.tar.bz2
Make the download manager display a scary file warning if an
extensions is not from the gallery. Review URL: http://codereview.chromium.org/159379 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21620 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/download/download_manager.cc')
-rw-r--r--chrome/browser/download/download_manager.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/chrome/browser/download/download_manager.cc b/chrome/browser/download/download_manager.cc
index 1a3fb53..d8e3237 100644
--- a/chrome/browser/download/download_manager.cc
+++ b/chrome/browser/download/download_manager.cc
@@ -569,8 +569,16 @@ void DownloadManager::StartDownload(DownloadCreateInfo* info) {
info->suggested_path = info->suggested_path.Append(generated_name);
if (!info->save_as) {
- // Let's check if this download is dangerous, based on its name.
- info->is_dangerous = IsDangerous(info->suggested_path.BaseName());
+ // Downloads can be marked as dangerous for two reasons:
+ // a) They have a dangerous-looking filename
+ // b) They are an extension that is not from the gallery
+ if (IsDangerous(info->suggested_path.BaseName()))
+ info->is_dangerous = true;
+ else if (info->mime_type == Extension::kMimeType &&
+ !ExtensionsService::IsDownloadFromGallery(info->url,
+ info->referrer_url)) {
+ info->is_dangerous = true;
+ }
}
// We need to move over to the download thread because we don't want to stat