Skip to content

Commit

Permalink
DO NOT MERGE : Fix Webkit comments for document.createTouch
Browse files Browse the repository at this point in the history
Cherry pick to GingerBread.

See WebKit bug https://bugs.webkit.org/show_bug.cgi?id=47676
for details.

Bug: 3101402
Change-Id: I8e2b0fc54468cd0827229243716c7d6bb62c7b3c
  • Loading branch information
Ben Murdoch committed Oct 19, 2010
1 parent 77ab6dc commit 93bec1e
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 4 deletions.
Expand Up @@ -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
Expand Down
Expand Up @@ -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();
7 changes: 6 additions & 1 deletion WebCore/dom/Document.cpp
Expand Up @@ -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);
}
Expand Down
2 changes: 1 addition & 1 deletion WebCore/dom/Document.h
Expand Up @@ -952,7 +952,7 @@ class Document : public ContainerNode, public ScriptExecutionContext {
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

Expand Down
8 changes: 6 additions & 2 deletions WebCore/dom/Document.idl
Expand Up @@ -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,
Expand All @@ -322,7 +326,7 @@ module core {
[ReturnsNew] TouchList createTouchList()
raises (DOMException);
#endif
#endif

};

}

0 comments on commit 93bec1e

Please sign in to comment.