summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_file_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions/extension_file_util.cc')
-rw-r--r--chrome/browser/extensions/extension_file_util.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_file_util.cc b/chrome/browser/extensions/extension_file_util.cc
index 838bcdf..6c86965 100644
--- a/chrome/browser/extensions/extension_file_util.cc
+++ b/chrome/browser/extensions/extension_file_util.cc
@@ -239,6 +239,7 @@ Extension* LoadExtension(const FilePath& extension_path, bool require_key,
}
}
+ // Validate claimed plugin paths.
for (size_t i = 0; i < extension->plugins().size(); ++i) {
const Extension::PluginInfo& plugin = extension->plugins()[i];
if (!file_util::PathExists(plugin.path)) {
@@ -248,6 +249,17 @@ Extension* LoadExtension(const FilePath& extension_path, bool require_key,
}
}
+ // Validate claimed privacy blacklists paths.
+ for (size_t i = 0; i < extension->privacy_blacklists().size(); ++i) {
+ const Extension::PrivacyBlacklistInfo& blacklist =
+ extension->privacy_blacklists()[i];
+ if (!file_util::PathExists(blacklist.path)) {
+ *error = StringPrintf("Could not load '%s' for privacy blacklist.",
+ WideToUTF8(blacklist.path.ToWStringHack()).c_str());
+ return NULL;
+ }
+ }
+
// Validate icon location for page actions.
const PageActionMap& page_actions = extension->page_actions();
for (PageActionMap::const_iterator i(page_actions.begin());