• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "extensions/renderer/test_features_native_handler.h"
6 
7 #include "base/bind.h"
8 #include "content/public/renderer/v8_value_converter.h"
9 #include "extensions/common/extensions_client.h"
10 #include "extensions/common/features/json_feature_provider_source.h"
11 #include "extensions/renderer/script_context.h"
12 
13 namespace extensions {
14 
TestFeaturesNativeHandler(ScriptContext * context)15 TestFeaturesNativeHandler::TestFeaturesNativeHandler(ScriptContext* context)
16     : ObjectBackedNativeHandler(context) {
17   RouteFunction("GetAPIFeatures",
18                 base::Bind(&TestFeaturesNativeHandler::GetAPIFeatures,
19                            base::Unretained(this)));
20 }
21 
GetAPIFeatures(const v8::FunctionCallbackInfo<v8::Value> & args)22 void TestFeaturesNativeHandler::GetAPIFeatures(
23     const v8::FunctionCallbackInfo<v8::Value>& args) {
24   scoped_ptr<JSONFeatureProviderSource> source(
25       ExtensionsClient::Get()->CreateFeatureProviderSource("api"));
26   scoped_ptr<content::V8ValueConverter> converter(
27       content::V8ValueConverter::create());
28   args.GetReturnValue().Set(
29       converter->ToV8Value(&source->dictionary(), context()->v8_context()));
30 }
31 
32 }  // namespace extensions
33