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)15TestFeaturesNativeHandler::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)22void 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