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 13namespace extensions { 14 15TestFeaturesNativeHandler::TestFeaturesNativeHandler(ScriptContext* context) 16 : ObjectBackedNativeHandler(context) { 17 RouteFunction("GetAPIFeatures", 18 base::Bind(&TestFeaturesNativeHandler::GetAPIFeatures, 19 base::Unretained(this))); 20} 21 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