summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/v8/custom/V8CustomBinding.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bindings/v8/custom/V8CustomBinding.h')
-rw-r--r--WebCore/bindings/v8/custom/V8CustomBinding.h464
1 files changed, 464 insertions, 0 deletions
diff --git a/WebCore/bindings/v8/custom/V8CustomBinding.h b/WebCore/bindings/v8/custom/V8CustomBinding.h
index e039c6f..42aca44 100644
--- a/WebCore/bindings/v8/custom/V8CustomBinding.h
+++ b/WebCore/bindings/v8/custom/V8CustomBinding.h
@@ -91,6 +91,7 @@ namespace WebCore {
bool allowSettingFrameSrcToJavascriptUrl(HTMLFrameElementBase*, String value);
bool allowSettingSrcToJavascriptURL(Element*, String name, String value);
+#ifdef MANUAL_MERGE_REQUIRED
class V8Custom {
public:
// Constants.
@@ -542,6 +543,469 @@ namespace WebCore {
static void WindowSetLocation(DOMWindow*, const String&);
};
+#else // MANUAL_MERGE_REQUIRED
+ class V8Custom {
+ public:
+ // Constants.
+ static const int kDOMWrapperTypeIndex = 0;
+ static const int kDOMWrapperObjectIndex = 1;
+ static const int kDefaultWrapperInternalFieldCount = 2;
+
+ static const int kNPObjectInternalFieldCount = kDefaultWrapperInternalFieldCount + 0;
+
+ static const int kNodeEventListenerCacheIndex = kDefaultWrapperInternalFieldCount + 0;
+ static const int kNodeMinimumInternalFieldCount = kDefaultWrapperInternalFieldCount + 1;
+
+ static const int kDocumentImplementationIndex = kNodeMinimumInternalFieldCount + 0;
+ static const int kDocumentMinimumInternalFieldCount = kNodeMinimumInternalFieldCount + 1;
+
+ static const int kHTMLDocumentMarkerIndex = kDocumentMinimumInternalFieldCount + 0;
+ static const int kHTMLDocumentShadowIndex = kDocumentMinimumInternalFieldCount + 1;
+ static const int kHTMLDocumentInternalFieldCount = kDocumentMinimumInternalFieldCount + 2;
+
+ static const int kXMLHttpRequestCacheIndex = kDefaultWrapperInternalFieldCount + 0;
+ static const int kXMLHttpRequestInternalFieldCount = kDefaultWrapperInternalFieldCount + 1;
+
+ static const int kMessageChannelPort1Index = kDefaultWrapperInternalFieldCount + 0;
+ static const int kMessageChannelPort2Index = kDefaultWrapperInternalFieldCount + 1;
+ static const int kMessageChannelInternalFieldCount = kDefaultWrapperInternalFieldCount + 2;
+
+ static const int kMessagePortRequestCacheIndex = kDefaultWrapperInternalFieldCount + 0;
+ static const int kMessagePortEntangledPortIndex = kDefaultWrapperInternalFieldCount + 1;
+ static const int kMessagePortInternalFieldCount = kDefaultWrapperInternalFieldCount + 2;
+
+#if ENABLE(WORKERS)
+ static const int kWorkerRequestCacheIndex = kDefaultWrapperInternalFieldCount + 0;
+ static const int kWorkerInternalFieldCount = kDefaultWrapperInternalFieldCount + 1;
+
+ static const int kWorkerContextRequestCacheIndex = kDefaultWrapperInternalFieldCount + 0;
+ static const int kWorkerContextMinimumInternalFieldCount = kDefaultWrapperInternalFieldCount + 1;
+
+ static const int kDedicatedWorkerContextRequestCacheIndex = kWorkerContextMinimumInternalFieldCount + 0;
+ static const int kDedicatedWorkerContextInternalFieldCount = kWorkerContextMinimumInternalFieldCount + 1;
+
+ static const int kAbstractWorkerRequestCacheIndex = kDefaultWrapperInternalFieldCount + 0;
+ static const int kAbstractWorkerInternalFieldCount = kDefaultWrapperInternalFieldCount + 1;
+#endif
+
+ static const int kDOMWindowConsoleIndex = kDefaultWrapperInternalFieldCount + 0;
+ static const int kDOMWindowHistoryIndex = kDefaultWrapperInternalFieldCount + 1;
+ static const int kDOMWindowLocationbarIndex = kDefaultWrapperInternalFieldCount + 2;
+ static const int kDOMWindowMenubarIndex = kDefaultWrapperInternalFieldCount + 3;
+ static const int kDOMWindowNavigatorIndex = kDefaultWrapperInternalFieldCount + 4;
+ static const int kDOMWindowPersonalbarIndex = kDefaultWrapperInternalFieldCount + 5;
+ static const int kDOMWindowScreenIndex = kDefaultWrapperInternalFieldCount + 6;
+ static const int kDOMWindowScrollbarsIndex = kDefaultWrapperInternalFieldCount + 7;
+ static const int kDOMWindowSelectionIndex = kDefaultWrapperInternalFieldCount + 8;
+ static const int kDOMWindowStatusbarIndex = kDefaultWrapperInternalFieldCount + 9;
+ static const int kDOMWindowToolbarIndex = kDefaultWrapperInternalFieldCount + 10;
+ static const int kDOMWindowLocationIndex = kDefaultWrapperInternalFieldCount + 11;
+ static const int kDOMWindowDOMSelectionIndex = kDefaultWrapperInternalFieldCount + 12;
+ static const int kDOMWindowInternalFieldCount = kDefaultWrapperInternalFieldCount + 13;
+
+ static const int kStyleSheetOwnerNodeIndex = kDefaultWrapperInternalFieldCount + 0;
+ static const int kStyleSheetInternalFieldCount = kDefaultWrapperInternalFieldCount + 1;
+
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+ static const int kDOMApplicationCacheCacheIndex = kDefaultWrapperInternalFieldCount + 0;
+ static const int kDOMApplicationCacheFieldCount = kDefaultWrapperInternalFieldCount + 1;
+#endif
+
+#define DECLARE_PROPERTY_ACCESSOR_GETTER(NAME) \
+ static v8::Handle<v8::Value> v8##NAME##AccessorGetter( \
+ v8::Local<v8::String> name, const v8::AccessorInfo& info)
+
+#define DECLARE_PROPERTY_ACCESSOR_SETTER(NAME) \
+ static void v8##NAME##AccessorSetter(v8::Local<v8::String> name, \
+ v8::Local<v8::Value> value, const v8::AccessorInfo& info)
+
+#define DECLARE_PROPERTY_ACCESSOR(NAME) DECLARE_PROPERTY_ACCESSOR_GETTER(NAME); DECLARE_PROPERTY_ACCESSOR_SETTER(NAME)
+
+#define DECLARE_NAMED_PROPERTY_GETTER(NAME) \
+ static v8::Handle<v8::Value> v8##NAME##NamedPropertyGetter( \
+ v8::Local<v8::String> name, const v8::AccessorInfo& info)
+
+#define DECLARE_NAMED_PROPERTY_SETTER(NAME) \
+ static v8::Handle<v8::Value> v8##NAME##NamedPropertySetter( \
+ v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
+
+#define DECLARE_NAMED_PROPERTY_DELETER(NAME) \
+ static v8::Handle<v8::Boolean> v8##NAME##NamedPropertyDeleter( \
+ v8::Local<v8::String> name, const v8::AccessorInfo& info)
+
+#define USE_NAMED_PROPERTY_GETTER(NAME) V8Custom::v8##NAME##NamedPropertyGetter
+
+#define USE_NAMED_PROPERTY_SETTER(NAME) V8Custom::v8##NAME##NamedPropertySetter
+
+#define USE_NAMED_PROPERTY_DELETER(NAME) V8Custom::v8##NAME##NamedPropertyDeleter
+
+#define DECLARE_INDEXED_PROPERTY_GETTER(NAME) \
+ static v8::Handle<v8::Value> v8##NAME##IndexedPropertyGetter( \
+ uint32_t index, const v8::AccessorInfo& info)
+
+#define DECLARE_INDEXED_PROPERTY_SETTER(NAME) \
+ static v8::Handle<v8::Value> v8##NAME##IndexedPropertySetter( \
+ uint32_t index, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
+
+#define DECLARE_INDEXED_PROPERTY_DELETER(NAME) \
+ static v8::Handle<v8::Boolean> v8##NAME##IndexedPropertyDeleter( \
+ uint32_t index, const v8::AccessorInfo& info)
+
+#define USE_INDEXED_PROPERTY_GETTER(NAME) V8Custom::v8##NAME##IndexedPropertyGetter
+
+#define USE_INDEXED_PROPERTY_SETTER(NAME) V8Custom::v8##NAME##IndexedPropertySetter
+
+#define USE_INDEXED_PROPERTY_DELETER(NAME) V8Custom::v8##NAME##IndexedPropertyDeleter
+
+#define DECLARE_CALLBACK(NAME) static v8::Handle<v8::Value> v8##NAME##Callback(const v8::Arguments& args)
+
+#define USE_CALLBACK(NAME) V8Custom::v8##NAME##Callback
+
+#define DECLARE_NAMED_ACCESS_CHECK(NAME) \
+ static bool v8##NAME##NamedSecurityCheck(v8::Local<v8::Object> host, \
+ v8::Local<v8::Value> key, v8::AccessType type, v8::Local<v8::Value> data)
+
+#define DECLARE_INDEXED_ACCESS_CHECK(NAME) \
+ static bool v8##NAME##IndexedSecurityCheck(v8::Local<v8::Object> host, \
+ uint32_t index, v8::AccessType type, v8::Local<v8::Value> data)
+
+ DECLARE_PROPERTY_ACCESSOR(CanvasRenderingContext2DStrokeStyle);
+ DECLARE_PROPERTY_ACCESSOR(CanvasRenderingContext2DFillStyle);
+ DECLARE_PROPERTY_ACCESSOR_GETTER(DOMWindowEvent);
+ DECLARE_PROPERTY_ACCESSOR_GETTER(DOMWindowCrypto);
+ DECLARE_PROPERTY_ACCESSOR_SETTER(DOMWindowLocation);
+ DECLARE_PROPERTY_ACCESSOR_SETTER(DOMWindowOpener);
+
+ DECLARE_PROPERTY_ACCESSOR(DocumentLocation);
+ DECLARE_PROPERTY_ACCESSOR(DocumentImplementation);
+ DECLARE_PROPERTY_ACCESSOR_GETTER(EventSrcElement);
+ DECLARE_PROPERTY_ACCESSOR(EventReturnValue);
+ DECLARE_PROPERTY_ACCESSOR_GETTER(EventDataTransfer);
+ DECLARE_PROPERTY_ACCESSOR_GETTER(EventClipboardData);
+
+ DECLARE_PROPERTY_ACCESSOR(DOMWindowEventHandler);
+ DECLARE_PROPERTY_ACCESSOR(NodeEventHandler);
+
+ DECLARE_CALLBACK(HTMLCanvasElementGetContext);
+
+ DECLARE_PROPERTY_ACCESSOR_SETTER(HTMLFrameElementSrc);
+ DECLARE_PROPERTY_ACCESSOR_SETTER(HTMLFrameElementLocation);
+ DECLARE_PROPERTY_ACCESSOR_SETTER(HTMLIFrameElementSrc);
+
+ DECLARE_PROPERTY_ACCESSOR_SETTER(AttrValue);
+
+ DECLARE_PROPERTY_ACCESSOR(HTMLOptionsCollectionLength);
+
+ DECLARE_CALLBACK(HTMLInputElementSetSelectionRange);
+
+ DECLARE_PROPERTY_ACCESSOR(HTMLInputElementSelectionStart);
+ DECLARE_PROPERTY_ACCESSOR(HTMLInputElementSelectionEnd);
+
+ DECLARE_NAMED_ACCESS_CHECK(Location);
+ DECLARE_INDEXED_ACCESS_CHECK(History);
+
+ DECLARE_NAMED_ACCESS_CHECK(History);
+ DECLARE_INDEXED_ACCESS_CHECK(Location);
+
+ DECLARE_CALLBACK(HTMLCollectionItem);
+ DECLARE_CALLBACK(HTMLCollectionNamedItem);
+ DECLARE_CALLBACK(HTMLCollectionCallAsFunction);
+
+ DECLARE_CALLBACK(HTMLSelectElementRemove);
+
+ DECLARE_CALLBACK(HTMLOptionsCollectionRemove);
+ DECLARE_CALLBACK(HTMLOptionsCollectionAdd);
+
+ DECLARE_CALLBACK(HTMLDocumentWrite);
+ DECLARE_CALLBACK(HTMLDocumentWriteln);
+ DECLARE_CALLBACK(HTMLDocumentOpen);
+ DECLARE_PROPERTY_ACCESSOR(HTMLDocumentAll);
+ DECLARE_NAMED_PROPERTY_GETTER(HTMLDocument);
+ DECLARE_NAMED_PROPERTY_DELETER(HTMLDocument);
+
+ DECLARE_CALLBACK(DocumentEvaluate);
+ DECLARE_CALLBACK(DocumentGetCSSCanvasContext);
+
+ DECLARE_CALLBACK(DOMWindowAddEventListener);
+ DECLARE_CALLBACK(DOMWindowRemoveEventListener);
+ DECLARE_CALLBACK(DOMWindowPostMessage);
+ DECLARE_CALLBACK(DOMWindowSetTimeout);
+ DECLARE_CALLBACK(DOMWindowSetInterval);
+ DECLARE_CALLBACK(DOMWindowAtob);
+ DECLARE_CALLBACK(DOMWindowBtoa);
+ DECLARE_CALLBACK(DOMWindowNOP);
+ DECLARE_CALLBACK(DOMWindowToString);
+ DECLARE_CALLBACK(DOMWindowShowModalDialog);
+ DECLARE_CALLBACK(DOMWindowOpen);
+ DECLARE_CALLBACK(DOMWindowClearTimeout);
+ DECLARE_CALLBACK(DOMWindowClearInterval);
+
+ DECLARE_CALLBACK(DOMParserConstructor);
+ DECLARE_CALLBACK(HTMLAudioElementConstructor);
+ DECLARE_CALLBACK(HTMLImageElementConstructor);
+ DECLARE_CALLBACK(HTMLOptionElementConstructor);
+ DECLARE_CALLBACK(MessageChannelConstructor);
+ DECLARE_CALLBACK(WebKitCSSMatrixConstructor);
+ DECLARE_CALLBACK(WebKitPointConstructor);
+ DECLARE_CALLBACK(XMLHttpRequestConstructor);
+ DECLARE_CALLBACK(XMLSerializerConstructor);
+ DECLARE_CALLBACK(XPathEvaluatorConstructor);
+ DECLARE_CALLBACK(XSLTProcessorConstructor);
+
+ DECLARE_CALLBACK(XSLTProcessorImportStylesheet);
+ DECLARE_CALLBACK(XSLTProcessorTransformToFragment);
+ DECLARE_CALLBACK(XSLTProcessorTransformToDocument);
+ DECLARE_CALLBACK(XSLTProcessorSetParameter);
+ DECLARE_CALLBACK(XSLTProcessorGetParameter);
+ DECLARE_CALLBACK(XSLTProcessorRemoveParameter);
+
+ DECLARE_CALLBACK(CSSPrimitiveValueGetRGBColorValue);
+
+ DECLARE_CALLBACK(CanvasRenderingContext2DSetStrokeColor);
+ DECLARE_CALLBACK(CanvasRenderingContext2DSetFillColor);
+ DECLARE_CALLBACK(CanvasRenderingContext2DStrokeRect);
+ DECLARE_CALLBACK(CanvasRenderingContext2DSetShadow);
+ DECLARE_CALLBACK(CanvasRenderingContext2DDrawImage);
+ DECLARE_CALLBACK(CanvasRenderingContext2DDrawImageFromRect);
+ DECLARE_CALLBACK(CanvasRenderingContext2DCreatePattern);
+ DECLARE_CALLBACK(CanvasRenderingContext2DFillText);
+ DECLARE_CALLBACK(CanvasRenderingContext2DStrokeText);
+ DECLARE_CALLBACK(CanvasRenderingContext2DPutImageData);
+
+ DECLARE_PROPERTY_ACCESSOR_GETTER(ClipboardTypes);
+ DECLARE_CALLBACK(ClipboardClearData);
+ DECLARE_CALLBACK(ClipboardGetData);
+ DECLARE_CALLBACK(ClipboardSetData);
+ DECLARE_CALLBACK(ClipboardSetDragImage);
+
+ DECLARE_CALLBACK(ElementQuerySelector);
+ DECLARE_CALLBACK(ElementQuerySelectorAll);
+ DECLARE_CALLBACK(ElementSetAttribute);
+ DECLARE_CALLBACK(ElementSetAttributeNode);
+ DECLARE_CALLBACK(ElementSetAttributeNS);
+ DECLARE_CALLBACK(ElementSetAttributeNodeNS);
+
+ DECLARE_PROPERTY_ACCESSOR_SETTER(LocationProtocol);
+ DECLARE_PROPERTY_ACCESSOR_SETTER(LocationHost);
+ DECLARE_PROPERTY_ACCESSOR_SETTER(LocationHostname);
+ DECLARE_PROPERTY_ACCESSOR_SETTER(LocationPort);
+ DECLARE_PROPERTY_ACCESSOR_SETTER(LocationPathname);
+ DECLARE_PROPERTY_ACCESSOR_SETTER(LocationSearch);
+ DECLARE_PROPERTY_ACCESSOR_SETTER(LocationHash);
+ DECLARE_PROPERTY_ACCESSOR_SETTER(LocationHref);
+ DECLARE_PROPERTY_ACCESSOR_GETTER(LocationAssign);
+ DECLARE_PROPERTY_ACCESSOR_GETTER(LocationReplace);
+ DECLARE_PROPERTY_ACCESSOR_GETTER(LocationReload);
+ DECLARE_CALLBACK(LocationAssign);
+ DECLARE_CALLBACK(LocationReplace);
+ DECLARE_CALLBACK(LocationReload);
+ DECLARE_CALLBACK(LocationToString);
+ DECLARE_CALLBACK(LocationValueOf);
+
+ DECLARE_CALLBACK(NodeAddEventListener);
+ DECLARE_CALLBACK(NodeRemoveEventListener);
+ DECLARE_CALLBACK(NodeInsertBefore);
+ DECLARE_CALLBACK(NodeReplaceChild);
+ DECLARE_CALLBACK(NodeRemoveChild);
+ DECLARE_CALLBACK(NodeAppendChild);
+
+ // We actually only need this because WebKit has
+ // navigator.appVersion as custom. Our version just
+ // passes through.
+ DECLARE_PROPERTY_ACCESSOR(NavigatorAppVersion);
+
+ DECLARE_PROPERTY_ACCESSOR(XMLHttpRequestOnabort);
+ DECLARE_PROPERTY_ACCESSOR(XMLHttpRequestOnerror);
+ DECLARE_PROPERTY_ACCESSOR(XMLHttpRequestOnload);
+ DECLARE_PROPERTY_ACCESSOR(XMLHttpRequestOnloadstart);
+ DECLARE_PROPERTY_ACCESSOR(XMLHttpRequestOnprogress);
+ DECLARE_PROPERTY_ACCESSOR(XMLHttpRequestOnreadystatechange);
+ DECLARE_PROPERTY_ACCESSOR(XMLHttpRequestResponseText);
+ DECLARE_CALLBACK(XMLHttpRequestAddEventListener);
+ DECLARE_CALLBACK(XMLHttpRequestRemoveEventListener);
+ DECLARE_CALLBACK(XMLHttpRequestOpen);
+ DECLARE_CALLBACK(XMLHttpRequestSend);
+ DECLARE_CALLBACK(XMLHttpRequestSetRequestHeader);
+ DECLARE_CALLBACK(XMLHttpRequestGetResponseHeader);
+ DECLARE_CALLBACK(XMLHttpRequestOverrideMimeType);
+ DECLARE_CALLBACK(XMLHttpRequestDispatchEvent);
+
+ DECLARE_PROPERTY_ACCESSOR(XMLHttpRequestUploadOnabort);
+ DECLARE_PROPERTY_ACCESSOR(XMLHttpRequestUploadOnerror);
+ DECLARE_PROPERTY_ACCESSOR(XMLHttpRequestUploadOnload);
+ DECLARE_PROPERTY_ACCESSOR(XMLHttpRequestUploadOnloadstart);
+ DECLARE_PROPERTY_ACCESSOR(XMLHttpRequestUploadOnprogress);
+ DECLARE_CALLBACK(XMLHttpRequestUploadAddEventListener);
+ DECLARE_CALLBACK(XMLHttpRequestUploadRemoveEventListener);
+ DECLARE_CALLBACK(XMLHttpRequestUploadDispatchEvent);
+
+ DECLARE_CALLBACK(TreeWalkerParentNode);
+ DECLARE_CALLBACK(TreeWalkerFirstChild);
+ DECLARE_CALLBACK(TreeWalkerLastChild);
+ DECLARE_CALLBACK(TreeWalkerNextNode);
+ DECLARE_CALLBACK(TreeWalkerPreviousNode);
+ DECLARE_CALLBACK(TreeWalkerNextSibling);
+ DECLARE_CALLBACK(TreeWalkerPreviousSibling);
+
+ DECLARE_CALLBACK(InspectorBackendProfiles);
+ DECLARE_CALLBACK(InspectorBackendHighlightDOMNode);
+ DECLARE_CALLBACK(InspectorBackendAddResourceSourceToFrame);
+ DECLARE_CALLBACK(InspectorBackendAddSourceToFrame);
+ DECLARE_CALLBACK(InspectorBackendSearch);
+ DECLARE_CALLBACK(InspectorBackendSetting);
+ DECLARE_CALLBACK(InspectorBackendInspectedWindow);
+ DECLARE_CALLBACK(InspectorBackendSetSetting);
+ DECLARE_CALLBACK(InspectorBackendCurrentCallFrame);
+ DECLARE_CALLBACK(InspectorBackendDebuggerEnabled);
+ DECLARE_CALLBACK(InspectorBackendPauseOnExceptions);
+ DECLARE_CALLBACK(InspectorBackendProfilerEnabled);
+#if ENABLE(DATABASE)
+ DECLARE_CALLBACK(InspectorBackendDatabaseTableNames);
+#endif
+ DECLARE_CALLBACK(InspectorBackendWrapCallback);
+
+ DECLARE_CALLBACK(NodeIteratorNextNode);
+ DECLARE_CALLBACK(NodeIteratorPreviousNode);
+
+ DECLARE_CALLBACK(NodeFilterAcceptNode);
+
+ DECLARE_CALLBACK(HTMLFormElementSubmit);
+
+ DECLARE_NAMED_PROPERTY_GETTER(DOMWindow);
+ DECLARE_INDEXED_PROPERTY_GETTER(DOMWindow);
+ DECLARE_NAMED_ACCESS_CHECK(DOMWindow);
+ DECLARE_INDEXED_ACCESS_CHECK(DOMWindow);
+
+ DECLARE_NAMED_PROPERTY_GETTER(HTMLFrameSetElement);
+ DECLARE_NAMED_PROPERTY_GETTER(HTMLFormElement);
+ DECLARE_NAMED_PROPERTY_GETTER(NodeList);
+ DECLARE_NAMED_PROPERTY_GETTER(NamedNodeMap);
+ DECLARE_NAMED_PROPERTY_GETTER(CSSStyleDeclaration);
+ DECLARE_NAMED_PROPERTY_SETTER(CSSStyleDeclaration);
+ DECLARE_NAMED_PROPERTY_GETTER(HTMLPlugInElement);
+ DECLARE_NAMED_PROPERTY_SETTER(HTMLPlugInElement);
+ DECLARE_INDEXED_PROPERTY_GETTER(HTMLPlugInElement);
+ DECLARE_INDEXED_PROPERTY_SETTER(HTMLPlugInElement);
+
+ DECLARE_CALLBACK(HTMLPlugInElement);
+
+ DECLARE_NAMED_PROPERTY_GETTER(StyleSheetList);
+ DECLARE_INDEXED_PROPERTY_GETTER(NamedNodeMap);
+ DECLARE_INDEXED_PROPERTY_GETTER(HTMLFormElement);
+ DECLARE_INDEXED_PROPERTY_GETTER(HTMLOptionsCollection);
+ DECLARE_INDEXED_PROPERTY_SETTER(HTMLOptionsCollection);
+ DECLARE_NAMED_PROPERTY_GETTER(HTMLSelectElementCollection);
+ DECLARE_INDEXED_PROPERTY_SETTER(HTMLSelectElementCollection);
+ DECLARE_NAMED_PROPERTY_GETTER(HTMLCollection);
+
+ DECLARE_INDEXED_PROPERTY_GETTER(CanvasPixelArray);
+ DECLARE_INDEXED_PROPERTY_SETTER(CanvasPixelArray);
+
+ DECLARE_PROPERTY_ACCESSOR(MessagePortOnmessage);
+ DECLARE_PROPERTY_ACCESSOR(MessagePortOnclose);
+ DECLARE_CALLBACK(MessagePortStartConversation);
+ DECLARE_CALLBACK(MessagePortAddEventListener);
+ DECLARE_CALLBACK(MessagePortRemoveEventListener);
+
+ DECLARE_CALLBACK(DatabaseChangeVersion);
+ DECLARE_CALLBACK(DatabaseTransaction);
+ DECLARE_CALLBACK(SQLTransactionExecuteSql);
+ DECLARE_CALLBACK(SQLResultSetRowListItem);
+
+ DECLARE_INDEXED_PROPERTY_GETTER(ClientRectList);
+
+#if ENABLE(DATAGRID)
+ DECLARE_PROPERTY_ACCESSOR(HTMLDataGridElementDataSource);
+ DECLARE_INDEXED_PROPERTY_GETTER(DataGridColumnList);
+ DECLARE_NAMED_PROPERTY_GETTER(DataGridColumnList);
+#endif
+
+#if ENABLE(DOM_STORAGE)
+ DECLARE_INDEXED_PROPERTY_GETTER(Storage);
+ DECLARE_INDEXED_PROPERTY_SETTER(Storage);
+ DECLARE_INDEXED_PROPERTY_DELETER(Storage);
+ DECLARE_NAMED_PROPERTY_GETTER(Storage);
+ DECLARE_NAMED_PROPERTY_SETTER(Storage);
+ DECLARE_NAMED_PROPERTY_DELETER(Storage);
+ static v8::Handle<v8::Array> v8StorageNamedPropertyEnumerator(const v8::AccessorInfo& info);
+#endif
+
+#if ENABLE(SVG)
+ DECLARE_PROPERTY_ACCESSOR_GETTER(SVGLengthValue);
+ DECLARE_CALLBACK(SVGLengthConvertToSpecifiedUnits);
+ DECLARE_CALLBACK(SVGMatrixInverse);
+ DECLARE_CALLBACK(SVGMatrixRotateFromVector);
+ DECLARE_CALLBACK(SVGElementInstanceAddEventListener);
+ DECLARE_CALLBACK(SVGElementInstanceRemoveEventListener);
+#endif
+
+#if ENABLE(WORKERS)
+ DECLARE_PROPERTY_ACCESSOR(AbstractWorkerOnerror);
+ DECLARE_CALLBACK(AbstractWorkerAddEventListener);
+ DECLARE_CALLBACK(AbstractWorkerRemoveEventListener);
+
+ DECLARE_PROPERTY_ACCESSOR(DedicatedWorkerContextOnmessage);
+
+ DECLARE_PROPERTY_ACCESSOR(WorkerOnmessage);
+ DECLARE_CALLBACK(WorkerConstructor);
+
+ DECLARE_PROPERTY_ACCESSOR_GETTER(WorkerContextSelf);
+ DECLARE_PROPERTY_ACCESSOR(WorkerContextOnerror);
+ DECLARE_CALLBACK(WorkerContextImportScripts);
+ DECLARE_CALLBACK(WorkerContextSetTimeout);
+ DECLARE_CALLBACK(WorkerContextClearTimeout);
+ DECLARE_CALLBACK(WorkerContextSetInterval);
+ DECLARE_CALLBACK(WorkerContextClearInterval);
+ DECLARE_CALLBACK(WorkerContextAddEventListener);
+ DECLARE_CALLBACK(WorkerContextRemoveEventListener);
+#endif
+
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+ DECLARE_PROPERTY_ACCESSOR(DOMApplicationCacheEventHandler);
+ DECLARE_CALLBACK(DOMApplicationCacheAddEventListener);
+ DECLARE_CALLBACK(DOMApplicationCacheRemoveEventListener);
+#endif
+
+#if ENABLE(SHARED_WORKERS)
+ DECLARE_CALLBACK(SharedWorkerConstructor);
+#endif
+
+#undef DECLARE_INDEXED_ACCESS_CHECK
+#undef DECLARE_NAMED_ACCESS_CHECK
+
+#undef DECLARE_PROPERTY_ACCESSOR_SETTER
+#undef DECLARE_PROPERTY_ACCESSOR_GETTER
+#undef DECLARE_PROPERTY_ACCESSOR
+
+#undef DECLARE_NAMED_PROPERTY_GETTER
+#undef DECLARE_NAMED_PROPERTY_SETTER
+#undef DECLARE_NAMED_PROPERTY_DELETER
+
+#undef DECLARE_INDEXED_PROPERTY_GETTER
+#undef DECLARE_INDEXED_PROPERTY_SETTER
+#undef DECLARE_INDEXED_PROPERTY_DELETER
+
+#undef DECLARE_CALLBACK
+
+ // Returns the NPObject corresponding to an HTMLElement object.
+ static NPObject* GetHTMLPlugInElementNPObject(v8::Handle<v8::Object>);
+
+ // Returns the owner frame pointer of a DOM wrapper object. It only works for
+ // these DOM objects requiring cross-domain access check.
+ static Frame* GetTargetFrame(v8::Local<v8::Object> host, v8::Local<v8::Value> data);
+
+ // Special case for downcasting SVG path segments.
+#if ENABLE(SVG)
+ static V8ClassIndex::V8WrapperType DowncastSVGPathSeg(void* pathSeg);
+#endif
+
+ private:
+ static v8::Handle<v8::Value> WindowSetTimeoutImpl(const v8::Arguments&, bool singleShot);
+ static void ClearTimeoutImpl(const v8::Arguments&);
+ static void WindowSetLocation(DOMWindow*, const String&);
+ };
+
+#endif // MANUAL_MERGE_REQUIRED
} // namespace WebCore
#endif // V8CustomBinding_h