1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef CONTENT_RENDERER_JAVA_GIN_JAVA_BRIDGE_VALUE_CONVERTER_H_ 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define CONTENT_RENDERER_JAVA_GIN_JAVA_BRIDGE_VALUE_CONVERTER_H_ 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "content/common/content_export.h" 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "content/public/renderer/v8_value_converter.h" 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace content { 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class GinJavaBridgeValueConverter : public content::V8ValueConverter::Strategy { 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public: 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) CONTENT_EXPORT GinJavaBridgeValueConverter(); 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) CONTENT_EXPORT virtual ~GinJavaBridgeValueConverter(); 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) CONTENT_EXPORT v8::Handle<v8::Value> ToV8Value( 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const base::Value* value, 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) v8::Handle<v8::Context> context) const; 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) CONTENT_EXPORT scoped_ptr<base::Value> FromV8Value( 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) v8::Handle<v8::Value> value, 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) v8::Handle<v8::Context> context) const; 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // content::V8ValueConverter::Strategy 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool FromV8Object(v8::Handle<v8::Object> value, 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) base::Value** out, 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) v8::Isolate* isolate, 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const FromV8ValueCallback& callback) const OVERRIDE; 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool FromV8ArrayBuffer(v8::Handle<v8::Object> value, 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) base::Value** out, 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) v8::Isolate* isolate) const OVERRIDE; 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool FromV8Number(v8::Handle<v8::Number> value, 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) base::Value** out) const OVERRIDE; 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool FromV8Undefined(base::Value** out) const OVERRIDE; 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) private: 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) scoped_ptr<V8ValueConverter> converter_; 40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(GinJavaBridgeValueConverter); 42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace content 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif // CONTENT_RENDERER_JAVA_GIN_JAVA_BRIDGE_VALUE_CONVERTER_H_ 47