Title: [139339] trunk
- Revision
- 139339
- Author
- [email protected]
- Date
- 2013-01-10 10:41:04 -0800 (Thu, 10 Jan 2013)
Log Message
Manually revert http://trac.webkit.org/changeset/136012
https://bugs.webkit.org/show_bug.cgi?id=106580
Reviewed by Dimitri Glazkov.
Source/WebCore:
136012 broke touch-scrolling of an overflow div in an iframe. Revert manually
to work around conflicts.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
LayoutTests:
* fast/events/touch/gesture/touch-gesture-scroll-remove-node-expected.txt: Removed.
* fast/events/touch/gesture/touch-gesture-scroll-remove-node.html: Removed.
Modified Paths
Removed Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (139338 => 139339)
--- trunk/LayoutTests/ChangeLog 2013-01-10 18:41:02 UTC (rev 139338)
+++ trunk/LayoutTests/ChangeLog 2013-01-10 18:41:04 UTC (rev 139339)
@@ -1,3 +1,13 @@
+2013-01-10 Robert Kroeger <[email protected]>
+
+ Manually revert http://trac.webkit.org/changeset/136012
+ https://bugs.webkit.org/show_bug.cgi?id=106580
+
+ Reviewed by Dimitri Glazkov.
+
+ * fast/events/touch/gesture/touch-gesture-scroll-remove-node-expected.txt: Removed.
+ * fast/events/touch/gesture/touch-gesture-scroll-remove-node.html: Removed.
+
2013-01-10 Robert Hogan <[email protected]>
REGRESSION(r136967): margin-top + overflow:hidden causes incorrect layout for internal floated elements
Deleted: trunk/LayoutTests/fast/events/touch/gesture/touch-gesture-scroll-remove-node-expected.txt (139338 => 139339)
--- trunk/LayoutTests/fast/events/touch/gesture/touch-gesture-scroll-remove-node-expected.txt 2013-01-10 18:41:02 UTC (rev 139338)
+++ trunk/LayoutTests/fast/events/touch/gesture/touch-gesture-scroll-remove-node-expected.txt 2013-01-10 18:41:04 UTC (rev 139339)
@@ -1,29 +0,0 @@
-This tests gesture event scrolling of a div where the element the scrolling starts on is removed from an onscroll event handler.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-begin scroll
-scroll up
-PASS scroller.scrollTop is 96
-PASS scroller.scrollLeft is 0
-PASS wheelCount is 1
-PASS scrollCount is 1
-PASS typeof cache[2] is typeof undefined
-scroll down
-PASS scroller.scrollTop is 0
-PASS scroller.scrollLeft is 0
-PASS wheelCount is 2
-PASS scrollCount is 2
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-
Deleted: trunk/LayoutTests/fast/events/touch/gesture/touch-gesture-scroll-remove-node.html (139338 => 139339)
--- trunk/LayoutTests/fast/events/touch/gesture/touch-gesture-scroll-remove-node.html 2013-01-10 18:41:02 UTC (rev 139338)
+++ trunk/LayoutTests/fast/events/touch/gesture/touch-gesture-scroll-remove-node.html 2013-01-10 18:41:04 UTC (rev 139339)
@@ -1,197 +0,0 @@
-<!DOCTYPE=html>
-<html>
-<head>
-<script src=""
-<script src=""
-<style>
- #spacing {
- width: 200px;
- height: 120px;
- }
- #scroller {
- border: 1px solid #777;
- box-sizing: content-box;
- height: 300px;
- margin: 20px;
- overflow-x: hidden;
- overflow-y: auto;
- width: 100px
- }
- .spacer {
- box-sizing: border-box;
- display: block;
- overflow: hidden;
- visibility: hidden;
- }
- .list-item {
- line-height: 30px;
- text-align: center;
- }
-</style>
-</head>
-<body _onload_="runTest();">
- <div id="spacing"></div>
- <div id="scroller">
- <div id = "top-spacer" class="spacer"></div>
-
- <div id = "bottom-spacer" class="spacer"></div>
- </div>
-<script>
-var cache = {};
-
-/* One more that the maximum that can be fully fit on screen. */
-var maxVisibleItems = 11;
-
-var listSize = 300;
-
-var itemHeight = 30;
-
-function $(name) {
- return document.getElementById(name);
-}
-
-function onScroll(e) {
- redraw();
-}
-
-function redraw() {
- // Create new items and add to cache.
- var top = $('scroller').scrollTop;
- var first = Math.floor(top / 30);
- if (first > listSize - maxVisibleItems)
- first = listSize - maxVisibleItems;
- var newItems = [];
- for (var i = 0; i < maxVisibleItems; i++) {
- var index = first + i;
- if (cache[index] == undefined) {
- var element = document.createElement('div');
- element.className = 'list-item';
- element.textContent = String(index+1);
- element.data = ""
- element.data.index = index;
- cache[index] = element;
- newItems.push(element);
- }
- }
- // Remove items that are not visible.
- for (var i = 0; i < first; i++) {
- if (cache[i])
- delete cache[i];
- }
- for (var i = first + maxVisibleItems; i < listSize; i++) {
- if (cache[i])
- delete cache[i];
- }
- // Pad spacer elements to preserve height of scrollable list.
- $('top-spacer').style.height = (first * itemHeight) + 'px';
- $('bottom-spacer').style.height =
- ((listSize - maxVisibleItems - first) * 30) + 'px';
-
- // Remove off-screen elements.
- var anchor = $('bottom-spacer');
- var parent = $('scroller');
- for (var item = $('top-spacer').nextSibling; item != anchor; ) {
- if (!item.classList || !item.classList.contains('list-item')) {
- item = item.nextSibling;
- continue;
- }
- if (!cache[item.data.index]) {
- var next = item.nextSibling;
- scroller.removeChild(item);
- item = next;
- } else {
- item = item.nextSibling;
- }
- }
-
- // Insert new on-screen elements.
- var referenceElement = $('top-spacer').nextSibling;
- for (var i = 0; i < newItems.length; i++) {
- var index = newItems[i].data.index;
- while (referenceElement != anchor && (!referenceElement.classList ||
- !referenceElement.classList.contains('list-item') ||
- referenceElement.data.index < index)) {
- referenceElement = referenceElement.nextSibling;
- }
- parent.insertBefore(newItems[i], referenceElement);
- }
-}
-
-$('scroller').addEventListener('scroll', onScroll);
-redraw();
-
-if (window.testRunner)
- testRunner.waitUntilDone();
-
-var scrollCount = 0;
-var wheelCount = 0;
-var nextStep;
-var scrollIndex = 2;
-var startPositionX;
-var startPositionY;
-var scrollAmount;
-
-function firstStep() {
- debug("begin scroll");
- var item = cache[scrollIndex];
- startPositionX = item.offsetLeft + 5;
- startPositionY = item.offsetTop + 5;
- eventSender.gestureScrollBegin(startPositionX, startPositionY);
-
- var aboveScroller = scroller.offsetTop - 30;
- scrollAmount = startPositionY - aboveScroller;
- debug("scroll up");
-
- nextStep = secondStep;
-
- eventSender.gestureScrollUpdate(0, -scrollAmount);
- shouldBe('scroller.scrollTop', '' + scrollAmount);
- shouldBe('scroller.scrollLeft', '0');
- shouldBe('wheelCount', '1');
-}
-
-function secondStep() {
- shouldBe('scrollCount', '1');
- shouldBe('typeof cache[' + scrollIndex + ']', 'typeof undefined');
- debug("scroll down");
-
- nextStep = thirdStep;
-
- eventSender.gestureScrollUpdate(0, scrollAmount);
- shouldBe('scroller.scrollTop', '0');
- shouldBe('scroller.scrollLeft', '0');
- shouldBe('wheelCount', '2');
-}
-
-function thirdStep() {
- shouldBe('scrollCount', '2');
- testRunner.notifyDone();
-}
-
-function runTest()
-{
- var scroller = $('scroller');
- scroller.addEventListener("scroll", function() {
- ++scrollCount;
- setTimeout(function() {
- nextStep();
- }, 0);
- });
- window.addEventListener("mousewheel", function() {
- ++wheelCount;
- });
-
- if (window.eventSender && window.testRunner) {
- description('This tests gesture event scrolling of a div where the element the scrolling starts on is removed from an onscroll event handler.');
- if (checkTestDependencies()) {
- firstStep();
- } else {
- exitIfNecessary();
- }
- } else {
- debug("This test requires DumpRenderTree.");
- }
-}
-</script>
-</body>
-</html>
Modified: trunk/Source/WebCore/ChangeLog (139338 => 139339)
--- trunk/Source/WebCore/ChangeLog 2013-01-10 18:41:02 UTC (rev 139338)
+++ trunk/Source/WebCore/ChangeLog 2013-01-10 18:41:04 UTC (rev 139339)
@@ -1,3 +1,16 @@
+2013-01-10 Robert Kroeger <[email protected]>
+
+ Manually revert http://trac.webkit.org/changeset/136012
+ https://bugs.webkit.org/show_bug.cgi?id=106580
+
+ Reviewed by Dimitri Glazkov.
+
+ 136012 broke touch-scrolling of an overflow div in an iframe. Revert manually
+ to work around conflicts.
+
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::handleWheelEvent):
+
2013-01-10 Robert Hogan <[email protected]>
REGRESSION(r136967): margin-top + overflow:hidden causes incorrect layout for internal floated elements
Modified: trunk/Source/WebCore/page/EventHandler.cpp (139338 => 139339)
--- trunk/Source/WebCore/page/EventHandler.cpp 2013-01-10 18:41:02 UTC (rev 139338)
+++ trunk/Source/WebCore/page/EventHandler.cpp 2013-01-10 18:41:04 UTC (rev 139339)
@@ -276,18 +276,6 @@
return enclosingBox->scroll(delta < 0 ? negativeDirection : positiveDirection, granularity, absDelta, stopNode);
}
-static Node* closestScrollableNodeInDocumentIfPossible(Node* node)
-{
- for (Node* scrollableNode = node; scrollableNode; scrollableNode = scrollableNode->parentNode()) {
- if (scrollableNode->isDocumentNode())
- break;
- RenderObject* renderer = scrollableNode->renderer();
- if (renderer && renderer->isBox() && toRenderBox(renderer)->canBeScrolledAndHasScrollableArea())
- return scrollableNode;
- }
- return node;
-}
-
#if ENABLE(GESTURE_EVENTS)
static inline bool shouldGesturesTriggerActive()
{
@@ -2314,7 +2302,7 @@
if (useLatchedWheelEventNode) {
if (!m_latchedWheelEventNode) {
- m_latchedWheelEventNode = closestScrollableNodeInDocumentIfPossible(result.innerNode());
+ m_latchedWheelEventNode = result.innerNode();
m_widgetIsLatched = result.isOverWidget();
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes