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

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

Issue 555323002: Deprecate direct use of legacy extension management preference (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixes addressing #12 Created 6 years, 3 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
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_management.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 // Download code which handles CRX files (extensions, themes, apps, ...). 5 // Download code which handles CRX files (extensions, themes, apps, ...).
6 6
7 #include "chrome/browser/download/download_crx_util.h" 7 #include "chrome/browser/download/download_crx_util.h"
8 8
9 #include "chrome/browser/chrome_notification_types.h" 9 #include "chrome/browser/chrome_notification_types.h"
10 #include "chrome/browser/extensions/crx_installer.h" 10 #include "chrome/browser/extensions/crx_installer.h"
11 #include "chrome/browser/extensions/extension_install_prompt.h" 11 #include "chrome/browser/extensions/extension_install_prompt.h"
12 #include "chrome/browser/extensions/extension_management.h"
12 #include "chrome/browser/extensions/webstore_installer.h" 13 #include "chrome/browser/extensions/webstore_installer.h"
13 #include "chrome/browser/profiles/profile.h" 14 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/ui/browser_finder.h" 15 #include "chrome/browser/ui/browser_finder.h"
15 #include "chrome/browser/ui/host_desktop.h" 16 #include "chrome/browser/ui/host_desktop.h"
16 #include "chrome/browser/ui/tabs/tab_strip_model.h" 17 #include "chrome/browser/ui/tabs/tab_strip_model.h"
17 #include "content/public/browser/download_item.h" 18 #include "content/public/browser/download_item.h"
18 #include "content/public/browser/notification_service.h" 19 #include "content/public/browser/notification_service.h"
19 #include "extensions/browser/extension_prefs.h"
20 #include "extensions/browser/extension_system.h" 20 #include "extensions/browser/extension_system.h"
21 #include "extensions/common/user_script.h" 21 #include "extensions/common/user_script.h"
22 22
23 using content::BrowserThread; 23 using content::BrowserThread;
24 using content::DownloadItem; 24 using content::DownloadItem;
25 using extensions::WebstoreInstaller; 25 using extensions::WebstoreInstaller;
26 26
27 namespace download_crx_util { 27 namespace download_crx_util {
28 28
29 namespace { 29 namespace {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 if (download_item.GetMimeType() == extensions::Extension::kMimeType || 124 if (download_item.GetMimeType() == extensions::Extension::kMimeType ||
125 extensions::UserScript::IsURLUserScript(download_item.GetURL(), 125 extensions::UserScript::IsURLUserScript(download_item.GetURL(),
126 download_item.GetMimeType())) { 126 download_item.GetMimeType())) {
127 return true; 127 return true;
128 } else { 128 } else {
129 return false; 129 return false;
130 } 130 }
131 } 131 }
132 132
133 bool OffStoreInstallAllowedByPrefs(Profile* profile, const DownloadItem& item) { 133 bool OffStoreInstallAllowedByPrefs(Profile* profile, const DownloadItem& item) {
134 extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile);
135 CHECK(prefs);
136
137 extensions::URLPatternSet url_patterns = prefs->GetAllowedInstallSites();
138
139 if (!url_patterns.MatchesURL(item.GetURL()))
140 return false;
141
142 // The referrer URL must also be whitelisted, unless the URL has the file
143 // scheme (there's no referrer for those URLs).
144 // TODO(aa): RefererURL is cleared in some cases, for example when going 134 // TODO(aa): RefererURL is cleared in some cases, for example when going
145 // between secure and non-secure URLs. It would be better if DownloadItem 135 // between secure and non-secure URLs. It would be better if DownloadItem
146 // tracked the initiating page explicitly. 136 // tracked the initiating page explicitly.
147 return url_patterns.MatchesURL(item.GetReferrerUrl()) || 137 return extensions::ExtensionManagementFactory::GetForBrowserContext(profile)
148 item.GetURL().SchemeIsFile(); 138 ->IsOffstoreInstallAllowed(item.GetURL(), item.GetReferrerUrl());
149 } 139 }
150 140
151 } // namespace download_crx_util 141 } // namespace download_crx_util
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_management.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698