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