Chromium Code Reviews| Index: chrome/common/extensions/api/extension_api.cc |
| diff --git a/chrome/common/extensions/api/extension_api.cc b/chrome/common/extensions/api/extension_api.cc |
| index f8909b053043141ea8e6ac8f67baa99436bf7231..d9420890886d1e762ecbdcc305da02be6b04acde 100644 |
| --- a/chrome/common/extensions/api/extension_api.cc |
| +++ b/chrome/common/extensions/api/extension_api.cc |
| @@ -13,6 +13,7 @@ |
| #include "base/string_split.h" |
| #include "base/string_util.h" |
| #include "base/values.h" |
| +#include "chrome/common/extensions/api/generated_schemas.h" |
| #include "chrome/common/extensions/extension.h" |
| #include "chrome/common/extensions/extension_permission_set.h" |
| #include "grit/common_resources.h" |
| @@ -81,11 +82,16 @@ static base::ListValue* LoadSchemaList(int resource_id) { |
| } |
| void ExtensionAPI::LoadSchemaFromResource(int resource_id) { |
| - scoped_ptr<base::ListValue> loaded(LoadSchemaList(resource_id)); |
| + RegisterSchema(LoadSchemaList(resource_id)); |
| +} |
| + |
| +void ExtensionAPI::RegisterSchema(base::ListValue* loaded_schema) { |
| + // We take ownership of loaded_schema, so we need to delete it. |
| + scoped_ptr<base::ListValue> scoped_loaded_schema(loaded_schema); |
| Value* value = NULL; |
| std::string schema_namespace; |
| - while (!loaded->empty()) { |
| - loaded->Remove(loaded->GetSize() - 1, &value); |
| + while (!loaded_schema->empty()) { |
| + loaded_schema->Remove(loaded_schema->GetSize() - 1, &value); |
| CHECK(value->IsType(Value::TYPE_DICTIONARY)); |
| const DictionaryValue* schema = static_cast<const DictionaryValue*>(value); |
| CHECK(schema->GetString("namespace", &schema_namespace)); |
| @@ -110,7 +116,6 @@ ExtensionAPI::ExtensionAPI() { |
| IDR_EXTENSION_API_JSON_EXPERIMENTAL_APP, |
| IDR_EXTENSION_API_JSON_EXPERIMENTAL_BOOKMARKMANAGER, |
| IDR_EXTENSION_API_JSON_EXPERIMENTAL_DECLARATIVE, |
| - IDR_EXTENSION_API_JSON_EXPERIMENTAL_DNS, |
|
miket_OOO
2012/03/20 21:52:16
Thanks (etc.)
|
| IDR_EXTENSION_API_JSON_EXPERIMENTAL_DOWNLOADS, |
| IDR_EXTENSION_API_JSON_EXPERIMENTAL_EXTENSIONS, |
| IDR_EXTENSION_API_JSON_EXPERIMENTAL_FONTS, |
| @@ -162,6 +167,7 @@ ExtensionAPI::ExtensionAPI() { |
| for (size_t i = 0; i < arraysize(kJsonApiResourceIds); i++) { |
| LoadSchemaFromResource(kJsonApiResourceIds[i]); |
| } |
| + RegisterSchema(api::GeneratedSchemas::Get()); |
| // Populate {completely,partially}_unprivileged_apis_. |
| for (SchemaMap::iterator it = schemas_.begin(); it != schemas_.end(); ++it) { |