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 12namespace 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 19enum InternalFields { 20 kWrapperInfoIndex, 21 kEncodedValueIndex, 22 kNumberOfInternalFields, 23}; 24 25struct 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