• 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 "mojo/bindings/js/handle.h"
6 
7 namespace gin {
8 
9 gin::WrapperInfo HandleWrapper::kWrapperInfo = { gin::kEmbedderNativeGin };
10 
HandleWrapper(MojoHandle handle)11 HandleWrapper::HandleWrapper(MojoHandle handle)
12     : handle_(mojo::Handle(handle)) {
13 }
14 
~HandleWrapper()15 HandleWrapper::~HandleWrapper() {
16 }
17 
ToV8(v8::Isolate * isolate,const mojo::Handle & val)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 
FromV8(v8::Isolate * isolate,v8::Handle<v8::Value> val,mojo::Handle * out)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