Change ComponentLoader::AddOrReplace to return an empty string on failure.
The function's signature states it returns a std::string, so it shouldn't
NULL on failure. This is also consistent with the other Add functions.
TEST=unit test
Review URL: https://chromiumcodereview.appspot.com/15867003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202744 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/component_loader.cc b/chrome/browser/extensions/component_loader.cc
index f132566..e42226a 100644
--- a/chrome/browser/extensions/component_loader.cc
+++ b/chrome/browser/extensions/component_loader.cc
@@ -155,7 +155,7 @@
if (!manifest) {
LOG(ERROR) << "Could not load extension from '" <<
absolute_path.value() << "'. " << error;
- return NULL;
+ return std::string();
}
Remove(GenerateId(manifest.get(), absolute_path));
diff --git a/chrome/browser/extensions/component_loader_unittest.cc b/chrome/browser/extensions/component_loader_unittest.cc
index ab5da617..307789f 100644
--- a/chrome/browser/extensions/component_loader_unittest.cc
+++ b/chrome/browser/extensions/component_loader_unittest.cc
@@ -257,6 +257,7 @@
base::FilePath known_extension = GetBasePath()
.AppendASCII("override_component_extension");
base::FilePath unknow_extension = extension_path_;
+ base::FilePath invalid_extension = GetBasePath().AppendASCII("bad");
// Replace a default component extension.
component_loader_.AddOrReplace(known_extension);
@@ -278,6 +279,10 @@
component_loader_.AddOrReplace(known_extension);
EXPECT_EQ(default_count + 1, extension_service_.extensions()->size());
EXPECT_EQ(1u, extension_service_.unloaded_count());
+
+ // Add an invalid component extension.
+ std::string extension_id = component_loader_.AddOrReplace(invalid_extension);
+ EXPECT_TRUE(extension_id.empty());
}
} // namespace extensions