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

Unified Diff: extensions/common/extension_api.cc

Issue 2266673002: [Extensions] Remove mechanism for non-generated schemas (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: lazyboys Created 4 years, 4 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 | « extensions/common/extension_api.h ('k') | extensions/common/extensions_client.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/common/extension_api.cc
diff --git a/extensions/common/extension_api.cc b/extensions/common/extension_api.cc
index 50d4316b6944f9690e745a88585036de20b3c541..52d186f797bdc964ff0a96c27b42e46eb9a2f142 100644
--- a/extensions/common/extension_api.cc
+++ b/extensions/common/extension_api.cc
@@ -27,7 +27,6 @@
#include "extensions/common/features/simple_feature.h"
#include "extensions/common/permissions/permission_set.h"
#include "extensions/common/permissions/permissions_data.h"
-#include "ui/base/resource/resource_bundle.h"
#include "url/gurl.h"
namespace extensions {
@@ -39,11 +38,6 @@ const char* kChildKinds[] = {
"events"
};
-base::StringPiece ReadFromResource(int resource_id) {
- return ResourceBundle::GetSharedInstance().GetRawDataResource(
- resource_id);
-}
-
std::unique_ptr<base::ListValue> LoadSchemaList(
const std::string& name,
const base::StringPiece& schema) {
@@ -228,8 +222,6 @@ void ExtensionAPI::LoadSchema(const std::string& name,
CHECK(schema->GetString("namespace", &schema_namespace));
PrefixWithNamespace(schema_namespace, schema.get());
schemas_[schema_namespace] = std::move(schema);
- if (!extensions_client->IsAPISchemaGenerated(schema_namespace))
- CHECK_EQ(1u, unloaded_schemas_.erase(schema_namespace));
}
}
@@ -244,15 +236,9 @@ void ExtensionAPI::InitDefaultConfiguration() {
for (size_t i = 0; i < arraysize(names); ++i)
RegisterDependencyProvider(names[i], FeatureProvider::GetByName(names[i]));
- ExtensionsClient::Get()->RegisterAPISchemaResources(this);
default_configuration_initialized_ = true;
}
-void ExtensionAPI::RegisterSchemaResource(const std::string& name,
- int resource_id) {
- unloaded_schemas_[name] = resource_id;
-}
-
void ExtensionAPI::RegisterDependencyProvider(const std::string& name,
const FeatureProvider* provider) {
dependency_providers_[name] = provider;
@@ -308,19 +294,14 @@ const base::DictionaryValue* ExtensionAPI::GetSchema(
result = maybe_schema->second.get();
} else {
// Might not have loaded yet; or might just not exist.
- UnloadedSchemaMap::iterator maybe_schema_resource =
- unloaded_schemas_.find(api_name);
extensions::ExtensionsClient* extensions_client =
extensions::ExtensionsClient::Get();
DCHECK(extensions_client);
- if (maybe_schema_resource != unloaded_schemas_.end()) {
- LoadSchema(maybe_schema_resource->first,
- ReadFromResource(maybe_schema_resource->second));
- } else if (default_configuration_initialized_ &&
- extensions_client->IsAPISchemaGenerated(api_name)) {
+ if (default_configuration_initialized_ &&
+ extensions_client->IsAPISchemaGenerated(api_name)) {
LoadSchema(api_name, extensions_client->GetAPISchema(api_name));
} else {
- return NULL;
+ return nullptr;
}
maybe_schema = schemas_.find(api_name);
@@ -357,23 +338,17 @@ Feature* ExtensionAPI::GetFeatureDependency(const std::string& full_name) {
std::string ExtensionAPI::GetAPINameFromFullName(const std::string& full_name,
std::string* child_name) {
std::string api_name_candidate = full_name;
- extensions::ExtensionsClient* extensions_client =
- extensions::ExtensionsClient::Get();
+ ExtensionsClient* extensions_client = ExtensionsClient::Get();
DCHECK(extensions_client);
while (true) {
- if (schemas_.find(api_name_candidate) != schemas_.end() ||
- extensions_client->IsAPISchemaGenerated(api_name_candidate) ||
- unloaded_schemas_.find(api_name_candidate) != unloaded_schemas_.end()) {
- std::string result = api_name_candidate;
-
+ if (IsKnownAPI(api_name_candidate, extensions_client)) {
if (child_name) {
- if (result.length() < full_name.length())
- *child_name = full_name.substr(result.length() + 1);
+ if (api_name_candidate.length() < full_name.length())
+ *child_name = full_name.substr(api_name_candidate.length() + 1);
else
*child_name = "";
}
-
- return result;
+ return api_name_candidate;
}
size_t last_dot_index = api_name_candidate.rfind('.');
@@ -387,4 +362,10 @@ std::string ExtensionAPI::GetAPINameFromFullName(const std::string& full_name,
return std::string();
}
+bool ExtensionAPI::IsKnownAPI(const std::string& name,
+ ExtensionsClient* client) {
+ return schemas_.find(name) != schemas_.end() ||
+ client->IsAPISchemaGenerated(name);
+}
+
} // namespace extensions
« no previous file with comments | « extensions/common/extension_api.h ('k') | extensions/common/extensions_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698