Home | History | Annotate | Download | only in js
      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