Title: [107072] trunk
Revision
107072
Author
commit-qu...@webkit.org
Date
2012-02-08 04:34:24 -0800 (Wed, 08 Feb 2012)

Log Message

CSS2 overflow: scrollbar not visible on SELECT elements when overflow: scroll is set.
https://bugs.webkit.org/show_bug.cgi?id=69993

Patch by Antaryami Pandia <antaryami.pan...@motorola.com> on 2012-02-08
Reviewed by Simon Fraser.

Source/WebCore:

The issue was that for overflow:scroll, currently webkit always places the horizontal
and vertical scrollbar. But Since the listbox renderer handles its scrolling,
we should not set scrollbar for list-box.

Tests: fast/css/getComputedStyle/computed-style-select-overflow.html
       fast/forms/select-overflow-scroll-inherited.html
       fast/forms/select-overflow-scroll.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollInfoAfterLayout):

LayoutTests:

* fast/css/getComputedStyle/computed-style-select-overflow-expected.txt: Added.
* fast/css/getComputedStyle/computed-style-select-overflow.html: Added.
* fast/forms/select-overflow-scroll-inherited.html: Added.
* fast/forms/select-overflow-scroll.html: Added.
* platform/gtk/fast/forms/select-overflow-scroll-expected.txt: Added.
* platform/gtk/fast/forms/select-overflow-scroll-inherited-expected.txt: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (107071 => 107072)


--- trunk/LayoutTests/ChangeLog	2012-02-08 12:31:11 UTC (rev 107071)
+++ trunk/LayoutTests/ChangeLog	2012-02-08 12:34:24 UTC (rev 107072)
@@ -1,3 +1,17 @@
+2012-02-08  Antaryami Pandia  <antaryami.pan...@motorola.com>
+
+        CSS2 overflow: scrollbar not visible on SELECT elements when overflow: scroll is set.
+        https://bugs.webkit.org/show_bug.cgi?id=69993
+
+        Reviewed by Simon Fraser.
+
+        * fast/css/getComputedStyle/computed-style-select-overflow-expected.txt: Added.
+        * fast/css/getComputedStyle/computed-style-select-overflow.html: Added.
+        * fast/forms/select-overflow-scroll-inherited.html: Added.
+        * fast/forms/select-overflow-scroll.html: Added.
+        * platform/gtk/fast/forms/select-overflow-scroll-expected.txt: Added.
+        * platform/gtk/fast/forms/select-overflow-scroll-inherited-expected.txt: Added.
+
 2012-02-08  Nikolas Zimmermann  <nzimmerm...@rim.com>
 
         Not reviewed. Rebaseline Qt/SVG results.

Added: trunk/LayoutTests/fast/css/getComputedStyle/computed-style-select-overflow-expected.txt (0 => 107072)


--- trunk/LayoutTests/fast/css/getComputedStyle/computed-style-select-overflow-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/css/getComputedStyle/computed-style-select-overflow-expected.txt	2012-02-08 12:34:24 UTC (rev 107072)
@@ -0,0 +1,10 @@
+Test computed style for the overflow property of select element
+
+PASS computedOverflowStyle('scroll', 'overflow-x') is 'scroll'
+PASS computedOverflowStyle('scroll', 'overflow-y') is 'scroll'
+PASS computedInheritedOverflowStyle('inherit', 'overflow-x') is 'scroll'
+PASS computedInheritedOverflowStyle('inherit', 'overflow-y') is 'scroll'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/fast/css/getComputedStyle/computed-style-select-overflow.html (0 => 107072)


--- trunk/LayoutTests/fast/css/getComputedStyle/computed-style-select-overflow.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css/getComputedStyle/computed-style-select-overflow.html	2012-02-08 12:34:24 UTC (rev 107072)
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<link rel="stylesheet" href=""
+<script src=""
+</head>
+<body>
+<p>Test computed style for the overflow property of select element</p>
+<div id="console"></div>
+
+<div id="test">
+<select id="wut" name="wut" size="8">
+    <option value="1">One</option>
+    <option value="2">Two</option>
+    <option value="3">Three</option>
+    <option value="4">Four</option>
+    <option value="5">Five</option>
+    <option value="6">Six</option>
+    <option value="7">Seven</option>
+    <option value="8">Eight</option>
+    <option value="9">Nine</option>
+    <option value="10">Ten</option>
+</select>
+</div>
+
+<script>
+
+
+function computedOverflowStyle(overflowStyle, property) {
+    var selectElement = document.getElementById("wut");
+    selectElement.style.overflow = overflowStyle;
+    return window.getComputedStyle(selectElement).getPropertyValue(property);
+}
+
+function computedInheritedOverflowStyle(overflowStyle, property) {
+    var divElement = document.getElementById("test");
+    divElement.style.overflow = 'scroll';
+
+    var selectElement = document.getElementById("wut");
+    selectElement.style.overflow = overflowStyle;
+    return window.getComputedStyle(selectElement).getPropertyValue(property);
+}
+
+shouldBe("computedOverflowStyle('scroll', 'overflow-x')", "'scroll'");
+shouldBe("computedOverflowStyle('scroll', 'overflow-y')", "'scroll'");
+
+shouldBe("computedInheritedOverflowStyle('inherit', 'overflow-x')", "'scroll'");
+shouldBe("computedInheritedOverflowStyle('inherit', 'overflow-y')", "'scroll'");
+
+
+var successfullyParsed = true;
+
+</script>
+<script src=""
+</body>
+</html> 

Added: trunk/LayoutTests/fast/forms/select-overflow-scroll-inherited.html (0 => 107072)


--- trunk/LayoutTests/fast/forms/select-overflow-scroll-inherited.html	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/select-overflow-scroll-inherited.html	2012-02-08 12:34:24 UTC (rev 107072)
@@ -0,0 +1,17 @@
+<html>
+<body>
+<div style="overflow:scroll">
+    <select id="wut" name="wut" size="8" style="overflow: inherit;">
+        <option value="1">One</option>
+        <option value="2">Two</option>
+        <option value="3">Three</option>
+        <option value="4">Four</option>
+        <option value="5">Five</option>
+        <option value="6">Six</option>
+        <option value="7">Seven</option>
+        <option value="8">Eight</option>
+        <option value="9">Nine</option>
+        <option value="10">Ten</option>
+    </select>
+</body>
+</html> 

Added: trunk/LayoutTests/fast/forms/select-overflow-scroll.html (0 => 107072)


--- trunk/LayoutTests/fast/forms/select-overflow-scroll.html	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/select-overflow-scroll.html	2012-02-08 12:34:24 UTC (rev 107072)
@@ -0,0 +1,16 @@
+<html>
+<body>
+<select id="wut" name="wut" size="8" style="overflow: scroll;">
+    <option value="1">One</option>
+    <option value="2">Two</option>
+    <option value="3">Three</option>
+    <option value="4">Four</option>
+    <option value="5">Five</option>
+    <option value="6">Six</option>
+    <option value="7">Seven</option>
+    <option value="8">Eight</option>
+    <option value="9">Nine</option>
+    <option value="10">Ten</option>
+</select>
+</body>
+</html> 

Added: trunk/LayoutTests/platform/gtk/fast/forms/select-overflow-scroll-expected.txt (0 => 107072)


--- trunk/LayoutTests/platform/gtk/fast/forms/select-overflow-scroll-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/gtk/fast/forms/select-overflow-scroll-expected.txt	2012-02-08 12:34:24 UTC (rev 107072)
@@ -0,0 +1,8 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+      RenderText {#text} at (0,0) size 0x0
+layer at (10,10) size 68x161 clip at (11,11) size 66x159
+  RenderListBox {SELECT} at (2,2) size 68x161 [bgcolor=#FFFFFF] [border: (1px inset #808080)]

Added: trunk/LayoutTests/platform/gtk/fast/forms/select-overflow-scroll-inherited-expected.txt (0 => 107072)


--- trunk/LayoutTests/platform/gtk/fast/forms/select-overflow-scroll-inherited-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/gtk/fast/forms/select-overflow-scroll-inherited-expected.txt	2012-02-08 12:34:24 UTC (rev 107072)
@@ -0,0 +1,10 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+layer at (8,8) size 784x181 clip at (8,8) size 768x165
+  RenderBlock {DIV} at (0,0) size 784x181
+    RenderText {#text} at (0,0) size 0x0
+layer at (10,10) size 68x161 clip at (11,11) size 66x159
+  RenderListBox {SELECT} at (2,2) size 68x161 [bgcolor=#FFFFFF] [border: (1px inset #808080)]

Modified: trunk/Source/WebCore/ChangeLog (107071 => 107072)


--- trunk/Source/WebCore/ChangeLog	2012-02-08 12:31:11 UTC (rev 107071)
+++ trunk/Source/WebCore/ChangeLog	2012-02-08 12:34:24 UTC (rev 107072)
@@ -1,3 +1,23 @@
+2012-02-08  Antaryami Pandia  <antaryami.pan...@motorola.com>
+
+        CSS2 overflow: scrollbar not visible on SELECT elements when overflow: scroll is set.
+        https://bugs.webkit.org/show_bug.cgi?id=69993
+
+        Reviewed by Simon Fraser.
+
+        The issue was that for overflow:scroll, currently webkit always places the horizontal
+        and vertical scrollbar. But Since the listbox renderer handles its scrolling,
+        we should not set scrollbar for list-box.
+
+        Tests: fast/css/getComputedStyle/computed-style-select-overflow.html
+               fast/forms/select-overflow-scroll-inherited.html
+               fast/forms/select-overflow-scroll.html
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::layoutBlock):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::updateScrollInfoAfterLayout):
+
 2012-02-08  Nikolas Zimmermann  <nzimmerm...@rim.com>
 
         feImage doesn't invalidate when its target SVG element is animated

Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (107071 => 107072)


--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2012-02-08 12:31:11 UTC (rev 107071)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2012-02-08 12:34:24 UTC (rev 107072)
@@ -1326,7 +1326,7 @@
     }
 
     // For overflow:scroll blocks, ensure we have both scrollbars in place always.
-    if (scrollsOverflow()) {
+    if (scrollsOverflow() && style()->appearance() != ListboxPart) {
         if (styleToUse->overflowX() == OSCROLL)
             layer()->setHasHorizontalScrollbar(true);
         if (styleToUse->overflowY() == OSCROLL)

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (107071 => 107072)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2012-02-08 12:31:11 UTC (rev 107071)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2012-02-08 12:34:24 UTC (rev 107072)
@@ -2337,9 +2337,9 @@
     bool haveVerticalBar = m_vBar;
     
     // overflow:scroll should just enable/disable.
-    if (renderer()->style()->overflowX() == OSCROLL)
+    if (m_hBar && renderer()->style()->overflowX() == OSCROLL)
         m_hBar->setEnabled(horizontalOverflow);
-    if (renderer()->style()->overflowY() == OSCROLL)
+    if (m_vBar && renderer()->style()->overflowY() == OSCROLL)
         m_vBar->setEnabled(verticalOverflow);
 
     // A dynamic change from a scrolling overflow to overflow:hidden means we need to get rid of any
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to