diff options
Diffstat (limited to 'WebCore')
-rw-r--r-- | WebCore/Android.jscbindings.mk | 2 | ||||
-rw-r--r-- | WebCore/CMakeLists.txt | 2 | ||||
-rw-r--r-- | WebCore/GNUmakefile.am | 2 | ||||
-rw-r--r-- | WebCore/WebCore.gypi | 2 | ||||
-rw-r--r-- | WebCore/WebCore.pro | 2 | ||||
-rw-r--r-- | WebCore/bindings/js/JSBindingsAllInOne.cpp | 2 | ||||
-rw-r--r-- | WebCore/bindings/js/JSTouchCustom.cpp | 47 | ||||
-rw-r--r-- | WebCore/bindings/js/JSTouchListCustom.cpp | 47 | ||||
-rw-r--r-- | WebCore/bindings/scripts/CodeGeneratorJS.pm | 11 | ||||
-rw-r--r-- | WebCore/dom/Document.cpp | 13 | ||||
-rw-r--r-- | WebCore/dom/Document.h | 10 | ||||
-rw-r--r-- | WebCore/dom/Document.idl | 12 |
12 files changed, 151 insertions, 1 deletions
diff --git a/WebCore/Android.jscbindings.mk b/WebCore/Android.jscbindings.mk index e87ca3d..9e89e2c 100644 --- a/WebCore/Android.jscbindings.mk +++ b/WebCore/Android.jscbindings.mk @@ -157,6 +157,8 @@ LOCAL_SRC_FILES += \ bindings/js/JSStyleSheetCustom.cpp \ bindings/js/JSStyleSheetListCustom.cpp \ bindings/js/JSTextCustom.cpp \ + bindings/js/JSTouchCustom.cpp \ + bindings/js/JSTouchListCustom.cpp \ bindings/js/JSTreeWalkerCustom.cpp \ bindings/js/JSWebKitCSSMatrixCustom.cpp \ bindings/js/JSWebKitPointCustom.cpp \ diff --git a/WebCore/CMakeLists.txt b/WebCore/CMakeLists.txt index 210244e..2219e4f 100644 --- a/WebCore/CMakeLists.txt +++ b/WebCore/CMakeLists.txt @@ -669,6 +669,8 @@ SET(WebCore_SOURCES bindings/js/JSStyleSheetCustom.cpp bindings/js/JSStyleSheetListCustom.cpp bindings/js/JSTextCustom.cpp + bindings/js/JSTouchCustom.cpp + bindings/js/JSTouchListCustom.cpp bindings/js/JSTreeWalkerCustom.cpp bindings/js/JSWebKitCSSMatrixCustom.cpp bindings/js/JSWebKitPointCustom.cpp diff --git a/WebCore/GNUmakefile.am b/WebCore/GNUmakefile.am index c80e8ed..c98f971 100644 --- a/WebCore/GNUmakefile.am +++ b/WebCore/GNUmakefile.am @@ -788,6 +788,8 @@ webcore_sources += \ WebCore/bindings/js/JSSVGPODListCustom.h \ WebCore/bindings/js/JSSVGPODTypeWrapper.h \ WebCore/bindings/js/JSTextCustom.cpp \ + WebCore/bindings/js/JSTouchCustom.cpp \ + WebCore/bindings/js/JSTouchListCustom.cpp \ WebCore/bindings/js/JSTreeWalkerCustom.cpp \ WebCore/bindings/js/JSWebKitCSSMatrixCustom.cpp \ WebCore/bindings/js/JSWebKitPointCustom.cpp \ diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi index 8e6af6b..d666ebd 100644 --- a/WebCore/WebCore.gypi +++ b/WebCore/WebCore.gypi @@ -670,6 +670,8 @@ 'bindings/js/JSSVGPODListCustom.h', 'bindings/js/JSSVGPODTypeWrapper.h', 'bindings/js/JSTextCustom.cpp', + 'bindings/js/JSTouchCustom.cpp', + 'bindings/js/JSTouchListCustom.cpp', 'bindings/js/JSTreeWalkerCustom.cpp', 'bindings/js/JSWebKitCSSMatrixCustom.cpp', 'bindings/js/JSWebKitPointCustom.cpp', diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro index e595f3b..34dc9d0 100644 --- a/WebCore/WebCore.pro +++ b/WebCore/WebCore.pro @@ -552,6 +552,8 @@ v8 { bindings/js/JSStyleSheetCustom.cpp \ bindings/js/JSStyleSheetListCustom.cpp \ bindings/js/JSTextCustom.cpp \ + bindings/js/JSTouchCustom.cpp \ + bindings/js/JSTouchListCustom.cpp \ bindings/js/JSTreeWalkerCustom.cpp \ bindings/js/JSWebKitCSSMatrixCustom.cpp \ bindings/js/JSWebKitPointCustom.cpp \ diff --git a/WebCore/bindings/js/JSBindingsAllInOne.cpp b/WebCore/bindings/js/JSBindingsAllInOne.cpp index 6e1cc1e..cf08ca9 100644 --- a/WebCore/bindings/js/JSBindingsAllInOne.cpp +++ b/WebCore/bindings/js/JSBindingsAllInOne.cpp @@ -124,6 +124,8 @@ #include "JSStyleSheetCustom.cpp" #include "JSStyleSheetListCustom.cpp" #include "JSTextCustom.cpp" +#include "JSTouchCustom.cpp" +#include "JSTouchListCustom.cpp" #include "JSTreeWalkerCustom.cpp" #include "JSWebKitCSSMatrixCustom.cpp" #include "JSWebKitPointCustom.cpp" diff --git a/WebCore/bindings/js/JSTouchCustom.cpp b/WebCore/bindings/js/JSTouchCustom.cpp new file mode 100644 index 0000000..83c2b83 --- /dev/null +++ b/WebCore/bindings/js/JSTouchCustom.cpp @@ -0,0 +1,47 @@ +/* + * Copyright 2010, The Android Open Source Project + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "JSTouch.h" + +#if ENABLE(TOUCH_EVENTS) + +#include "Touch.h" + +using namespace JSC; + +namespace WebCore { + +JSValue toJSNewlyCreated(ExecState* exec, JSDOMGlobalObject* globalObject, Touch* touch) +{ + if (!touch) + return jsNull(); + + return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, Touch, touch); +} + +} // namespace WebCore + +#endif diff --git a/WebCore/bindings/js/JSTouchListCustom.cpp b/WebCore/bindings/js/JSTouchListCustom.cpp new file mode 100644 index 0000000..22e0f95 --- /dev/null +++ b/WebCore/bindings/js/JSTouchListCustom.cpp @@ -0,0 +1,47 @@ +/* + * Copyright 2010, The Android Open Source Project + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "JSTouchList.h" + +#if ENABLE(TOUCH_EVENTS) + +#include "TouchList.h" + +using namespace JSC; + +namespace WebCore { + +JSValue toJSNewlyCreated(ExecState* exec, JSDOMGlobalObject* globalObject, TouchList* touchList) +{ + if (!touchList) + return jsNull(); + + return CREATE_DOM_OBJECT_WRAPPER(exec, globalObject, TouchList, touchList); +} + +} // namespace WebCore + +#endif diff --git a/WebCore/bindings/scripts/CodeGeneratorJS.pm b/WebCore/bindings/scripts/CodeGeneratorJS.pm index 803542e..710ac3f 100644 --- a/WebCore/bindings/scripts/CodeGeneratorJS.pm +++ b/WebCore/bindings/scripts/CodeGeneratorJS.pm @@ -610,6 +610,15 @@ sub GenerateImplementationContentHeader return @implContentHeader; } +my %usesToJSNewlyCreated = ( + "CDATASection" => 1, + "Element" => 1, + "Node" => 1, + "Text" => 1, + "Touch" => 1, + "TouchList" => 1 +); + sub GenerateHeader { my $object = shift; @@ -943,7 +952,7 @@ sub GenerateHeader push(@headerContent, "$implClassName* to${interfaceName}(JSC::JSValue);\n"); } } - if ($interfaceName eq "Node" or $interfaceName eq "Element" or $interfaceName eq "Text" or $interfaceName eq "CDATASection") { + if ($usesToJSNewlyCreated{$interfaceName}) { push(@headerContent, "JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject*, $interfaceName*);\n"); } diff --git a/WebCore/dom/Document.cpp b/WebCore/dom/Document.cpp index 333b8db..bffc07c 100644 --- a/WebCore/dom/Document.cpp +++ b/WebCore/dom/Document.cpp @@ -4826,4 +4826,17 @@ void Document::decrementLoadEventDelayCount() frame()->loader()->checkCompleted(); } +#if ENABLE(TOUCH_EVENTS) +PassRefPtr<Touch> Document::createTouch(DOMWindow* window, Node* target, int identifier, int pageX, int pageY, int screenX, int screenY, ExceptionCode&) const +{ + Frame* frame = window ? window->frame() : this->frame(); + return Touch::create(frame, target, identifier, screenX, screenY, pageX, pageY); +} + +PassRefPtr<TouchList> Document::createTouchList(ExceptionCode&) const +{ + return TouchList::create(); +} +#endif + } // namespace WebCore diff --git a/WebCore/dom/Document.h b/WebCore/dom/Document.h index fa3d9fb..41a486a 100644 --- a/WebCore/dom/Document.h +++ b/WebCore/dom/Document.h @@ -136,6 +136,11 @@ class XPathResult; struct DashboardRegionValue; #endif +#if ENABLE(TOUCH_EVENTS) +class Touch; +class TouchList; +#endif + typedef int ExceptionCode; class FormElementKey { @@ -1041,6 +1046,11 @@ public: void decrementLoadEventDelayCount(); bool isDelayingLoadEvent() const { return m_loadEventDelayCount; } +#if ENABLE(TOUCH_EVENTS) + PassRefPtr<Touch> createTouch(DOMWindow*, Node*, int identifier, int pageX, int pageY, int screenX, int screenY, ExceptionCode&) const; + PassRefPtr<TouchList> createTouchList(ExceptionCode&) const; +#endif + protected: Document(Frame*, const KURL& url, bool isXHTML, bool isHTML, const KURL& baseURL = KURL()); diff --git a/WebCore/dom/Document.idl b/WebCore/dom/Document.idl index e551f88..02eb30d 100644 --- a/WebCore/dom/Document.idl +++ b/WebCore/dom/Document.idl @@ -321,6 +321,18 @@ module core { attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchmove; attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchend; attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchcancel; +#if defined(ENABLE_TOUCH_EVENTS) && ENABLE_TOUCH_EVENTS + [ReturnsNew] Touch createTouch(in DOMWindow window, + in Node target, + in long identifier, + in long pageX, + in long pageY, + in long ScreenX, + in long screenY) + raises (DOMException); + [ReturnsNew] TouchList createTouchList() + raises (DOMException); +#endif attribute [DontEnum, Conditional=FULLSCREEN_API] EventListener onwebkitfullscreenchange; #endif |