Diff
Modified: trunk/Source/WebCore/ChangeLog (136602 => 136603)
--- trunk/Source/WebCore/ChangeLog 2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/ChangeLog 2012-12-05 01:35:55 UTC (rev 136603)
@@ -1,3 +1,37 @@
+2012-12-04 Adam Barth <[email protected]>
+
+ [V8] Cleanup style in V8DOMWrapper
+ https://bugs.webkit.org/show_bug.cgi?id=104062
+
+ Reviewed by Kentaro Hara.
+
+ This patch moves a number of functions from inside the class
+ declaration to below the class declaration. I've also inlined
+ domWrapperType into each of its callers and renamed a few functions.
+ A subsequent patch will improve the names of the remaining functions.
+
+ * bindings/scripts/CodeGeneratorV8.pm:
+ (GenerateToV8Converters):
+ * bindings/v8/ScriptProfiler.cpp:
+ (WebCore::ScriptProfiler::visitExternalArrays):
+ * bindings/v8/V8Collection.h:
+ (WebCore::getNamedPropertyOfCollection):
+ (WebCore::getIndexedPropertyOfCollection):
+ * bindings/v8/V8DOMWrapper.cpp:
+ (WebCore::V8DOMWrapper::instantiateDOMWrapper):
+ (WebCore::V8DOMWrapper::isWrapperOfType):
+ * bindings/v8/V8DOMWrapper.h:
+ (V8DOMWrapper):
+ (WebCore::V8DOMWrapper::setWrapperClass):
+ (WebCore::V8DOMWrapper::setDOMWrapper):
+ (WebCore):
+ (WebCore::V8DOMWrapper::clearDOMWrapper):
+ (WebCore::V8DOMWrapper::lookupDOMWrapper):
+ (WebCore::V8DOMWrapper::createDOMWrapper):
+ * bindings/v8/V8GCController.cpp:
+ * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
+ (WebCore::V8InspectorFrontendHost::showContextMenuCallback):
+
2012-12-04 Sheriff Bot <[email protected]>
Unreviewed, rolling out r136597.
Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm (136602 => 136603)
--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm 2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm 2012-12-05 01:35:55 UTC (rev 136603)
@@ -3502,7 +3502,7 @@
push(@implContent, <<END);
- v8::Handle<v8::Object> wrapper = V8DOMWrapper::instantiateV8Object(creationContext, &info, impl.get());
+ v8::Handle<v8::Object> wrapper = V8DOMWrapper::instantiateDOMWrapper(creationContext, &info, impl.get());
if (UNLIKELY(wrapper.IsEmpty()))
return wrapper;
Modified: trunk/Source/WebCore/bindings/v8/ScriptProfiler.cpp (136602 => 136603)
--- trunk/Source/WebCore/bindings/v8/ScriptProfiler.cpp 2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/v8/ScriptProfiler.cpp 2012-12-05 01:35:55 UTC (rev 136603)
@@ -218,7 +218,7 @@
return;
ASSERT(value->IsObject());
v8::Persistent<v8::Object> wrapper = v8::Persistent<v8::Object>::Cast(value);
- if (!V8DOMWrapper::domWrapperType(wrapper)->isSubclass(&V8ArrayBufferView::info))
+ if (!toWrapperTypeInfo(wrapper)->isSubclass(&V8ArrayBufferView::info))
return;
m_visitor->visitJSExternalArray(V8ArrayBufferView::toNative(wrapper));
}
Modified: trunk/Source/WebCore/bindings/v8/V8Collection.h (136602 => 136603)
--- trunk/Source/WebCore/bindings/v8/V8Collection.h 2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/v8/V8Collection.h 2012-12-05 01:35:55 UTC (rev 136603)
@@ -63,7 +63,7 @@
{
// FIXME: assert object is a collection type
ASSERT(V8DOMWrapper::maybeDOMWrapper(object));
- ASSERT(V8DOMWrapper::domWrapperType(object) != &V8Node::info);
+ ASSERT(toWrapperTypeInfo(object) != &V8Node::info);
Collection* collection = toNativeCollection<Collection>(object);
AtomicString propertyName = toWebCoreAtomicStringWithNullCheck(name);
return getV8Object<ItemType>(collection->namedItem(propertyName), creationContext, isolate);
@@ -85,7 +85,7 @@
{
// FIXME: Assert that object must be a collection type.
ASSERT(V8DOMWrapper::maybeDOMWrapper(object));
- ASSERT(V8DOMWrapper::domWrapperType(object) != &V8Node::info);
+ ASSERT(toWrapperTypeInfo(object) != &V8Node::info);
Collection* collection = toNativeCollection<Collection>(object);
return getV8Object<ItemType>(collection->item(index), creationContext, isolate);
}
Modified: trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp (136602 => 136603)
--- trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp 2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp 2012-12-05 01:35:55 UTC (rev 136603)
@@ -104,26 +104,17 @@
parent->SetHiddenValue(V8HiddenPropertyName::hiddenReferenceName(name, strlen(name)), child);
}
-WrapperTypeInfo* V8DOMWrapper::domWrapperType(v8::Handle<v8::Object> object)
+v8::Local<v8::Object> V8DOMWrapper::instantiateDOMWrapper(v8::Handle<v8::Object> creationContext, WrapperTypeInfo* type, void* impl)
{
- ASSERT(V8DOMWrapper::maybeDOMWrapper(object));
- return toWrapperTypeInfo(object);
-}
-
-v8::Local<v8::Object> V8DOMWrapper::instantiateV8Object(v8::Handle<v8::Object> creationContext, WrapperTypeInfo* type, void* impl)
-{
V8WrapperInstantiationScope scope(creationContext);
V8PerContextData* perContextData = V8PerContextData::from(scope.context());
- v8::Local<v8::Object> instance = perContextData ? perContextData->createWrapperFromCache(type) : V8ObjectConstructor::newInstance(type->getTemplate()->GetFunction());
+ v8::Local<v8::Object> wrapper = perContextData ? perContextData->createWrapperFromCache(type) : V8ObjectConstructor::newInstance(type->getTemplate()->GetFunction());
- // Avoid setting the DOM wrapper for failed allocations.
- if (instance.IsEmpty())
- return instance;
+ if (type == &V8HTMLDocument::info && !wrapper.IsEmpty())
+ wrapper = V8HTMLDocument::wrapInShadowObject(wrapper, static_cast<Node*>(impl));
- if (type == &V8HTMLDocument::info)
- instance = V8HTMLDocument::wrapInShadowObject(instance, static_cast<Node*>(impl));
- return instance;
+ return wrapper;
}
static bool hasInternalField(v8::Handle<v8::Value> value)
@@ -154,11 +145,11 @@
if (!hasInternalField(value))
return false;
- v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(value);
- ASSERT(object->InternalFieldCount() >= v8DefaultWrapperInternalFieldCount);
- ASSERT(object->GetAlignedPointerFromInternalField(v8DOMWrapperObjectIndex));
+ v8::Handle<v8::Object> wrapper = v8::Handle<v8::Object>::Cast(value);
+ ASSERT(wrapper->InternalFieldCount() >= v8DefaultWrapperInternalFieldCount);
+ ASSERT(wrapper->GetAlignedPointerFromInternalField(v8DOMWrapperObjectIndex));
- WrapperTypeInfo* typeInfo = static_cast<WrapperTypeInfo*>(object->GetAlignedPointerFromInternalField(v8DOMWrapperTypeIndex));
+ WrapperTypeInfo* typeInfo = static_cast<WrapperTypeInfo*>(wrapper->GetAlignedPointerFromInternalField(v8DOMWrapperTypeIndex));
return typeInfo == type;
}
Modified: trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h (136602 => 136603)
--- trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h 2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h 2012-12-05 01:35:55 UTC (rev 136603)
@@ -46,12 +46,6 @@
namespace WebCore {
- class DOMWindow;
- class EventTarget;
- class Frame;
- class V8PerContextData;
- class WorkerContext;
-
enum ListenerLookupType {
ListenerFindOnly,
ListenerFindOrCreate,
@@ -64,56 +58,54 @@
static bool maybeDOMWrapper(v8::Handle<v8::Value>);
#endif
- static void setDOMWrapper(v8::Handle<v8::Object> object, WrapperTypeInfo* type, void* impl)
- {
- ASSERT(object->InternalFieldCount() >= 2);
- ASSERT(impl);
- ASSERT(type);
- object->SetAlignedPointerInInternalField(v8DOMWrapperObjectIndex, impl);
- object->SetAlignedPointerInInternalField(v8DOMWrapperTypeIndex, type);
- }
+ static v8::Local<v8::Object> instantiateDOMWrapper(v8::Handle<v8::Object> creationContext, WrapperTypeInfo*, void*);
- static void clearDOMWrapper(v8::Handle<v8::Object> object, WrapperTypeInfo* type)
- {
- ASSERT(object->InternalFieldCount() >= 2);
- ASSERT(type);
- object->SetAlignedPointerInInternalField(v8DOMWrapperTypeIndex, type);
- object->SetAlignedPointerInInternalField(v8DOMWrapperObjectIndex, 0);
- }
+ template<typename T>
+ static inline v8::Persistent<v8::Object> createDOMWrapper(PassRefPtr<T>, WrapperTypeInfo*, v8::Handle<v8::Object>, v8::Isolate* = 0);
+ static inline void setDOMWrapper(v8::Handle<v8::Object>, WrapperTypeInfo*, void*);
+ static inline void clearDOMWrapper(v8::Handle<v8::Object>, WrapperTypeInfo*);
- static v8::Handle<v8::Object> lookupDOMWrapper(v8::Handle<v8::FunctionTemplate> functionTemplate, v8::Handle<v8::Object> object)
- {
- return object.IsEmpty() ? object : object->FindInstanceInPrototypeChain(functionTemplate);
- }
+ static inline v8::Handle<v8::Object> lookupDOMWrapper(v8::Handle<v8::FunctionTemplate>, v8::Handle<v8::Object>);
- static WrapperTypeInfo* domWrapperType(v8::Handle<v8::Object>);
+ // FIXME: This function should probably move to V8EventListenerList.h
+ static PassRefPtr<EventListener> getEventListener(v8::Local<v8::Value>, bool isAttribute, ListenerLookupType);
- static PassRefPtr<EventListener> getEventListener(v8::Local<v8::Value> value, bool isAttribute, ListenerLookupType lookup);
-
- template<typename T>
- static v8::Persistent<v8::Object> createDOMWrapper(PassRefPtr<T>, WrapperTypeInfo*, v8::Handle<v8::Object>, v8::Isolate* = 0);
-
- // Check whether a V8 value is a wrapper of type |classType|.
static bool isWrapperOfType(v8::Handle<v8::Value>, WrapperTypeInfo*);
+ // FIXME: Why is this function in V8DOMWrapper?
static void setNamedHiddenReference(v8::Handle<v8::Object> parent, const char* name, v8::Handle<v8::Value> child);
- static v8::Local<v8::Object> instantiateV8Object(v8::Handle<v8::Object> creationContext, WrapperTypeInfo*, void*);
-
private:
- static void setWrapperClass(void*, v8::Persistent<v8::Object> wrapper)
- {
- wrapper.SetWrapperClassId(v8DOMObjectClassId);
- }
-
- static void setWrapperClass(Node*, v8::Persistent<v8::Object> wrapper)
- {
- wrapper.SetWrapperClassId(v8DOMNodeClassId);
- }
+ static void setWrapperClass(void*, v8::Persistent<v8::Object> wrapper) { wrapper.SetWrapperClassId(v8DOMObjectClassId); }
+ static void setWrapperClass(Node*, v8::Persistent<v8::Object> wrapper) { wrapper.SetWrapperClassId(v8DOMNodeClassId); }
};
+ inline void V8DOMWrapper::setDOMWrapper(v8::Handle<v8::Object> wrapper, WrapperTypeInfo* type, void* object)
+ {
+ ASSERT(wrapper->InternalFieldCount() >= 2);
+ ASSERT(object);
+ ASSERT(type);
+ wrapper->SetAlignedPointerInInternalField(v8DOMWrapperObjectIndex, object);
+ wrapper->SetAlignedPointerInInternalField(v8DOMWrapperTypeIndex, type);
+ }
+
+ inline void V8DOMWrapper::clearDOMWrapper(v8::Handle<v8::Object> wrapper, WrapperTypeInfo* type)
+ {
+ ASSERT(wrapper->InternalFieldCount() >= 2);
+ ASSERT(type);
+ wrapper->SetAlignedPointerInInternalField(v8DOMWrapperTypeIndex, type);
+ wrapper->SetAlignedPointerInInternalField(v8DOMWrapperObjectIndex, 0);
+ }
+
+ inline v8::Handle<v8::Object> V8DOMWrapper::lookupDOMWrapper(v8::Handle<v8::FunctionTemplate> functionTemplate, v8::Handle<v8::Object> wrapper)
+ {
+ if (wrapper.IsEmpty())
+ return wrapper;
+ return wrapper->FindInstanceInPrototypeChain(functionTemplate);
+ }
+
template<typename T>
- v8::Persistent<v8::Object> V8DOMWrapper::createDOMWrapper(PassRefPtr<T> object, WrapperTypeInfo* type, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate)
+ inline v8::Persistent<v8::Object> V8DOMWrapper::createDOMWrapper(PassRefPtr<T> object, WrapperTypeInfo* type, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate)
{
setDOMWrapper(wrapper, type, object.get());
v8::Persistent<v8::Object> wrapperHandle = v8::Persistent<v8::Object>::New(wrapper);
Modified: trunk/Source/WebCore/bindings/v8/V8GCController.cpp (136602 => 136603)
--- trunk/Source/WebCore/bindings/v8/V8GCController.cpp 2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/v8/V8GCController.cpp 2012-12-05 01:35:55 UTC (rev 136603)
@@ -169,7 +169,7 @@
if (value.IsIndependent())
return;
- WrapperTypeInfo* type = V8DOMWrapper::domWrapperType(wrapper);
+ WrapperTypeInfo* type = toWrapperTypeInfo(wrapper);
void* object = toNative(wrapper);
// FIXME: Abstract this if cascade into a WrapperTypeInfo function.
Modified: trunk/Source/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp (136602 => 136603)
--- trunk/Source/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp 2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp 2012-12-05 01:35:55 UTC (rev 136603)
@@ -112,7 +112,7 @@
return v8::Undefined();
v8::Local<v8::Object> eventWrapper = v8::Local<v8::Object>::Cast(args[0]);
- if (!V8MouseEvent::info.equals(V8DOMWrapper::domWrapperType(eventWrapper)))
+ if (!V8MouseEvent::info.equals(toWrapperTypeInfo(eventWrapper)))
return v8::Undefined();
Event* event = V8Event::toNative(eventWrapper);
Modified: trunk/Source/WebKit/chromium/ChangeLog (136602 => 136603)
--- trunk/Source/WebKit/chromium/ChangeLog 2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebKit/chromium/ChangeLog 2012-12-05 01:35:55 UTC (rev 136603)
@@ -1,3 +1,13 @@
+2012-12-04 Adam Barth <[email protected]>
+
+ [V8] Cleanup style in V8DOMWrapper
+ https://bugs.webkit.org/show_bug.cgi?id=104062
+
+ Reviewed by Kentaro Hara.
+
+ * src/WebBindings.cpp:
+ (WebKit::getRangeImpl):
+
2012-12-04 Stephen White <[email protected]>
[chromium] Turn on the new Skia mask blur algorithm.
Modified: trunk/Source/WebKit/chromium/src/WebBindings.cpp (136602 => 136603)
--- trunk/Source/WebKit/chromium/src/WebBindings.cpp 2012-12-05 01:32:32 UTC (rev 136602)
+++ trunk/Source/WebKit/chromium/src/WebBindings.cpp 2012-12-05 01:35:55 UTC (rev 136603)
@@ -211,7 +211,7 @@
V8NPObject* v8NPObject = reinterpret_cast<V8NPObject*>(object);
v8::Handle<v8::Object> v8Object(v8NPObject->v8Object);
- if (!V8Range::info.equals(V8DOMWrapper::domWrapperType(v8Object)))
+ if (!V8Range::info.equals(toWrapperTypeInfo(v8Object)))
return false;
Range* native = V8Range::HasInstance(v8Object) ? V8Range::toNative(v8Object) : 0;