[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.18-1-697-g2f78b87
japhet at chromium.org
japhet at chromium.org
Wed Jan 20 22:24:47 UTC 2010
The following commit has been merged in the debian/unstable branch:
commit c88d61e8b58711f049603e57a822410858b2e7ed
Author: japhet at chromium.org <japhet at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jan 14 22:07:58 2010 +0000
2010-01-14 Nate Chapin <japhet at chromium.org>
Reviewed by Dimitri Glazkov.
Standardize the rest of the v8 bindings on toNative() wherever possible.
https://bugs.webkit.org/show_bug.cgi?id=33677
* bindings/v8/NPV8Object.cpp:
(v8ObjectToNPObject): Special case for converting NPObjects, since there aren't genereated bindings for them.
* bindings/v8/NPV8Object.h:
* bindings/v8/ScriptController.cpp:
* bindings/v8/V8Collection.cpp:
* bindings/v8/V8Collection.h:
(WebCore::toNativeCollection): Special case for converting V8Collections, since there aren't genereated bindings for them.
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8DOMWrapper.h:
* bindings/v8/V8NPObject.cpp:
* bindings/v8/V8Proxy.cpp:
* bindings/v8/V8SVGPODTypeWrapper.h:
* bindings/v8/WorkerContextExecutionProxy.cpp:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53290 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d26a213..febde8e 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,26 @@
+2010-01-14 Nate Chapin <japhet at chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Standardize the rest of the v8 bindings on toNative() wherever possible.
+
+ https://bugs.webkit.org/show_bug.cgi?id=33677
+
+ * bindings/v8/NPV8Object.cpp:
+ (v8ObjectToNPObject): Special case for converting NPObjects, since there aren't genereated bindings for them.
+ * bindings/v8/NPV8Object.h:
+ * bindings/v8/ScriptController.cpp:
+ * bindings/v8/V8Collection.cpp:
+ * bindings/v8/V8Collection.h:
+ (WebCore::toNativeCollection): Special case for converting V8Collections, since there aren't genereated bindings for them.
+ * bindings/v8/V8DOMWindowShell.cpp:
+ * bindings/v8/V8DOMWrapper.cpp:
+ * bindings/v8/V8DOMWrapper.h:
+ * bindings/v8/V8NPObject.cpp:
+ * bindings/v8/V8Proxy.cpp:
+ * bindings/v8/V8SVGPODTypeWrapper.h:
+ * bindings/v8/WorkerContextExecutionProxy.cpp:
+
2010-01-14 Evan Stade <estade at chromium.org>
Reviewed by Eric Seidel.
diff --git a/WebCore/bindings/v8/NPV8Object.cpp b/WebCore/bindings/v8/NPV8Object.cpp
index c5db79b..cb6c688 100644
--- a/WebCore/bindings/v8/NPV8Object.cpp
+++ b/WebCore/bindings/v8/NPV8Object.cpp
@@ -95,6 +95,11 @@ static v8::Local<v8::String> npIdentifierToV8Identifier(NPIdentifier name)
return v8::String::New(buffer);
}
+NPObject* v8ObjectToNPObject(v8::Handle<v8::Object> object)
+{
+ return reinterpret_cast<NPObject*>(object->GetPointerFromInternalField(WebCore::v8DOMWrapperObjectIndex));
+}
+
static NPClass V8NPObjectClass = { NP_CLASS_STRUCT_VERSION,
allocV8NPObject,
freeV8NPObject,
@@ -110,7 +115,7 @@ NPObject* npCreateV8ScriptObject(NPP npp, v8::Handle<v8::Object> object, WebCore
v8::Local<v8::Value> typeIndex = object->GetInternalField(WebCore::v8DOMWrapperTypeIndex);
if (typeIndex->IsNumber() && typeIndex->Uint32Value() == V8ClassIndex::NPOBJECT) {
- NPObject* returnValue = V8DOMWrapper::convertToNativeObject<NPObject>(V8ClassIndex::NPOBJECT, object);
+ NPObject* returnValue = v8ObjectToNPObject(object);
_NPN_RetainObject(returnValue);
return returnValue;
}
diff --git a/WebCore/bindings/v8/NPV8Object.h b/WebCore/bindings/v8/NPV8Object.h
index eec07ea..91a2d08 100644
--- a/WebCore/bindings/v8/NPV8Object.h
+++ b/WebCore/bindings/v8/NPV8Object.h
@@ -60,4 +60,6 @@ struct PrivateIdentifier {
NPObject* npCreateV8ScriptObject(NPP, v8::Handle<v8::Object>, WebCore::DOMWindow*);
+NPObject* v8ObjectToNPObject(v8::Handle<v8::Object>);
+
#endif // NPV8Object_h
diff --git a/WebCore/bindings/v8/ScriptController.cpp b/WebCore/bindings/v8/ScriptController.cpp
index 8f367c0..84a4d4b 100644
--- a/WebCore/bindings/v8/ScriptController.cpp
+++ b/WebCore/bindings/v8/ScriptController.cpp
@@ -51,6 +51,7 @@
#include "Settings.h"
#include "V8Binding.h"
#include "V8BindingState.h"
+#include "V8Event.h"
#include "V8IsolatedContext.h"
#include "V8NPObject.h"
#include "V8Proxy.h"
@@ -169,7 +170,7 @@ bool ScriptController::processingUserGesture() const
v8::Handle<v8::Object> global = v8Context->Global();
v8::Handle<v8::Value> jsEvent = global->Get(v8::String::NewSymbol("event"));
- Event* event = V8DOMWrapper::convertToNativeEvent(jsEvent);
+ Event* event = V8DOMWrapper::isDOMEventWrapper(jsEvent) ? V8Event::toNative(v8::Handle<v8::Object>::Cast(jsEvent)) : 0;
// Based on code from kjs_bindings.cpp.
// Note: This is more liberal than Firefox's implementation.
diff --git a/WebCore/bindings/v8/V8Collection.cpp b/WebCore/bindings/v8/V8Collection.cpp
index c9fc9ac..2ff5c88 100644
--- a/WebCore/bindings/v8/V8Collection.cpp
+++ b/WebCore/bindings/v8/V8Collection.cpp
@@ -52,7 +52,7 @@ v8::Handle<v8::Value> toOptionsCollectionSetter(uint32_t index, v8::Handle<v8::V
return value;
}
- HTMLOptionElement* element = V8DOMWrapper::convertDOMWrapperToNode<HTMLOptionElement>(v8::Handle<v8::Object>::Cast(value));
+ HTMLOptionElement* element = V8HTMLOptionElement::toNative(v8::Handle<v8::Object>::Cast(value));
base->setOption(index, element, ec);
V8Proxy::setDOMException(ec);
diff --git a/WebCore/bindings/v8/V8Collection.h b/WebCore/bindings/v8/V8Collection.h
index 9a1341b..2ead22f 100644
--- a/WebCore/bindings/v8/V8Collection.h
+++ b/WebCore/bindings/v8/V8Collection.h
@@ -51,6 +51,11 @@ namespace WebCore {
return V8DOMWrapper::convertToV8Object(type, implementation);
}
+ template<class Collection> static Collection* toNativeCollection(v8::Local<v8::Object> object)
+ {
+ return reinterpret_cast<Collection*>(object->GetPointerFromInternalField(v8DOMWrapperObjectIndex));
+ }
+
template<class T> static v8::Handle<v8::Value> getV8Object(PassRefPtr<T> implementation, v8::Local<v8::Value> implementationType)
{
return getV8Object(implementation.get(), implementationType);
@@ -64,7 +69,7 @@ namespace WebCore {
ASSERT(V8DOMWrapper::maybeDOMWrapper(object));
V8ClassIndex::V8WrapperType wrapperType = V8DOMWrapper::domWrapperType(object);
ASSERT(wrapperType != V8ClassIndex::NODE);
- Collection* collection = V8DOMWrapper::convertToNativeObject<Collection>(wrapperType, object);
+ Collection* collection = toNativeCollection<Collection>(object);
AtomicString propertyName = toAtomicWebCoreStringWithNullCheck(name);
return getV8Object<ItemType>(collection->namedItem(propertyName), implementationType);
}
@@ -84,26 +89,6 @@ namespace WebCore {
return getNamedPropertyOfCollection<Collection, ItemType>(name, info.Holder(), info.Data());
}
- // A template of named property accessor of HTMLSelectElement and HTMLFormElement.
- template<class Collection> static v8::Handle<v8::Value> nodeCollectionNamedPropertyGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
- {
- ASSERT(V8DOMWrapper::maybeDOMWrapper(info.Holder()));
- ASSERT(V8DOMWrapper::domWrapperType(info.Holder()) == V8ClassIndex::NODE);
- v8::Handle<v8::Value> value = info.Holder()->GetRealNamedPropertyInPrototypeChain(name);
-
- if (!value.IsEmpty())
- return value;
-
- // Search local callback properties next to find IDL defined
- // properties.
- if (info.Holder()->HasRealNamedCallbackProperty(name))
- return notHandledByInterceptor();
- Collection* collection = V8DOMWrapper::convertDOMWrapperToNode<Collection>(info.Holder());
- String propertyName = toWebCoreString(name);
- void* implementation = collection->namedItem(propertyName);
- return getV8Object(implementation, info.Data());
- }
-
// Returns the property at the index of a collection.
template<class Collection, class ItemType> static v8::Handle<v8::Value> getIndexedPropertyOfCollection(uint32_t index, v8::Local<v8::Object> object,
v8::Local<v8::Value> implementationType)
@@ -112,7 +97,7 @@ namespace WebCore {
ASSERT(V8DOMWrapper::maybeDOMWrapper(object));
V8ClassIndex::V8WrapperType wrapperType = V8DOMWrapper::domWrapperType(object);
ASSERT(wrapperType != V8ClassIndex::NODE);
- Collection* collection = V8DOMWrapper::convertToNativeObject<Collection>(wrapperType, object);
+ Collection* collection = toNativeCollection<Collection>(object);
return getV8Object<ItemType>(collection->item(index), implementationType);
}
@@ -127,7 +112,7 @@ namespace WebCore {
{
ASSERT(V8DOMWrapper::maybeDOMWrapper(info.Holder()));
ASSERT(V8DOMWrapper::domWrapperType(info.Holder()) == V8ClassIndex::NODE);
- Collection* collection = V8DOMWrapper::convertDOMWrapperToNode<Collection>(info.Holder());
+ Collection* collection = toNativeCollection<Collection>(info.Holder());
int length = collection->length();
v8::Handle<v8::Array> properties = v8::Array::New(length);
for (int i = 0; i < length; ++i) {
@@ -142,8 +127,7 @@ namespace WebCore {
template<class Collection> static v8::Handle<v8::Array> collectionIndexedPropertyEnumerator(const v8::AccessorInfo& info)
{
ASSERT(V8DOMWrapper::maybeDOMWrapper(info.Holder()));
- V8ClassIndex::V8WrapperType wrapperType = V8DOMWrapper::domWrapperType(info.Holder());
- Collection* collection = V8DOMWrapper::convertToNativeObject<Collection>(wrapperType, info.Holder());
+ Collection* collection = toNativeCollection<Collection>(info.Holder());
int length = collection->length();
v8::Handle<v8::Array> properties = v8::Array::New(length);
for (int i = 0; i < length; ++i) {
@@ -160,8 +144,7 @@ namespace WebCore {
{
// FIXME: assert that object must be a collection type
ASSERT(V8DOMWrapper::maybeDOMWrapper(info.Holder()));
- V8ClassIndex::V8WrapperType wrapperType = V8DOMWrapper::domWrapperType(info.Holder());
- Collection* collection = V8DOMWrapper::convertToNativeObject<Collection>(wrapperType, info.Holder());
+ Collection* collection = toNativeCollection<Collection>(info.Holder());
String result = collection->item(index);
return v8StringOrNull(result);
}
@@ -172,8 +155,7 @@ namespace WebCore {
{
// FIXME: assert that object must be a collection type
ASSERT(V8DOMWrapper::maybeDOMWrapper(info.Holder()));
- V8ClassIndex::V8WrapperType wrapperType = V8DOMWrapper::domWrapperType(info.Holder());
- Collection* collection = V8DOMWrapper::convertToNativeObject<Collection>(wrapperType, info.Holder());
+ Collection* collection = toNativeCollection<Collection>(info.Holder());
String result = collection->item(index);
return v8String(result);
}
diff --git a/WebCore/bindings/v8/V8DOMWindowShell.cpp b/WebCore/bindings/v8/V8DOMWindowShell.cpp
index 3b4a901..9a4df61 100644
--- a/WebCore/bindings/v8/V8DOMWindowShell.cpp
+++ b/WebCore/bindings/v8/V8DOMWindowShell.cpp
@@ -51,7 +51,9 @@
#include "V8DOMMap.h"
#include "V8DOMWindow.h"
#include "V8HiddenPropertyName.h"
+#include "V8History.h"
#include "V8Index.h"
+#include "V8Location.h"
#include "V8Proxy.h"
#include "WorkerContextExecutionProxy.h"
@@ -95,17 +97,17 @@ static Frame* getTargetFrame(v8::Local<v8::Object> host, v8::Local<v8::Value> da
if (window.IsEmpty())
return target;
- DOMWindow* targetWindow = V8DOMWrapper::convertToNativeObject<DOMWindow>(V8ClassIndex::DOMWINDOW, window);
+ DOMWindow* targetWindow = V8DOMWindow::toNative(window);
target = targetWindow->frame();
break;
}
case V8ClassIndex::LOCATION: {
- History* history = V8DOMWrapper::convertToNativeObject<History>(V8ClassIndex::HISTORY, host);
+ History* history = V8History::toNative(host);
target = history->frame();
break;
}
case V8ClassIndex::HISTORY: {
- Location* location = V8DOMWrapper::convertToNativeObject<Location>(V8ClassIndex::LOCATION, host);
+ Location* location = V8Location::toNative(host);
target = location->frame();
break;
}
diff --git a/WebCore/bindings/v8/V8DOMWrapper.cpp b/WebCore/bindings/v8/V8DOMWrapper.cpp
index b3bdcfa..e6ef679 100644
--- a/WebCore/bindings/v8/V8DOMWrapper.cpp
+++ b/WebCore/bindings/v8/V8DOMWrapper.cpp
@@ -666,11 +666,6 @@ V8ClassIndex::V8WrapperType V8DOMWrapper::domWrapperType(v8::Handle<v8::Object>
return V8ClassIndex::FromInt(type->Int32Value());
}
-void* V8DOMWrapper::convertToSVGPODTypeImpl(V8ClassIndex::V8WrapperType type, v8::Handle<v8::Value> object)
-{
- return isWrapperOfType(object, type) ? convertDOMWrapperToNative<void>(v8::Handle<v8::Object>::Cast(object)) : 0;
-}
-
PassRefPtr<NodeFilter> V8DOMWrapper::wrapNativeNodeFilter(v8::Handle<v8::Value> filter)
{
// A NodeFilter is used when walking through a DOM tree or iterating tree
@@ -1522,7 +1517,7 @@ v8::Handle<v8::Value> V8DOMWrapper::convertWindowToV8Object(DOMWindow* window)
v8::Handle<v8::Object> currentGlobal = currentContext->Global();
v8::Handle<v8::Object> windowWrapper = V8DOMWrapper::lookupDOMWrapper(V8ClassIndex::DOMWINDOW, currentGlobal);
if (!windowWrapper.IsEmpty()) {
- if (convertDOMWrapperToNative<DOMWindow>(windowWrapper) == window)
+ if (V8DOMWindow::toNative(windowWrapper) == window)
return currentGlobal;
}
diff --git a/WebCore/bindings/v8/V8DOMWrapper.h b/WebCore/bindings/v8/V8DOMWrapper.h
index 606c2de..ee79509 100644
--- a/WebCore/bindings/v8/V8DOMWrapper.h
+++ b/WebCore/bindings/v8/V8DOMWrapper.h
@@ -39,6 +39,7 @@
#include "V8CustomBinding.h"
#include "V8CustomXPathNSResolver.h"
#include "V8DOMMap.h"
+#include "V8Event.h"
#include "V8Index.h"
#include "V8Utilities.h"
#include "V8XPathNSResolver.h"
@@ -121,29 +122,6 @@ namespace WebCore {
return object.IsEmpty() ? object : object->FindInstanceInPrototypeChain(getTemplate(type));
}
- // A helper function extract native object pointer from a DOM wrapper
- // and cast to the specified type.
- template <class C>
- static C* convertDOMWrapperToNative(v8::Handle<v8::Object> object)
- {
-#ifndef NDEBUG
- v8::HandleScope handleScope;
- ASSERT(maybeDOMWrapper(object));
-#endif
- return reinterpret_cast<C*>(object->GetPointerFromInternalField(v8DOMWrapperObjectIndex));
- }
-
- template <class C>
- static C* convertDOMWrapperToNode(v8::Handle<v8::Object> object)
- {
-#ifndef NDEBUG
- v8::HandleScope handleScope;
- ASSERT(maybeDOMWrapper(object));
- ASSERT(domWrapperType(object) == V8ClassIndex::NODE);
-#endif
- return convertDOMWrapperToNative<C>(object);
- }
-
template<typename T>
static v8::Handle<v8::Value> convertToV8Object(V8ClassIndex::V8WrapperType type, PassRefPtr<T> imp)
{
@@ -174,30 +152,6 @@ namespace WebCore {
static v8::Handle<v8::Value> convertNewNodeToV8Object(Node*, V8Proxy*, DOMWrapperMap<Node>&);
- template <class C>
- static C* convertToNativeObject(V8ClassIndex::V8WrapperType type, v8::Handle<v8::Object> object)
- {
- // Native event listener is per frame, it cannot be handled by this generic function.
- ASSERT(type != V8ClassIndex::EVENTLISTENER);
- ASSERT(type != V8ClassIndex::EVENTTARGET);
-
- ASSERT(maybeDOMWrapper(object));
-
-#ifndef NDEBUG
- const bool typeIsValid =
-#define MAKE_CASE(TYPE, NAME) (type != V8ClassIndex::TYPE) &&
- DOM_NODE_TYPES(MAKE_CASE)
-#if ENABLE(SVG)
- SVG_NODE_TYPES(MAKE_CASE)
-#endif
-#undef MAKE_CASE
- true;
- ASSERT(typeIsValid);
-#endif
-
- return convertDOMWrapperToNative<C>(object);
- }
-
static V8ClassIndex::V8WrapperType domWrapperType(v8::Handle<v8::Object>);
static v8::Handle<v8::Value> convertEventToV8Object(PassRefPtr<Event> event)
@@ -207,13 +161,6 @@ namespace WebCore {
static v8::Handle<v8::Value> convertEventToV8Object(Event*);
- static Event* convertToNativeEvent(v8::Handle<v8::Value> jsEvent)
- {
- if (!isDOMEventWrapper(jsEvent))
- return 0;
- return convertDOMWrapperToNative<Event>(v8::Handle<v8::Object>::Cast(jsEvent));
- }
-
static v8::Handle<v8::Value> convertEventTargetToV8Object(PassRefPtr<EventTarget> eventTarget)
{
return convertEventTargetToV8Object(eventTarget.get());
@@ -253,7 +200,7 @@ namespace WebCore {
{
RefPtr<XPathNSResolver> resolver;
if (V8XPathNSResolver::HasInstance(value))
- resolver = convertToNativeObject<XPathNSResolver>(V8ClassIndex::XPATHNSRESOLVER, v8::Handle<v8::Object>::Cast(value));
+ resolver = V8XPathNSResolver::toNative(v8::Handle<v8::Object>::Cast(value));
else if (value->IsObject())
resolver = V8CustomXPathNSResolver::create(proxy, value->ToObject());
return resolver;
@@ -281,8 +228,6 @@ namespace WebCore {
// Check whether a V8 value is a wrapper of type |classType|.
static bool isWrapperOfType(v8::Handle<v8::Value>, V8ClassIndex::V8WrapperType);
- static void* convertToSVGPODTypeImpl(V8ClassIndex::V8WrapperType, v8::Handle<v8::Value>);
-
// Check whether a V8 value is a DOM Event wrapper.
static bool isDOMEventWrapper(v8::Handle<v8::Value>);
diff --git a/WebCore/bindings/v8/V8NPObject.cpp b/WebCore/bindings/v8/V8NPObject.cpp
index 539f5b5..196972e 100644
--- a/WebCore/bindings/v8/V8NPObject.cpp
+++ b/WebCore/bindings/v8/V8NPObject.cpp
@@ -65,10 +65,16 @@ static v8::Handle<v8::Value> npObjectInvokeImpl(const v8::Arguments& args, Invok
if (V8HTMLAppletElement::HasInstance(args.Holder()) || V8HTMLEmbedElement::HasInstance(args.Holder())
|| V8HTMLObjectElement::HasInstance(args.Holder())) {
// The holder object is a subtype of HTMLPlugInElement.
- HTMLPlugInElement* element = V8DOMWrapper::convertDOMWrapperToNode<HTMLPlugInElement>(args.Holder());
+ HTMLPlugInElement* element;
+ if (V8HTMLAppletElement::HasInstance(args.Holder()))
+ element = V8HTMLAppletElement::toNative(args.Holder());
+ else if (V8HTMLEmbedElement::HasInstance(args.Holder()))
+ element = V8HTMLEmbedElement::toNative(args.Holder());
+ else
+ element = V8HTMLObjectElement::toNative(args.Holder());
ScriptInstance scriptInstance = element->getInstance();
if (scriptInstance)
- npObject = V8DOMWrapper::convertToNativeObject<NPObject>(V8ClassIndex::NPOBJECT, scriptInstance->instance());
+ npObject = v8ObjectToNPObject(scriptInstance->instance());
else
npObject = 0;
} else {
@@ -77,7 +83,7 @@ static v8::Handle<v8::Value> npObjectInvokeImpl(const v8::Arguments& args, Invok
if (args.Holder()->InternalFieldCount() != npObjectInternalFieldCount)
return throwError("NPMethod called on non-NPObject", V8Proxy::ReferenceError);
- npObject = V8DOMWrapper::convertToNativeObject<NPObject>(V8ClassIndex::NPOBJECT, args.Holder());
+ npObject = v8ObjectToNPObject(args.Holder());
}
// Verify that our wrapper wasn't using a NPObject which has already been deleted.
@@ -161,7 +167,7 @@ static void weakTemplateCallback(v8::Persistent<v8::Value> object, void* paramet
static v8::Handle<v8::Value> npObjectGetProperty(v8::Local<v8::Object> self, NPIdentifier identifier, v8::Local<v8::Value> key)
{
- NPObject* npObject = V8DOMWrapper::convertToNativeObject<NPObject>(V8ClassIndex::NPOBJECT, self);
+ NPObject* npObject = v8ObjectToNPObject(self);
// Verify that our wrapper wasn't using a NPObject which
// has already been deleted.
@@ -230,7 +236,7 @@ v8::Handle<v8::Value> npObjectGetIndexedProperty(v8::Local<v8::Object> self, uin
static v8::Handle<v8::Value> npObjectSetProperty(v8::Local<v8::Object> self, NPIdentifier identifier, v8::Local<v8::Value> value)
{
- NPObject* npObject = V8DOMWrapper::convertToNativeObject<NPObject>(V8ClassIndex::NPOBJECT, self);
+ NPObject* npObject = v8ObjectToNPObject(self);
// Verify that our wrapper wasn't using a NPObject which has already been deleted.
if (!npObject || !_NPN_IsAlive(npObject)) {
@@ -280,7 +286,7 @@ v8::Handle<v8::Value> npObjectSetIndexedProperty(v8::Local<v8::Object> self, uin
v8::Handle<v8::Array> npObjectPropertyEnumerator(const v8::AccessorInfo& info, bool namedProperty)
{
- NPObject* npObject = V8DOMWrapper::convertToNativeObject<NPObject>(V8ClassIndex::NPOBJECT, info.Holder());
+ NPObject* npObject = v8ObjectToNPObject(info.Holder());
// Verify that our wrapper wasn't using a NPObject which
// has already been deleted.
diff --git a/WebCore/bindings/v8/V8Proxy.cpp b/WebCore/bindings/v8/V8Proxy.cpp
index 05acb9d..d6c27e9 100644
--- a/WebCore/bindings/v8/V8Proxy.cpp
+++ b/WebCore/bindings/v8/V8Proxy.cpp
@@ -497,7 +497,7 @@ DOMWindow* V8Proxy::retrieveWindow(v8::Handle<v8::Context> context)
ASSERT(!global.IsEmpty());
global = V8DOMWrapper::lookupDOMWrapper(V8ClassIndex::DOMWINDOW, global);
ASSERT(!global.IsEmpty());
- return V8DOMWrapper::convertToNativeObject<DOMWindow>(V8ClassIndex::DOMWINDOW, global);
+ return V8DOMWindow::toNative(global);
}
Frame* V8Proxy::retrieveFrame(v8::Handle<v8::Context> context)
diff --git a/WebCore/bindings/v8/V8SVGPODTypeWrapper.h b/WebCore/bindings/v8/V8SVGPODTypeWrapper.h
index 8e3b385..f1c0e4a 100644
--- a/WebCore/bindings/v8/V8SVGPODTypeWrapper.h
+++ b/WebCore/bindings/v8/V8SVGPODTypeWrapper.h
@@ -402,14 +402,12 @@ public:
template <class P>
P V8SVGPODTypeUtil::toSVGPODType(V8ClassIndex::V8WrapperType type, v8::Handle<v8::Value> object, bool& ok)
{
- void *wrapper = V8DOMWrapper::convertToSVGPODTypeImpl(type, object);
- if (wrapper == NULL) {
+ if (!V8DOMWrapper::isWrapperOfType(object, type)) {
ok = false;
return P();
- } else {
- ok = true;
- return *static_cast<V8SVGPODTypeWrapper<P>*>(wrapper);
}
+ ok = true;
+ return *V8SVGPODTypeWrapper<P>::toNative(v8::Handle<v8::Object>::Cast(object));
}
} // namespace WebCore
diff --git a/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp b/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp
index 7e3c543..57d612f 100644
--- a/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp
+++ b/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp
@@ -49,6 +49,7 @@
#include "V8DOMMap.h"
#include "V8Index.h"
#include "V8Proxy.h"
+#include "V8WorkerContext.h"
#include "V8WorkerContextEventListener.h"
#if ENABLE(WEB_SOCKETS)
#include "WebSocket.h"
@@ -109,7 +110,7 @@ WorkerContextExecutionProxy* WorkerContextExecutionProxy::retrieve()
// Return 0 if the current executing context is not the worker context.
if (global.IsEmpty())
return 0;
- WorkerContext* workerContext = V8DOMWrapper::convertToNativeObject<WorkerContext>(V8ClassIndex::WORKERCONTEXT, global);
+ WorkerContext* workerContext = V8WorkerContext::toNative(global);
return workerContext->script()->proxy();
}
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 0e41096..d55647e 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,15 @@
+2010-01-14 Nate Chapin <japhet at chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Remove references to V8DOMWrapper::convertToNative*().
+
+ https://bugs.webkit.org/show_bug.cgi?id=33677
+
+ * src/WebBindings.cpp:
+ (WebKit::getDragDataImpl):
+ (WebKit::getRangeImpl):
+
2010-01-14 Kent Tamura <tkent at chromium.org>
Reviewed by Darin Fisher.
diff --git a/WebKit/chromium/src/WebBindings.cpp b/WebKit/chromium/src/WebBindings.cpp
index 5e68fa3..04f2f85 100644
--- a/WebKit/chromium/src/WebBindings.cpp
+++ b/WebKit/chromium/src/WebBindings.cpp
@@ -46,8 +46,10 @@
#include "Range.h"
#include "V8BindingState.h"
#include "V8DOMWrapper.h"
+#include "V8Event.h"
#include "V8Helpers.h"
#include "V8Proxy.h"
+#include "V8Range.h"
#elif USE(JSC)
#include "bridge/c/c_utility.h"
#endif
@@ -224,13 +226,13 @@ static bool getDragDataImpl(NPObject* npobj, int* eventId, WebDragData* data)
// Get the current WebCore event.
v8::Handle<v8::Value> currentEvent(getEvent(context));
- Event* event = V8DOMWrapper::convertToNativeEvent(currentEvent);
+ Event* event = V8Event::toNative(v8::Handle<v8::Object>::Cast(currentEvent));
if (!event)
return false;
// Check that the given npobj is that event.
V8NPObject* object = reinterpret_cast<V8NPObject*>(npobj);
- Event* given = V8DOMWrapper::convertToNativeEvent(object->v8Object);
+ Event* given = V8Event::toNative(object->v8Object);
if (given != event)
return false;
@@ -285,7 +287,7 @@ static bool getRangeImpl(NPObject* npobj, WebRange* range)
if (V8ClassIndex::RANGE != V8DOMWrapper::domWrapperType(v8object))
return false;
- Range* native = V8DOMWrapper::convertToNativeObject<WebCore::Range>(V8ClassIndex::RANGE, v8object);
+ Range* native = V8Range::toNative(v8object);
if (!native)
return false;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list