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 04f72d7f1b343797e4d652640a24e8a71ffb7490..e654481aee501ed044d5d9cff0a67d95e6187b50 100644 |
--- a/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h |
+++ b/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h |
@@ -45,6 +45,7 @@ class EventTarget; |
class ScriptWrappable; |
ScriptWrappable* toScriptWrappable(const v8::PersistentBase<v8::Object>& wrapper); |
+ScriptWrappable* toScriptWrappable(v8::Local<v8::Object> wrapper); |
static const int v8DOMWrapperTypeIndex = static_cast<int>(gin::kWrapperInfoIndex); |
static const int v8DOMWrapperObjectIndex = static_cast<int>(gin::kEncodedValueIndex); |
@@ -70,6 +71,7 @@ inline void setObjectGroup(v8::Isolate* isolate, ScriptWrappable* scriptWrappabl |
// comparing pointers is a safe way to determine if types match. |
struct WrapperTypeInfo { |
DISALLOW_NEW(); |
+ |
enum WrapperTypePrototype { |
WrapperTypeObjectPrototype, |
WrapperTypeExceptionPrototype, |
@@ -80,6 +82,11 @@ struct WrapperTypeInfo { |
ObjectClassId, |
}; |
+ enum ActiveScriptWrappableInheritance { |
+ NotInheritFromActiveScriptWrappable, |
+ InheritFromActiveScriptWrappable, |
+ }; |
+ |
enum EventTargetInheritance { |
NotInheritFromEventTarget, |
InheritFromEventTarget, |
@@ -158,16 +165,9 @@ struct WrapperTypeInfo { |
installConditionallyEnabledPropertiesFunction(prototypeObject, isolate); |
} |
- ActiveScriptWrappable* toActiveScriptWrappable(v8::Local<v8::Object> object) const |
- { |
- if (!toActiveScriptWrappableFunction) |
- return nullptr; |
- return toActiveScriptWrappableFunction(object); |
- } |
- |
- bool hasPendingActivity(v8::Local<v8::Object> object) const |
+ bool isActiveScriptWrappable() const |
{ |
- return !toActiveScriptWrappableFunction ? false : toActiveScriptWrappableFunction(object)->hasPendingActivity(); |
+ return activeScriptWrappableInheritance == InheritFromActiveScriptWrappable; |
} |
EventTarget* toEventTarget(v8::Local<v8::Object>) const; |
@@ -180,13 +180,13 @@ struct WrapperTypeInfo { |
visitDOMWrapperFunction(isolate, scriptWrappable, wrapper); |
} |
- // This field must be the first member of the struct WrapperTypeInfo. This is also checked by a static_assert() below. |
+ // This field must be the first member of the struct WrapperTypeInfo. |
+ // See also static_assert() in .cpp file. |
const gin::GinEmbedder ginEmbedder; |
DomTemplateFunction domTemplateFunction; |
const TraceFunction traceFunction; |
const TraceWrappersFunction traceWrappersFunction; |
- const ToActiveScriptWrappableFunction toActiveScriptWrappableFunction; |
const ResolveWrapperReachabilityFunction visitDOMWrapperFunction; |
PreparePrototypeAndInterfaceObjectFunction preparePrototypeAndInterfaceObjectFunction; |
const InstallConditionallyEnabledPropertiesFunction installConditionallyEnabledPropertiesFunction; |
@@ -194,6 +194,7 @@ struct WrapperTypeInfo { |
const WrapperTypeInfo* parentClass; |
const unsigned wrapperTypePrototype : 1; // WrapperTypePrototype |
const unsigned wrapperClassId : 2; // WrapperClassId |
+ const unsigned activeScriptWrappableInheritance : 1; // ActiveScriptWrappableInheritance |
const unsigned eventTargetInheritance : 1; // EventTargetInheritance |
const unsigned lifetime : 1; // Lifetime |
}; |