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

Unified Diff: chrome/common/extensions/api/storage/storage_schema_manifest_handler.cc

Issue 47513018: Make the internal storage of policy::Schemas ref counted. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@chrome-policy-schema-4-new-generate
Patch Set: Created 7 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
Index: chrome/common/extensions/api/storage/storage_schema_manifest_handler.cc
diff --git a/chrome/common/extensions/api/storage/storage_schema_manifest_handler.cc b/chrome/common/extensions/api/storage/storage_schema_manifest_handler.cc
index a9bef0ce859e89abfdd4312267706783ff4e243e..12ed904d71f979660c9e687491033e436a8ca7e6 100644
--- a/chrome/common/extensions/api/storage/storage_schema_manifest_handler.cc
+++ b/chrome/common/extensions/api/storage/storage_schema_manifest_handler.cc
@@ -29,13 +29,13 @@ StorageSchemaManifestHandler::StorageSchemaManifestHandler() {}
StorageSchemaManifestHandler::~StorageSchemaManifestHandler() {}
// static
-scoped_ptr<policy::SchemaOwner> StorageSchemaManifestHandler::GetSchema(
+policy::Schema StorageSchemaManifestHandler::GetSchema(
const Extension* extension,
std::string* error) {
if (!extension->HasAPIPermission(APIPermission::kStorage)) {
*error = base::StringPrintf("The storage permission is required to use %s",
kStorageManagedSchema);
- return scoped_ptr<policy::SchemaOwner>();
+ return policy::Schema();
}
std::string path;
extension->manifest()->GetString(kStorageManagedSchema, &path);
@@ -43,20 +43,20 @@ scoped_ptr<policy::SchemaOwner> StorageSchemaManifestHandler::GetSchema(
if (file.IsAbsolute() || file.ReferencesParent()) {
*error = base::StringPrintf("%s must be a relative path without ..",
kStorageManagedSchema);
- return scoped_ptr<policy::SchemaOwner>();
+ return policy::Schema();
}
file = extension->path().AppendASCII(path);
if (!base::PathExists(file)) {
*error =
base::StringPrintf("File does not exist: %s", file.value().c_str());
- return scoped_ptr<policy::SchemaOwner>();
+ return policy::Schema();
}
std::string content;
if (!base::ReadFileToString(file, &content)) {
*error = base::StringPrintf("Can't read %s", file.value().c_str());
- return scoped_ptr<policy::SchemaOwner>();
+ return policy::Schema();
}
- return policy::SchemaOwner::Parse(content, error);
+ return policy::Schema::Parse(content, error);
}
bool StorageSchemaManifestHandler::Parse(Extension* extension,
@@ -74,7 +74,7 @@ bool StorageSchemaManifestHandler::Validate(
const Extension* extension,
std::string* error,
std::vector<InstallWarning>* warnings) const {
- return !!GetSchema(extension, error);
+ return GetSchema(extension, error).valid();
}
const std::vector<std::string> StorageSchemaManifestHandler::Keys() const {

Powered by Google App Engine
This is Rietveld 408576698