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