| 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 85f86b333dc2f1f9081a10de0dd72a35e1efd660..6004c7ae0c0de8c698454c75325f38170d5c2c15 100644
|
| --- a/chrome/renderer/extensions/api_definitions_natives.cc
|
| +++ b/chrome/renderer/extensions/api_definitions_natives.cc
|
| @@ -6,6 +6,8 @@
|
|
|
| #include <algorithm>
|
|
|
| +#include "chrome/common/extensions/api/extension_api.h"
|
| +
|
| namespace {
|
| const char kInvalidExtensionNamespace[] = "Invalid extension namespace";
|
| }
|
| @@ -16,33 +18,15 @@ ApiDefinitionsNatives::ApiDefinitionsNatives(Dispatcher* dispatcher,
|
| ChromeV8Context* context)
|
| : ChromeV8Extension(dispatcher, context->v8_context()),
|
| context_(context) {
|
| - RouteFunction("GetExtensionAPIDefinition",
|
| - base::Bind(&ApiDefinitionsNatives::GetExtensionAPIDefinition,
|
| + RouteFunction("GetExtensionAPIDefinitions",
|
| + base::Bind(&ApiDefinitionsNatives::GetExtensionAPIDefinitions,
|
| base::Unretained(this)));
|
| }
|
|
|
| -v8::Handle<v8::Value> ApiDefinitionsNatives::GetExtensionAPIDefinition(
|
| +v8::Handle<v8::Value> ApiDefinitionsNatives::GetExtensionAPIDefinitions(
|
| const v8::Arguments& args) {
|
| - std::set<std::string> available_apis(context_->GetAvailableExtensionAPIs());
|
| - if (args.Length() == 0)
|
| - return dispatcher()->v8_schema_registry()->GetSchemas(available_apis);
|
| -
|
| - // Build set of APIs requested by the user.
|
| - std::set<std::string> requested_apis;
|
| - for (int i = 0; i < args.Length(); ++i) {
|
| - if (!args[i]->IsString()) {
|
| - v8::ThrowException(v8::String::New(kInvalidExtensionNamespace));
|
| - return v8::Undefined();
|
| - }
|
| - requested_apis.insert(*v8::String::Utf8Value(args[i]->ToString()));
|
| - }
|
| -
|
| - // Filter those that are unknown.
|
| - std::set<std::string> apis_to_check;
|
| - std::set_intersection(requested_apis.begin(), requested_apis.end(),
|
| - available_apis.begin(), available_apis.end(),
|
| - std::inserter(apis_to_check, apis_to_check.begin()));
|
| - return dispatcher()->v8_schema_registry()->GetSchemas(apis_to_check);
|
| + return dispatcher()->v8_schema_registry()->GetSchemas(
|
| + ExtensionAPI::GetSharedInstance()->GetAllAPINames());
|
| }
|
|
|
| } // namespace extensions
|
|
|