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

Unified Diff: chrome/browser/extensions/extension_file_util.cc

Issue 335037: Fixes bug introduced in r28333, where we were checking if path.empty() instea... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_file_util.cc
===================================================================
--- chrome/browser/extensions/extension_file_util.cc (revision 30194)
+++ chrome/browser/extensions/extension_file_util.cc (working copy)
@@ -149,7 +149,8 @@
// Validate icons exist.
for (std::map<int, std::string>::const_iterator iter =
extension->icons().begin(); iter != extension->icons().end(); ++iter) {
- if (extension->GetResource(iter->second).GetFilePath().empty()) {
+ const FilePath path = extension->GetResource(iter->second).GetFilePath();
+ if (!file_util::PathExists(path)) {
*error = StringPrintf("Could not load extension icon '%s'.",
iter->second.c_str());
return false;
@@ -187,7 +188,7 @@
const UserScript::File& js_script = script.js_scripts()[j];
const FilePath& path = ExtensionResource::GetFilePath(
js_script.extension_root(), js_script.relative_path());
- if (path.empty()) {
+ if (!file_util::PathExists(path)) {
*error = StringPrintf("Could not load '%s' for content script.",
WideToUTF8(path.ToWStringHack()).c_str());
return false;
@@ -198,7 +199,7 @@
const UserScript::File& css_script = script.css_scripts()[j];
const FilePath& path = ExtensionResource::GetFilePath(
css_script.extension_root(), css_script.relative_path());
- if (path.empty()) {
+ if (!file_util::PathExists(path)) {
*error = StringPrintf("Could not load '%s' for content script.",
WideToUTF8(path.ToWStringHack()).c_str());
return false;
@@ -235,7 +236,7 @@
icon_paths.push_back(page_action->default_icon_path());
for (std::vector<std::string>::iterator iter = icon_paths.begin();
iter != icon_paths.end(); ++iter) {
- if (extension->GetResource(*iter).GetFilePath().empty()) {
+ if (!file_util::PathExists(extension->GetResource(*iter).GetFilePath())) {
*error = StringPrintf("Could not load icon '%s' for page action.",
iter->c_str());
return false;
@@ -247,16 +248,26 @@
// Note: browser actions don't use the icon_paths().
ExtensionAction* browser_action = extension->browser_action();
if (browser_action) {
- std::string default_icon_path = browser_action->default_icon_path();
- if (!default_icon_path.empty()) {
- if (extension->GetResource(default_icon_path).GetFilePath().empty()) {
+ std::string path = browser_action->default_icon_path();
+ if (!path.empty() &&
+ !file_util::PathExists(extension->GetResource(path).GetFilePath())) {
*error = StringPrintf("Could not load icon '%s' for browser action.",
- default_icon_path.c_str());
+ path.c_str());
return false;
- }
}
}
+ // Validate background page location.
+ if (!extension->background_url().is_empty()) {
+ const std::string page_path = extension->background_url().path();
+ const FilePath path = extension->GetResource(page_path).GetFilePath();
+ if (!file_util::PathExists(path)) {
+ *error = StringPrintf("Could not load background page '%s'.",
+ WideToUTF8(path.ToWStringHack()).c_str());
+ return false;
+ }
+ }
+
// Check children of extension root to see if any of them start with _ and is
// not on the reserved list.
if (!CheckForIllegalFilenames(extension->path(), error)) {
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698