summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extensions_service.cc
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-20 08:14:39 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-20 08:14:39 +0000
commit8d6d9ffcb1e23bd575630f02d19c44c44dfcc062 (patch)
tree20ab24c272b88556509502e7a5b14786a07b3a84 /chrome/browser/extensions/extensions_service.cc
parentdef8d424ee935324641788246795db6b5765387e (diff)
downloadchromium_src-8d6d9ffcb1e23bd575630f02d19c44c44dfcc062.zip
chromium_src-8d6d9ffcb1e23bd575630f02d19c44c44dfcc062.tar.gz
chromium_src-8d6d9ffcb1e23bd575630f02d19c44c44dfcc062.tar.bz2
Complain when an extension does not contain a user script it claims to.
Review URL: http://codereview.chromium.org/21436 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10084 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extensions_service.cc')
-rw-r--r--chrome/browser/extensions/extensions_service.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extensions_service.cc b/chrome/browser/extensions/extensions_service.cc
index e01c3ce..c469c08 100644
--- a/chrome/browser/extensions/extensions_service.cc
+++ b/chrome/browser/extensions/extensions_service.cc
@@ -239,6 +239,19 @@ Extension* ExtensionsServiceBackend::LoadExtension(
ReportExtensionLoadError(frontend.get(), path, error);
return NULL;
}
+
+ // Validate that claimed resources actually exist.
+ for (UserScriptList::const_iterator iter =
+ extension->content_scripts().begin();
+ iter != extension->content_scripts().end(); ++iter) {
+ if (!file_util::PathExists(iter->path())) {
+ ReportExtensionLoadError(frontend.get(), path, StringPrintf(
+ "Could not load content script '%s'.",
+ WideToUTF8(iter->path().ToWStringHack()).c_str()));
+ return NULL;
+ }
+ }
+
return extension.release();
}