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 "mojo/bindings/js/handle.h" 6 7 namespace gin { 8 9 gin::WrapperInfo HandleWrapper::kWrapperInfo = { gin::kEmbedderNativeGin }; 10 11 HandleWrapper::HandleWrapper(MojoHandle handle) 12 : handle_(mojo::Handle(handle)) { 13 } 14 15 HandleWrapper::~HandleWrapper() { 16 } 17 18 v8::Handle<v8::Value> Converter<mojo::Handle>::ToV8(v8::Isolate* isolate, 19 const mojo::Handle& val) { 20 if (!val.is_valid()) 21 return v8::Null(isolate); 22 return HandleWrapper::Create(isolate, val.value()).ToV8(); 23 } 24 25 bool Converter<mojo::Handle>::FromV8(v8::Isolate* isolate, 26 v8::Handle<v8::Value> val, 27 mojo::Handle* out) { 28 if (val->IsNull()) { 29 *out = mojo::Handle(); 30 return true; 31 } 32 33 gin::Handle<HandleWrapper> handle; 34 if (!Converter<gin::Handle<HandleWrapper> >::FromV8(isolate, val, &handle)) 35 return false; 36 37 *out = handle->get(); 38 return true; 39 } 40 41 } // namespace gin 42