diff options
Diffstat (limited to 'chrome/browser/extensions/extension_file_util.cc')
-rw-r--r-- | chrome/browser/extensions/extension_file_util.cc | 12 |
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()); |