diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-20 08:14:39 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-20 08:14:39 +0000 |
commit | 8d6d9ffcb1e23bd575630f02d19c44c44dfcc062 (patch) | |
tree | 20ab24c272b88556509502e7a5b14786a07b3a84 /chrome/browser/extensions/extensions_service.cc | |
parent | def8d424ee935324641788246795db6b5765387e (diff) | |
download | chromium_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.cc | 13 |
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(); } |