From 0ab75631384c0ac32da5440476329f8e9fe76eed Mon Sep 17 00:00:00 2001 From: "commit-queue@webkit.org" Date: Thu, 22 Sep 2011 01:52:32 +0000 Subject: [PATCH] :hover selector fails when hovering over a child select element with size attribute https://bugs.webkit.org/show_bug.cgi?id=67594 Patch by Sameer Patil on 2011-09-21 Reviewed by Darin Adler. Source/WebCore: Test: fast/css/hover-affects-ancestor.html This patch addresses the problem of deactivation of the ancestor element :hover rules when hovered its contained elements. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::updateHoverActiveState): LayoutTests: * fast/css/hover-affects-ancestor-expected.txt: Added. * fast/css/hover-affects-ancestor.html: Added. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@95694 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- LayoutTests/ChangeLog | 10 +++ .../fast/css/hover-affects-ancestor-expected.txt | 17 +++++ LayoutTests/fast/css/hover-affects-ancestor.html | 82 ++++++++++++++++++++++ Source/WebCore/ChangeLog | 15 ++++ Source/WebCore/rendering/RenderLayer.cpp | 2 + 5 files changed, 126 insertions(+) create mode 100644 LayoutTests/fast/css/hover-affects-ancestor-expected.txt create mode 100644 LayoutTests/fast/css/hover-affects-ancestor.html diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog index b396b0b..0e11b9b 100644 --- a/LayoutTests/ChangeLog +++ b/LayoutTests/ChangeLog @@ -1,3 +1,13 @@ +2011-09-21 Sameer Patil + + :hover selector fails when hovering over a child select element with size attribute + https://bugs.webkit.org/show_bug.cgi?id=67594 + + Reviewed by Darin Adler. + + * fast/css/hover-affects-ancestor-expected.txt: Added. + * fast/css/hover-affects-ancestor.html: Added. + 2011-09-21 Ben Wells Rebaseline for bug 65583 (path based border radius drawing on skia) part 4 diff --git a/LayoutTests/fast/css/hover-affects-ancestor-expected.txt b/LayoutTests/fast/css/hover-affects-ancestor-expected.txt new file mode 100644 index 0000000..fa6150f --- /dev/null +++ b/LayoutTests/fast/css/hover-affects-ancestor-expected.txt @@ -0,0 +1,17 @@ +This test ensures that ancestor element hover rules are not affected when we hover its contained elements + + + + +http://www.webkit.org +Button test +Radio test +Checkbox test +testselect: PASS +testinput: PASS +testtextarea: PASS +testanchor: PASS +testbutton: PASS +testradio: PASS +testcheckbox: PASS + diff --git a/LayoutTests/fast/css/hover-affects-ancestor.html b/LayoutTests/fast/css/hover-affects-ancestor.html new file mode 100644 index 0000000..c4ca497 --- /dev/null +++ b/LayoutTests/fast/css/hover-affects-ancestor.html @@ -0,0 +1,82 @@ + + + +hover ancestor test + + + +

This test ensures that ancestor element hover rules are not affected when we hover +its contained elements

+
+ +
+ +
+ +
+http://www.webkit.org +
+ +
+
+Radio test +
+Checkbox test +
+
+
+ + + diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index f3ba2b9..b74f74e 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,18 @@ +2011-09-21 Sameer Patil + + :hover selector fails when hovering over a child select element with size attribute + https://bugs.webkit.org/show_bug.cgi?id=67594 + + Reviewed by Darin Adler. + + Test: fast/css/hover-affects-ancestor.html + + This patch addresses the problem of deactivation of the ancestor element :hover rules + when hovered its contained elements. + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::updateHoverActiveState): + 2011-09-21 Sergey Glazunov [Chromium] Protect message ports from being deleted in V8MessageEvent::portsAccessorGetter diff --git a/Source/WebCore/rendering/RenderLayer.cpp b/Source/WebCore/rendering/RenderLayer.cpp index 3b0337e..98b5eed 100644 --- a/Source/WebCore/rendering/RenderLayer.cpp +++ b/Source/WebCore/rendering/RenderLayer.cpp @@ -3859,6 +3859,8 @@ void RenderLayer::updateHoverActiveState(const HitTestRequest& request, HitTestR // do anything. RefPtr oldHoverNode = doc->hoverNode(); Node* newHoverNode = result.innerNode(); + if (newHoverNode && !newHoverNode->renderer()) + newHoverNode = result.innerNonSharedNode(); // Update our current hover node. doc->setHoverNode(newHoverNode); -- 2.7.4