diff options
Diffstat (limited to 'WebCore/bindings/v8/custom/V8HTMLPlugInElementCustom.cpp')
-rw-r--r-- | WebCore/bindings/v8/custom/V8HTMLPlugInElementCustom.cpp | 117 |
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 |