Changeset 78077 in webkit
- Timestamp:
- Feb 9, 2011 10:03:38 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r78076 r78077 1 2011-02-08 Dimitri Glazkov <dglazkov@chromium.org> 2 3 Reviewed by Darin Adler. 4 5 REGRESSION(r71934): Shadow DOM nodes leak via relatedTarget 6 https://bugs.webkit.org/show_bug.cgi?id=52065 7 8 * fast/events/shadow-boundary-crossing.html: Added relatedTarget retargeting test. 9 1 10 2011-02-09 Martin Robinson <mrobinson@igalia.com> 2 11 -
trunk/LayoutTests/fast/events/shadow-boundary-crossing-expected.txt
r75536 r78077 7 7 Label should look beyond shadow boundary to detect if it encloses its associated element: PASS 8 8 Events for default event handler should not be retargeted: PASS 9 Event's relatedTarget should be retargeted: PASS 9 10 Other events should be retargeted: PASS 10 11 After event dispatch, the event object should not reveal shadow DOM: PASS -
trunk/LayoutTests/fast/events/shadow-boundary-crossing.html
r75536 r78077 10 10 } 11 11 12 function clickOn(element)12 function moveOver(element) 13 13 { 14 14 if (!window.eventSender) … … 18 18 var y = element.offsetTop + element.offsetHeight / 2; 19 19 eventSender.mouseMoveTo(x, y); 20 } 21 22 function clickOn(element) 23 { 24 moveOver(element); 20 25 eventSender.mouseDown(); 21 26 eventSender.mouseUp(); … … 101 106 fileInput.parentNode.removeChild(fileInput); 102 107 }, 108 relatedTargetRetargeting: function() 109 { 110 var count = 0; 111 var textInput = document.body.appendChild(document.createElement('input')); 112 var counter = function(evt) 113 { 114 if (evt.relatedTarget && !evt.relatedTarget.parentNode) 115 count++; 116 } 117 moveOver(textInput); 118 document.body.addEventListener("mouseover", counter, false); 119 moveOver(document.body); 120 document.body.removeEventListener("mouseover", counter, false); 121 log("Event's relatedTarget should be retargeted", count == 0); 122 textInput.parentNode.removeChild(textInput); 123 }, 103 124 eventInProgress: function() 104 125 { -
trunk/Source/WebCore/ChangeLog
r78073 r78077 1 2011-02-08 Dimitri Glazkov <dglazkov@chromium.org> 2 3 Reviewed by Darin Adler. 4 5 REGRESSION(r71934): Shadow DOM nodes leak via relatedTarget 6 https://bugs.webkit.org/show_bug.cgi?id=52065 7 8 * dom/Node.cpp: 9 (WebCore::pullOutOfShadow): Added a helper to move a node to the outermost 10 boundary of shadow DOM. 11 (WebCore::Node::dispatchMouseEvent): Changed to use pullOutOfShadow. 12 1 13 2011-02-09 Yael Aharon <yael.aharon@nokia.com> 2 14 -
trunk/Source/WebCore/dom/Node.cpp
r76648 r78077 2840 2840 } 2841 2841 2842 // FIXME: Once https://bugs.webkit.org/show_bug.cgi?id=52963 lands, this should 2843 // be greatly improved. See https://bugs.webkit.org/show_bug.cgi?id=54025. 2844 static Node* pullOutOfShadow(Node* node) 2845 { 2846 Node* outermostShadowBoundary = node; 2847 for (Node* n = node; n; n = n->parentOrHostNode()) { 2848 if (n->isShadowRoot()) 2849 outermostShadowBoundary = n->parentOrHostNode(); 2850 } 2851 return outermostShadowBoundary; 2852 } 2853 2842 2854 bool Node::dispatchMouseEvent(const AtomicString& eventType, int button, int detail, 2843 2855 int pageX, int pageY, int screenX, int screenY, … … 2862 2874 2863 2875 // Attempting to dispatch with a non-EventTarget relatedTarget causes the relatedTarget to be silently ignored. 2864 RefPtr<Node> relatedTarget = relatedTargetArg;2876 RefPtr<Node> relatedTarget = pullOutOfShadow(relatedTargetArg); 2865 2877 2866 2878 int adjustedPageX = pageX;
Note: See TracChangeset
for help on using the changeset viewer.