Move extensions bindings code out of //chrome
This moves several native handlers out of //chrome/renderer/extensions and into
//extensions/renderer.
Many of the changes are mechanical. Where applicable,
ChromeV8Extension has been wiped out.
BUG=359836
[email protected]
[email protected] for skia +DEPS
[email protected] for fileapi +DEPS
[email protected] for WebKit/public/platform +DEPS
[email protected] for chrome/test
[email protected] for PRESUBMIT.py
Review URL: https://codereview.chromium.org/235943018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264413 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/extensions/renderer/api_definitions_natives.cc b/extensions/renderer/api_definitions_natives.cc
new file mode 100644
index 0000000..a7970b2
--- /dev/null
+++ b/extensions/renderer/api_definitions_natives.cc
@@ -0,0 +1,41 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "extensions/renderer/api_definitions_natives.h"
+
+#include "chrome/renderer/extensions/dispatcher.h"
+#include "extensions/common/features/feature.h"
+#include "extensions/common/features/feature_provider.h"
+#include "extensions/renderer/script_context.h"
+
+namespace extensions {
+
+ApiDefinitionsNatives::ApiDefinitionsNatives(Dispatcher* dispatcher,
+ ScriptContext* context)
+ : ObjectBackedNativeHandler(context), dispatcher_(dispatcher) {
+ RouteFunction(
+ "GetExtensionAPIDefinitionsForTest",
+ base::Bind(&ApiDefinitionsNatives::GetExtensionAPIDefinitionsForTest,
+ base::Unretained(this)));
+}
+
+void ApiDefinitionsNatives::GetExtensionAPIDefinitionsForTest(
+ const v8::FunctionCallbackInfo<v8::Value>& args) {
+ std::vector<std::string> apis;
+ FeatureProvider* feature_provider = FeatureProvider::GetAPIFeatures();
+ 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);
+ }
+ }
+ args.GetReturnValue().Set(
+ dispatcher_->v8_schema_registry()->GetSchemas(apis));
+}
+
+} // namespace extensions