| 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"
|
|
|