Chromium Code Reviews| 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..1e91b5dc4797a8f32931f42afa633b578e5719d5 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,15 +18,16 @@ 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) |
| + std::set<std::string> available_apis( |
| + ExtensionAPI::GetSharedInstance()->GetAllAPINames()); |
| + if (args.Length() == 0 || args[0]->IsNull()) |
| return dispatcher()->v8_schema_registry()->GetSchemas(available_apis); |
|
not at google - send to devlin
2013/03/22 22:10:12
Oh I think it can be even simpler (sorry) looks li
cduvall
2013/03/22 22:52:29
Done.
|
| // Build set of APIs requested by the user. |
| @@ -37,12 +40,7 @@ v8::Handle<v8::Value> ApiDefinitionsNatives::GetExtensionAPIDefinition( |
| 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(requested_apis); |
| } |
| } // namespace extensions |