| 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
|
|
|