https://bugs.webkit.org/show_bug.cgi?id=95776
Reviewed by Simon Fraser.
.:
* ManualTests/select-menu-list-wrongly-positioned.html: Added.
Source/WebCore:
r120832 consolidated the clamping logic into RenderLayer::clampScrollOffset. The existing code wouldn't properly ensure that
the offset were positive which got exposed to other code paths, leading to the regression.
Tested by ManualTests/select-menu-list-wrongly-positioned.html as I didn't find a way to create a reliable layout test.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::clampScrollOffset):
Fixed the clamping logic to ensure that the scroll offset's dimensions are positive.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@127520
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2012-09-04 Julien Chaffraix <jchaffraix@webkit.org>
+
+ REGRESSION(r120832): RenderLayer::clampScrollOffset doesn't properly clamp
+ https://bugs.webkit.org/show_bug.cgi?id=95776
+
+ Reviewed by Simon Fraser.
+
+ * ManualTests/select-menu-list-wrongly-positioned.html: Added.
+
2012-09-04 Michał Pakuła vel Rutka <m.pakula@samsung.com>
[EFL] Context menu restore.
--- /dev/null
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+ table {
+ overflow: hidden;
+ }
+</style>
+<script>
+ function onSelectionChange(select)
+ {
+ document.getElementById('hiddenRow').style.display = '';
+ }
+</script>
+</head>
+<body>
+ <div><a href="https://bugs.webkit.org/show_bug.cgi?id=95776">95776</a>: REGRESSION(r120832): RenderLayer::clampScrollOffset doesn't properly clamp</div>
+ <div>Manual test: click on the menu below and <select> the 'shown' option. Click somewhere on the page so that the <select> loses focus and click again on the <select>.</div>
+ <div>To pass the menu should be properly placed below the <select>.</div>
+ <form name="teste">
+ <table>
+ <tr>
+ <th>Test select:</th>
+ <td>
+ <select onchange=onSelectionChange(this)>
+ <option value="0">hidden</option>
+ <option value="1">shown</option>
+ </select>
+ </td>
+ </tr>
+ <tr id="hiddenRow" style="display: none;">
+ <th>Lorem ipsum</th>
+ <td>dolor sic amet.</td>
+ </tr>
+ </table>
+ </form>
+</body>
+</html>
+2012-09-04 Julien Chaffraix <jchaffraix@webkit.org>
+
+ REGRESSION(r120832): RenderLayer::clampScrollOffset doesn't properly clamp
+ https://bugs.webkit.org/show_bug.cgi?id=95776
+
+ Reviewed by Simon Fraser.
+
+ r120832 consolidated the clamping logic into RenderLayer::clampScrollOffset. The existing code wouldn't properly ensure that
+ the offset were positive which got exposed to other code paths, leading to the regression.
+
+ Tested by ManualTests/select-menu-list-wrongly-positioned.html as I didn't find a way to create a reliable layout test.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::clampScrollOffset):
+ Fixed the clamping logic to ensure that the scroll offset's dimensions are positive.
+
2012-09-04 Joshua Bell <jsbell@chromium.org>
IndexedDB: IDBRequest leaks if IDBCursor closes and no further events fired
int maxX = scrollWidth() - box->pixelSnappedClientWidth();
int maxY = scrollHeight() - box->pixelSnappedClientHeight();
- int x = min(max(scrollOffset.width(), 0), maxX);
- int y = min(max(scrollOffset.height(), 0), maxY);
+ int x = max(min(scrollOffset.width(), maxX), 0);
+ int y = max(min(scrollOffset.height(), maxY), 0);
return IntSize(x, y);
}