Index: third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h |
diff --git a/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h b/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h |
index cc6597ce1d79467196aef2bee2172dd7c4ce5a29..9a5390eda1d8711427c2e587348f5310dbb65bc7 100644 |
--- a/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h |
+++ b/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h |
@@ -28,197 +28,6 @@ |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
-#ifndef WrapperTypeInfo_h |
-#define WrapperTypeInfo_h |
- |
-#include "bindings/core/v8/ActiveScriptWrappable.h" |
-#include "gin/public/wrapper_info.h" |
-#include "platform/heap/Handle.h" |
-#include "platform/wtf/Allocator.h" |
-#include "platform/wtf/Assertions.h" |
-#include "v8/include/v8.h" |
- |
-namespace blink { |
- |
-class DOMWrapperWorld; |
-class ScriptWrappable; |
- |
-ScriptWrappable* ToScriptWrappable( |
- const v8::PersistentBase<v8::Object>& wrapper); |
-ScriptWrappable* ToScriptWrappable(v8::Local<v8::Object> wrapper); |
- |
-static const int kV8DOMWrapperTypeIndex = |
- static_cast<int>(gin::kWrapperInfoIndex); |
-static const int kV8DOMWrapperObjectIndex = |
- static_cast<int>(gin::kEncodedValueIndex); |
-static const int kV8DefaultWrapperInternalFieldCount = |
- static_cast<int>(gin::kNumberOfInternalFields); |
-static const int kV8PrototypeTypeIndex = 0; |
-static const int kV8PrototypeInternalFieldcount = 1; |
- |
-typedef v8::Local<v8::FunctionTemplate> ( |
- *DomTemplateFunction)(v8::Isolate*, const DOMWrapperWorld&); |
-typedef void (*TraceFunction)(Visitor*, ScriptWrappable*); |
-typedef void (*TraceWrappersFunction)(WrapperVisitor*, ScriptWrappable*); |
-typedef ActiveScriptWrappableBase* (*ToActiveScriptWrappableFunction)( |
- v8::Local<v8::Object>); |
-typedef void (*ResolveWrapperReachabilityFunction)( |
- v8::Isolate*, |
- ScriptWrappable*, |
- const v8::Persistent<v8::Object>&); |
-typedef void (*PreparePrototypeAndInterfaceObjectFunction)( |
- v8::Local<v8::Context>, |
- const DOMWrapperWorld&, |
- v8::Local<v8::Object>, |
- v8::Local<v8::Function>, |
- v8::Local<v8::FunctionTemplate>); |
- |
-// This struct provides a way to store a bunch of information that is helpful |
-// when unwrapping v8 objects. Each v8 bindings class has exactly one static |
-// WrapperTypeInfo member, so comparing pointers is a safe way to determine if |
-// types match. |
-struct WrapperTypeInfo { |
- DISALLOW_NEW(); |
- |
- enum WrapperTypePrototype { |
- kWrapperTypeObjectPrototype, |
- kWrapperTypeExceptionPrototype, |
- }; |
- |
- enum WrapperClassId { |
- kNodeClassId = 1, // NodeClassId must be smaller than ObjectClassId. |
- kObjectClassId, |
- }; |
- |
- enum ActiveScriptWrappableInheritance { |
- kNotInheritFromActiveScriptWrappable, |
- kInheritFromActiveScriptWrappable, |
- }; |
- |
- enum Lifetime { |
- kDependent, |
- kIndependent, |
- }; |
- |
- static const WrapperTypeInfo* Unwrap(v8::Local<v8::Value> type_info_wrapper) { |
- return reinterpret_cast<const WrapperTypeInfo*>( |
- v8::External::Cast(*type_info_wrapper)->Value()); |
- } |
- |
- static void WrapperCreated() { |
- ThreadState::Current()->Heap().HeapStats().IncreaseWrapperCount(1); |
- } |
- |
- static void WrapperDestroyed() { |
- ThreadHeapStats& heap_stats = ThreadState::Current()->Heap().HeapStats(); |
- heap_stats.DecreaseWrapperCount(1); |
- heap_stats.IncreaseCollectedWrapperCount(1); |
- } |
- |
- bool Equals(const WrapperTypeInfo* that) const { return this == that; } |
- |
- bool IsSubclass(const WrapperTypeInfo* that) const { |
- for (const WrapperTypeInfo* current = this; current; |
- current = current->parent_class) { |
- if (current == that) |
- return true; |
- } |
- |
- return false; |
- } |
- |
- void ConfigureWrapper(v8::PersistentBase<v8::Object>* wrapper) const { |
- wrapper->SetWrapperClassId(wrapper_class_id); |
- if (lifetime == kIndependent) |
- wrapper->MarkIndependent(); |
- } |
- |
- v8::Local<v8::FunctionTemplate> domTemplate( |
- v8::Isolate* isolate, |
- const DOMWrapperWorld& world) const { |
- return dom_template_function(isolate, world); |
- } |
- |
- void Trace(Visitor* visitor, ScriptWrappable* script_wrappable) const { |
- DCHECK(trace_function); |
- return trace_function(visitor, script_wrappable); |
- } |
- |
- void TraceWrappers(WrapperVisitor* visitor, |
- ScriptWrappable* script_wrappable) const { |
- DCHECK(trace_wrappers_function); |
- return trace_wrappers_function(visitor, script_wrappable); |
- } |
- |
- void PreparePrototypeAndInterfaceObject( |
- v8::Local<v8::Context> context, |
- const DOMWrapperWorld& world, |
- v8::Local<v8::Object> prototype_object, |
- v8::Local<v8::Function> interface_object, |
- v8::Local<v8::FunctionTemplate> interface_template) const { |
- if (prepare_prototype_and_interface_object_function) |
- prepare_prototype_and_interface_object_function( |
- context, world, prototype_object, interface_object, |
- interface_template); |
- } |
- |
- bool IsActiveScriptWrappable() const { |
- return active_script_wrappable_inheritance == |
- kInheritFromActiveScriptWrappable; |
- } |
- |
- // This field must be the first member of the struct WrapperTypeInfo. |
- // See also static_assert() in .cpp file. |
- const gin::GinEmbedder gin_embedder; |
- |
- DomTemplateFunction dom_template_function; |
- const TraceFunction trace_function; |
- const TraceWrappersFunction trace_wrappers_function; |
- PreparePrototypeAndInterfaceObjectFunction |
- prepare_prototype_and_interface_object_function; |
- const char* const interface_name; |
- const WrapperTypeInfo* parent_class; |
- const unsigned wrapper_type_prototype : 1; // WrapperTypePrototype |
- const unsigned wrapper_class_id : 2; // WrapperClassId |
- const unsigned // ActiveScriptWrappableInheritance |
- active_script_wrappable_inheritance : 1; |
- const unsigned lifetime : 1; // Lifetime |
-}; |
- |
-template <typename T, int offset> |
-inline T* GetInternalField(const v8::PersistentBase<v8::Object>& persistent) { |
- DCHECK_LT(offset, v8::Object::InternalFieldCount(persistent)); |
- return reinterpret_cast<T*>( |
- v8::Object::GetAlignedPointerFromInternalField(persistent, offset)); |
-} |
- |
-template <typename T, int offset> |
-inline T* GetInternalField(v8::Local<v8::Object> wrapper) { |
- DCHECK_LT(offset, wrapper->InternalFieldCount()); |
- return reinterpret_cast<T*>( |
- wrapper->GetAlignedPointerFromInternalField(offset)); |
-} |
- |
-// The return value can be null if |wrapper| is a global proxy, which points to |
-// nothing while a navigation. |
-inline ScriptWrappable* ToScriptWrappable( |
- const v8::PersistentBase<v8::Object>& wrapper) { |
- return GetInternalField<ScriptWrappable, kV8DOMWrapperObjectIndex>(wrapper); |
-} |
- |
-inline ScriptWrappable* ToScriptWrappable(v8::Local<v8::Object> wrapper) { |
- return GetInternalField<ScriptWrappable, kV8DOMWrapperObjectIndex>(wrapper); |
-} |
- |
-inline const WrapperTypeInfo* ToWrapperTypeInfo( |
- const v8::PersistentBase<v8::Object>& wrapper) { |
- return GetInternalField<WrapperTypeInfo, kV8DOMWrapperTypeIndex>(wrapper); |
-} |
- |
-inline const WrapperTypeInfo* ToWrapperTypeInfo(v8::Local<v8::Object> wrapper) { |
- return GetInternalField<WrapperTypeInfo, kV8DOMWrapperTypeIndex>(wrapper); |
-} |
- |
-} // namespace blink |
- |
-#endif // WrapperTypeInfo_h |
+// This file has been moved to platform/bindings/WrapperTypeInfo.h. |
+// TODO(adithyas): Remove this file. |
+#include "platform/bindings/WrapperTypeInfo.h" |