Changeset 86461 in webkit
- Timestamp:
- May 13, 2011 2:35:06 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 8 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r86458 r86461 1 2011-05-13 Ryosuke Niwa <rniwa@webkit.org> 2 3 Reviewed by Darin Adler. 4 5 click event shouldn't fire when the target is ever removed in mouseup 6 https://bugs.webkit.org/show_bug.cgi?id=60600 7 8 Added tests to ensure WebKit does not fire click event when the target node 9 is removed in mouseup event. 10 11 * fast/events/remove-target-in-mouseup-deep-expected.txt: Added. 12 * fast/events/remove-target-in-mouseup-deep.html: Added. 13 * fast/events/remove-target-in-mouseup-expected.txt: Added. 14 * fast/events/remove-target-in-mouseup-insertback-expected.txt: Added. 15 * fast/events/remove-target-in-mouseup-insertback.html: Added. 16 * fast/events/remove-target-in-mouseup-twice-expected.txt: Added. 17 * fast/events/remove-target-in-mouseup-twice.html: Added. 18 * fast/events/remove-target-in-mouseup.html: Added. 19 1 20 2011-05-13 Adam Barth <abarth@webkit.org> 2 21 -
trunk/Source/WebCore/ChangeLog
r86460 r86461 1 2011-05-13 Ryosuke Niwa <rniwa@webkit.org> 2 3 Reviewed by Darin Adler. 4 5 click event shouldn't fire when the target is ever removed in mouseup 6 https://bugs.webkit.org/show_bug.cgi?id=60600 7 8 Fixed the bug by invalidating m_clickNode when it or one of its ancestors has been removed 9 from the document. New behavior matches Internet Explorer and Firefox. 10 11 Tests: fast/events/remove-target-in-mouseup-deep.html 12 fast/events/remove-target-in-mouseup-insertback.html 13 fast/events/remove-target-in-mouseup-twice.html 14 fast/events/remove-target-in-mouseup.html 15 16 * dom/Document.cpp: 17 (WebCore::Document::nodeChildrenWillBeRemoved): Calls EventHandler::nodeWillBeRemoved. 18 (WebCore::Document::nodeWillBeRemoved): Calls EventHandler::nodeWillBeRemoved. 19 * page/EventHandler.cpp: 20 (WebCore::EventHandler::nodeWillBeRemoved): Added; invalidates m_clickNode when m_clickNode 21 or one of its ancestor is removed from the document. 22 * page/EventHandler.h: 23 1 24 2011-05-13 Alexey Proskuryakov <ap@apple.com> 2 25 -
trunk/Source/WebCore/dom/Document.cpp
r86279 r86461 3400 3400 if (Frame* frame = this->frame()) { 3401 3401 for (Node* n = container->firstChild(); n; n = n->nextSibling()) { 3402 frame->eventHandler()->nodeWillBeRemoved(n); 3402 3403 frame->selection()->nodeWillBeRemoved(n); 3403 3404 frame->page()->dragCaretController()->nodeWillBeRemoved(n); … … 3419 3420 3420 3421 if (Frame* frame = this->frame()) { 3422 frame->eventHandler()->nodeWillBeRemoved(n); 3421 3423 frame->selection()->nodeWillBeRemoved(n); 3422 3424 frame->page()->dragCaretController()->nodeWillBeRemoved(n); -
trunk/Source/WebCore/page/EventHandler.cpp
r86325 r86461 258 258 m_originatingTouchPointTargets.clear(); 259 259 #endif 260 } 261 262 void EventHandler::nodeWillBeRemoved(Node* nodeToBeRemoved) 263 { 264 if (nodeToBeRemoved->contains(m_clickNode.get())) 265 m_clickNode = 0; 260 266 } 261 267 -
trunk/Source/WebCore/page/EventHandler.h
r86131 r86461 99 99 100 100 void clear(); 101 void nodeWillBeRemoved(Node*); 101 102 102 103 #if ENABLE(DRAG_SUPPORT)
Note: See TracChangeset
for help on using the changeset viewer.