diff options
author | Ben Murdoch <benm@google.com> | 2010-10-17 16:26:08 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2010-10-19 14:42:20 +0100 |
commit | 93bec1ec2d7bca6a6df6bb0391d1b6a0d6562f33 (patch) | |
tree | 368030d2a021ca8e31a07ff4e2d48781beec1c04 | |
parent | 77ab6dc8b75bf7684366ba6e154ed3f95a125a55 (diff) | |
download | external_webkit-93bec1ec2d7bca6a6df6bb0391d1b6a0d6562f33.zip external_webkit-93bec1ec2d7bca6a6df6bb0391d1b6a0d6562f33.tar.gz external_webkit-93bec1ec2d7bca6a6df6bb0391d1b6a0d6562f33.tar.bz2 |
DO NOT MERGE : Fix Webkit comments for document.createTouch
Cherry pick to GingerBread.
See WebKit bug https://bugs.webkit.org/show_bug.cgi?id=47676
for details.
Bug: 3101402
Change-Id: I8e2b0fc54468cd0827229243716c7d6bb62c7b3c
-rw-r--r-- | LayoutTests/fast/events/touch/document-create-touch-expected.txt | 7 | ||||
-rw-r--r-- | LayoutTests/fast/events/touch/script-tests/document-create-touch.js | 10 | ||||
-rw-r--r-- | WebCore/dom/Document.cpp | 7 | ||||
-rw-r--r-- | WebCore/dom/Document.h | 2 | ||||
-rw-r--r-- | WebCore/dom/Document.idl | 8 |
5 files changed, 30 insertions, 4 deletions
diff --git a/LayoutTests/fast/events/touch/document-create-touch-expected.txt b/LayoutTests/fast/events/touch/document-create-touch-expected.txt index c1c647f..2bf33cb 100644 --- a/LayoutTests/fast/events/touch/document-create-touch-expected.txt +++ b/LayoutTests/fast/events/touch/document-create-touch-expected.txt @@ -18,6 +18,13 @@ PASS emptyTouch.pageX is 0 PASS emptyTouch.pageY is 0 PASS emptyTouch.screenX is 0 PASS emptyTouch.screenY is 0 +PASS badParamsTouch is non-null. +PASS badParamsTouch.target is null +PASS badParamsTouch.identifier is 0 +PASS badParamsTouch.pageX is 0 +PASS badParamsTouch.pageY is 0 +PASS badParamsTouch.screenX is 0 +PASS badParamsTouch.screenY is 104 PASS successfullyParsed is true TEST COMPLETE diff --git a/LayoutTests/fast/events/touch/script-tests/document-create-touch.js b/LayoutTests/fast/events/touch/script-tests/document-create-touch.js index dd383ac..c51c7e3 100644 --- a/LayoutTests/fast/events/touch/script-tests/document-create-touch.js +++ b/LayoutTests/fast/events/touch/script-tests/document-create-touch.js @@ -27,5 +27,15 @@ shouldBe("emptyTouch.pageY", "0"); shouldBe("emptyTouch.screenX", "0"); shouldBe("emptyTouch.screenY", "0"); +// Try invoking with incorrect parameter types. +var badParamsTouch = document.createTouch(function(x) { return x; }, 12, 'a', 'b', 'c', function(x) { return x; }, 104); +shouldBeNonNull("badParamsTouch"); +shouldBeNull("badParamsTouch.target"); +shouldBe("badParamsTouch.identifier", "0"); +shouldBe("badParamsTouch.pageX", "0"); +shouldBe("badParamsTouch.pageY", "0"); +shouldBe("badParamsTouch.screenX", "0"); +shouldBe("badParamsTouch.screenY", "104"); + successfullyParsed = true; isSuccessfullyParsed(); diff --git a/WebCore/dom/Document.cpp b/WebCore/dom/Document.cpp index dca1187..c631956 100644 --- a/WebCore/dom/Document.cpp +++ b/WebCore/dom/Document.cpp @@ -4891,8 +4891,13 @@ InspectorTimelineAgent* Document::inspectorTimelineAgent() const #endif #if ENABLE(TOUCH_EVENTS) -PassRefPtr<Touch> Document::createTouch(DOMWindow* window, Node* target, int identifier, int pageX, int pageY, int screenX, int screenY, ExceptionCode&) const +PassRefPtr<Touch> Document::createTouch(DOMWindow* window, EventTarget* target, int identifier, int pageX, int pageY, int screenX, int screenY, ExceptionCode&) const { + // FIXME: It's not clear from the documentation at + // http://developer.apple.com/library/safari/#documentation/UserExperience/Reference/DocumentAdditionsReference/DocumentAdditions/DocumentAdditions.html + // when this method should throw and nor is it by inspection of iOS behavior. It would be nice to verify any cases where it throws under iOS + // and implement them here. See https://bugs.webkit.org/show_bug.cgi?id=47819 + // Ditto for the createTouchList method below. Frame* frame = window ? window->frame() : this->frame(); return Touch::create(frame, target, identifier, screenX, screenY, pageX, pageY); } diff --git a/WebCore/dom/Document.h b/WebCore/dom/Document.h index 68e3ac5..b56bf01 100644 --- a/WebCore/dom/Document.h +++ b/WebCore/dom/Document.h @@ -952,7 +952,7 @@ public: void setContainsValidityStyleRules() { m_containsValidityStyleRules = true; } #if ENABLE(TOUCH_EVENTS) - PassRefPtr<Touch> createTouch(DOMWindow*, Node*, int identifier, int pageX, int pageY, int screenX, int screenY, ExceptionCode&) const; + PassRefPtr<Touch> createTouch(DOMWindow*, EventTarget*, int identifier, int pageX, int pageY, int screenX, int screenY, ExceptionCode&) const; PassRefPtr<TouchList> createTouchList(ExceptionCode&) const; #endif diff --git a/WebCore/dom/Document.idl b/WebCore/dom/Document.idl index c8cc45d..13d9d1b 100644 --- a/WebCore/dom/Document.idl +++ b/WebCore/dom/Document.idl @@ -311,8 +311,12 @@ module core { attribute [DontEnum] EventListener ontouchmove; attribute [DontEnum] EventListener ontouchend; attribute [DontEnum] EventListener ontouchcancel; +#endif +#endif + +#if defined(ENABLE_TOUCH_EVENTS) && ENABLE_TOUCH_EVENTS [ReturnsNew] Touch createTouch(in DOMWindow window, - in Node target, + in EventTarget target, in long identifier, in long pageX, in long pageY, @@ -322,7 +326,7 @@ module core { [ReturnsNew] TouchList createTouchList() raises (DOMException); #endif -#endif + }; } |