• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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 #ifndef GIN_PUBLIC_WRAPPER_INFO_H_
6 #define GIN_PUBLIC_WRAPPER_INFO_H_
7 
8 #include "gin/gin_export.h"
9 #include "gin/public/gin_embedders.h"
10 #include "v8/include/v8.h"
11 
12 namespace gin {
13 
14 // Gin embedder that use their own WrapperInfo-like structs must ensure that
15 // the first field is of type GinEmbedderId and has the correct id set. They
16 // also should use kWrapperInfoIndex to start their WrapperInfo-like struct
17 // and ensure that all objects have kNumberOfInternalFields internal fields.
18 
19 enum InternalFields {
20   kWrapperInfoIndex,
21   kEncodedValueIndex,
22   kNumberOfInternalFields,
23 };
24 
25 struct GIN_EXPORT WrapperInfo {
26   static WrapperInfo* From(v8::Handle<v8::Object> object);
27   const GinEmbedder embedder;
28 };
29 
30 }  // namespace gin
31 
32 #endif  // GIN_PUBLIC_WRAPPER_INFO_H_
33