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

Unified Diff: chrome/renderer/extensions/api_definitions_natives.cc

Issue 15091002: Lazily load API schemas from resource files and convert all APIs to features (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix chromeos tests Created 7 years, 6 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/renderer/extensions/api_definitions_natives.cc
diff --git a/chrome/renderer/extensions/api_definitions_natives.cc b/chrome/renderer/extensions/api_definitions_natives.cc
index 605235039eda19217bfb19580db605f0bdc5f13f..cb337ae99055c464b92993fa380929067efe2be2 100644
--- a/chrome/renderer/extensions/api_definitions_natives.cc
+++ b/chrome/renderer/extensions/api_definitions_natives.cc
@@ -6,7 +6,7 @@
#include <algorithm>
-#include "chrome/common/extensions/api/extension_api.h"
+#include "chrome/common/extensions/features/base_feature_provider.h"
namespace {
const char kInvalidExtensionNamespace[] = "Invalid extension namespace";
@@ -17,15 +17,26 @@ namespace extensions {
ApiDefinitionsNatives::ApiDefinitionsNatives(Dispatcher* dispatcher,
ChromeV8Context* context)
: ChromeV8Extension(dispatcher, context) {
- RouteFunction("GetExtensionAPIDefinitions",
- base::Bind(&ApiDefinitionsNatives::GetExtensionAPIDefinitions,
- base::Unretained(this)));
+ RouteFunction("GetExtensionAPIDefinitionsForTest",
+ base::Bind(
+ &ApiDefinitionsNatives::GetExtensionAPIDefinitionsForTest,
+ base::Unretained(this)));
}
-v8::Handle<v8::Value> ApiDefinitionsNatives::GetExtensionAPIDefinitions(
+v8::Handle<v8::Value> ApiDefinitionsNatives::GetExtensionAPIDefinitionsForTest(
const v8::Arguments& args) {
- return dispatcher()->v8_schema_registry()->GetSchemas(
- ExtensionAPI::GetSharedInstance()->GetAllAPINames());
+ std::vector<std::string> apis;
+ FeatureProvider* feature_provider = BaseFeatureProvider::GetByName("api");
+ const std::vector<std::string>& feature_names =
+ feature_provider->GetAllFeatureNames();
+ for (std::vector<std::string>::const_iterator i = feature_names.begin();
+ i != feature_names.end(); ++i) {
+ if (!feature_provider->GetParent(feature_provider->GetFeature(*i)) &&
+ context()->GetAvailability(*i).is_available()) {
+ apis.push_back(*i);
+ }
+ }
+ return dispatcher()->v8_schema_registry()->GetSchemas(apis);
}
} // namespace extensions
« no previous file with comments | « chrome/renderer/extensions/api_definitions_natives.h ('k') | chrome/renderer/extensions/chrome_v8_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698