summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/v8/custom/V8HTMLPlugInElementCustom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bindings/v8/custom/V8HTMLPlugInElementCustom.cpp')
-rw-r--r--WebCore/bindings/v8/custom/V8HTMLPlugInElementCustom.cpp117
1 files changed, 104 insertions, 13 deletions
diff --git a/WebCore/bindings/v8/custom/V8HTMLPlugInElementCustom.cpp b/WebCore/bindings/v8/custom/V8HTMLPlugInElementCustom.cpp
index 13c82f3..261b5a8 100644
--- a/WebCore/bindings/v8/custom/V8HTMLPlugInElementCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8HTMLPlugInElementCustom.cpp
@@ -32,18 +32,23 @@
#include "HTMLPlugInElement.h"
#include "ScriptInstance.h"
-
#include "V8Binding.h"
#include "V8CustomBinding.h"
+#include "V8HTMLAppletElement.h"
+#include "V8HTMLEmbedElement.h"
+#include "V8HTMLObjectElement.h"
#include "V8NPObject.h"
#include "V8Proxy.h"
namespace WebCore {
-NAMED_PROPERTY_GETTER(HTMLPlugInElement)
+// FIXME: Consider moving getter/setter helpers to V8NPObject and renaming this file to V8PluginElementFunctions
+// to match JSC bindings naming convention.
+
+template <class C>
+static v8::Handle<v8::Value> npObjectNamedGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
{
- INC_STATS("DOM.HTMLPlugInElement.NamedPropertyGetter");
- HTMLPlugInElement* imp = V8DOMWrapper::convertDOMWrapperToNode<HTMLPlugInElement>(info.Holder());
+ HTMLPlugInElement* imp = C::toNative(info.Holder());
ScriptInstance scriptInstance = imp->getInstance();
if (!scriptInstance)
return notHandledByInterceptor();
@@ -55,10 +60,10 @@ NAMED_PROPERTY_GETTER(HTMLPlugInElement)
return npObjectGetNamedProperty(instance, name);
}
-NAMED_PROPERTY_SETTER(HTMLPlugInElement)
+template <class C>
+static v8::Handle<v8::Value> npObjectNamedSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
{
- INC_STATS("DOM.HTMLPlugInElement.NamedPropertySetter");
- HTMLPlugInElement* imp = V8DOMWrapper::convertDOMWrapperToNode<HTMLPlugInElement>(info.Holder());
+ HTMLPlugInElement* imp = C::toNative(info.Holder());
ScriptInstance scriptInstance = imp->getInstance();
if (!scriptInstance)
return notHandledByInterceptor();
@@ -70,16 +75,65 @@ NAMED_PROPERTY_SETTER(HTMLPlugInElement)
return npObjectSetNamedProperty(instance, name, value);
}
-CALLBACK_FUNC_DECL(HTMLPlugInElement)
+v8::Handle<v8::Value> V8HTMLAppletElement::namedPropertyGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.HTMLAppletElement.NamedPropertyGetter");
+ return npObjectNamedGetter<V8HTMLAppletElement>(name, info);
+}
+
+v8::Handle<v8::Value> V8HTMLEmbedElement::namedPropertyGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.HTMLEmbedElement.NamedPropertyGetter");
+ return npObjectNamedGetter<V8HTMLEmbedElement>(name, info);
+}
+
+v8::Handle<v8::Value> V8HTMLObjectElement::namedPropertyGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.HTMLObjectElement.NamedPropertyGetter");
+ return npObjectNamedGetter<V8HTMLObjectElement>(name, info);
+}
+
+v8::Handle<v8::Value> V8HTMLAppletElement::namedPropertySetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.HTMLAppletElement.NamedPropertySetter");
+ return npObjectNamedSetter<V8HTMLAppletElement>(name, value, info);
+}
+
+v8::Handle<v8::Value> V8HTMLEmbedElement::namedPropertySetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.HTMLEmbedElement.NamedPropertySetter");
+ return npObjectNamedSetter<V8HTMLEmbedElement>(name, value, info);
+}
+
+v8::Handle<v8::Value> V8HTMLObjectElement::namedPropertySetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.HTMLObjectElement.NamedPropertySetter");
+ return npObjectNamedSetter<V8HTMLObjectElement>(name, value, info);
+}
+
+v8::Handle<v8::Value> V8HTMLAppletElement::callAsFunctionCallback(const v8::Arguments& args)
+{
+ INC_STATS("DOM.HTMLAppletElement()");
+ return npObjectInvokeDefaultHandler(args);
+}
+
+v8::Handle<v8::Value> V8HTMLEmbedElement::callAsFunctionCallback(const v8::Arguments& args)
+{
+ INC_STATS("DOM.HTMLEmbedElement()");
+ return npObjectInvokeDefaultHandler(args);
+}
+
+v8::Handle<v8::Value> V8HTMLObjectElement::callAsFunctionCallback(const v8::Arguments& args)
{
- INC_STATS("DOM.HTMLPluginElement()");
+ INC_STATS("DOM.HTMLObjectElement()");
return npObjectInvokeDefaultHandler(args);
}
-INDEXED_PROPERTY_GETTER(HTMLPlugInElement)
+template <class C>
+v8::Handle<v8::Value> npObjectIndexedGetter(uint32_t index, const v8::AccessorInfo& info)
{
INC_STATS("DOM.HTMLPlugInElement.IndexedPropertyGetter");
- HTMLPlugInElement* imp = V8DOMWrapper::convertDOMWrapperToNode<HTMLPlugInElement>(info.Holder());
+ HTMLPlugInElement* imp = C::toNative(info.Holder());
ScriptInstance scriptInstance = imp->getInstance();
if (!scriptInstance)
return notHandledByInterceptor();
@@ -91,10 +145,11 @@ INDEXED_PROPERTY_GETTER(HTMLPlugInElement)
return npObjectGetIndexedProperty(instance, index);
}
-INDEXED_PROPERTY_SETTER(HTMLPlugInElement)
+template <class C>
+v8::Handle<v8::Value> npObjectIndexedSetter(uint32_t index, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
{
INC_STATS("DOM.HTMLPlugInElement.IndexedPropertySetter");
- HTMLPlugInElement* imp = V8DOMWrapper::convertDOMWrapperToNode<HTMLPlugInElement>(info.Holder());
+ HTMLPlugInElement* imp = C::toNative(info.Holder());
ScriptInstance scriptInstance = imp->getInstance();
if (!scriptInstance)
return notHandledByInterceptor();
@@ -106,4 +161,40 @@ INDEXED_PROPERTY_SETTER(HTMLPlugInElement)
return npObjectSetIndexedProperty(instance, index, value);
}
+v8::Handle<v8::Value> V8HTMLAppletElement::indexedPropertyGetter(uint32_t index, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.HTMLAppletElement.IndexedPropertyGetter");
+ return npObjectIndexedGetter<V8HTMLAppletElement>(index, info);
+}
+
+v8::Handle<v8::Value> V8HTMLEmbedElement::indexedPropertyGetter(uint32_t index, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.HTMLEmbedElement.IndexedPropertyGetter");
+ return npObjectIndexedGetter<V8HTMLEmbedElement>(index, info);
+}
+
+v8::Handle<v8::Value> V8HTMLObjectElement::indexedPropertyGetter(uint32_t index, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.HTMLObjectElement.IndexedPropertyGetter");
+ return npObjectIndexedGetter<V8HTMLObjectElement>(index, info);
+}
+
+v8::Handle<v8::Value> V8HTMLAppletElement::indexedPropertySetter(uint32_t index, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.HTMLAppletElement.IndexedPropertySetter");
+ return npObjectIndexedSetter<V8HTMLAppletElement>(index, value, info);
+}
+
+v8::Handle<v8::Value> V8HTMLEmbedElement::indexedPropertySetter(uint32_t index, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.HTMLEmbedElement.IndexedPropertySetter");
+ return npObjectIndexedSetter<V8HTMLEmbedElement>(index, value, info);
+}
+
+v8::Handle<v8::Value> V8HTMLObjectElement::indexedPropertySetter(uint32_t index, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
+{
+ INC_STATS("DOM.HTMLObjectElement.IndexedPropertySetter");
+ return npObjectIndexedSetter<V8HTMLObjectElement>(index, value, info);
+}
+
} // namespace WebCore