summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/fast/scrolling/scrollable-area-frame-scrolling-yes-display-none.html
diff options
context:
space:
mode:
authortonikitoo@webkit.org <tonikitoo@webkit.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538>2012-04-13 21:32:53 +0000
committertonikitoo@webkit.org <tonikitoo@webkit.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538>2012-04-13 21:32:53 +0000
commit9de09a320e201ea651b23587850050a67654271f (patch)
treea0adce6143f53eefc123f8ff62da9e18ba2f5d25 /third_party/WebKit/LayoutTests/fast/scrolling/scrollable-area-frame-scrolling-yes-display-none.html
parentdbe411f773b8725e3d09a3ff49257aa4f4b8d325 (diff)
downloadchromium_src-9de09a320e201ea651b23587850050a67654271f.zip
chromium_src-9de09a320e201ea651b23587850050a67654271f.tar.gz
chromium_src-9de09a320e201ea651b23587850050a67654271f.tar.bz2
Be more restrictive when adding ScrollableArea's to FrameView's ScrollableArea's map
https://bugs.webkit.org/show_bug.cgi?id=79611 Reviewed by James Robinson. Patch by Antonio Gomes <agomes@rim.com> Source/WebCore: As of today, any FrameView attached to the Widget-tree or any RenderLayer whose corresponding RenderBox's style has a 'overflow' property set to 'auto' is cached in its containing scrollable areas set. We could be more restrictive about what we in fact want to cache as scrollable areas, by checking if the element as an overflow (i.e. more content than its viewport). * page/FrameView.cpp: (WebCore::FrameView::setFrameRect): Whenever the viewport changes, check if we have an scrollable/overflowed content, and update the cache accordingly. (WebCore::FrameView::setContentsSize): Whenever the contents size changes, check if we have a scrollable/overflowed content, and update the cache accordingly. (WebCore::FrameView::calculateScrollbarModesForLayout): Introduces a way to query for the scrollbars by only taking into account the "rules" set by the web author. For that, a new enum was added called SrollbarModesCalculationStrategy, which allows callers to discard for example client-side scrollbar policies in order to verify if a given frameview is scrollable or not. (WebCore::FrameView::updateScrollableAreaSet): Take into account various factors before considering a FrameView as scrollable. If in the end it is, it gets added to its parent FrameView scrollable areas map, otherwise removed. (WebCore): (WebCore::FrameView::addScrollableArea): Became unneeded, thus removed. (WebCore::FrameView::removeScrollableArea): Whenever a FrameView is removed from the Widget-tree, remove it from the cache. * page/FrameView.h: (FrameView): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::updateScrollbarsAfterLayout): Update scrollable area set after layout. (WebCore::RenderLayer::updateScrollbarsAfterStyleChange): Update scrollable area set after style changes. (WebCore::RenderLayer::styleChanged): Removed the scrollable areas logic detection from it. (WebCore::RenderLayer::updateScrollableAreaSet): Updates the containing FrameView scrollable areas cache only when needed (i.e. an overflow exists). (WebCore): * rendering/RenderLayer.h: (RenderLayer): * testing/Internals.cpp: (WebCore::Internals::numberOfScrollableAreas): (WebCore): * testing/Internals.h: (Internals): * testing/Internals.idl: Tests: fast/scrolling/scrollable-area-frame-inherited-visibility-hidden.html fast/scrolling/scrollable-area-frame-overflow-hidden.html fast/scrolling/scrollable-area-frame-overried-inherited-visibility-hidden.html fast/scrolling/scrollable-area-frame-scrolling-no-overried-inherited-visibility-hidden.html fast/scrolling/scrollable-area-frame-scrolling-no-visibility-hidden-child.html fast/scrolling/scrollable-area-frame-scrolling-no.html fast/scrolling/scrollable-area-frame-scrolling-yes-display-none.html fast/scrolling/scrollable-area-frame-scrolling-yes.html fast/scrolling/scrollable-area-frame-visibility-hidden-child.html fast/scrolling/scrollable-area-frame-zero-size-and-border.html fast/scrolling/scrollable-area-frame.html fast/scrolling/scrollable-area-overflow-auto-display-none-in-parent.html fast/scrolling/scrollable-area-overflow-auto-display-none.html fast/scrolling/scrollable-area-overflow-auto-visibility-hidden-in-parent.html fast/scrolling/scrollable-area-overflow-auto-visibility-hidden.html fast/scrolling/scrollable-area-overflow-auto-visibility-override.html fast/scrolling/scrollable-area-overflow-auto-visibility-visible.html fast/scrolling/scrollable-area-overflow-auto.html fast/scrolling/scrollable-area-overflow-not-set.html fast/scrolling/scrollable-area-overflow-visible.html LayoutTests: Reviewed by NOBODY (OOPS!). Added scrollable area set count tests to many situations observed in real world sites. * fast/scrolling/resources/generic-scrollable-content.html: Added. * fast/scrolling/resources/hidden-generic-scrollable-content.html: Added. * fast/scrolling/resources/scrollable-area.js: Added. (runTest): (end): * fast/scrolling/resources/scrollable-style.css: Added. (.inner): (.offscreen): * fast/scrolling/scrollable-area-frame-expected.txt: Added. * fast/scrolling/scrollable-area-frame-inherited-visibility-hidden-expected.txt: Added. * fast/scrolling/scrollable-area-frame-inherited-visibility-hidden.html: Added. * fast/scrolling/scrollable-area-frame-overflow-hidden-expected.txt: Added. * fast/scrolling/scrollable-area-frame-overflow-hidden.html: Added. * fast/scrolling/scrollable-area-frame-overried-inherited-visibility-hidden-expected.txt: Added. * fast/scrolling/scrollable-area-frame-overried-inherited-visibility-hidden.html: Added. * fast/scrolling/scrollable-area-frame-scrolling-no-expected.txt: Added. * fast/scrolling/scrollable-area-frame-scrolling-no-overried-inherited-visibility-hidden-expected.txt: Added. * fast/scrolling/scrollable-area-frame-scrolling-no-overried-inherited-visibility-hidden.html: Added. * fast/scrolling/scrollable-area-frame-scrolling-no-visibility-hidden-child-expected.txt: Added. * fast/scrolling/scrollable-area-frame-scrolling-no-visibility-hidden-child.html: Added. * fast/scrolling/scrollable-area-frame-scrolling-no.html: Added. * fast/scrolling/scrollable-area-frame-scrolling-yes-display-none-expected.txt: Added. * fast/scrolling/scrollable-area-frame-scrolling-yes-display-none.html: Added. * fast/scrolling/scrollable-area-frame-scrolling-yes-expected.txt: Added. * fast/scrolling/scrollable-area-frame-scrolling-yes.html: Added. * fast/scrolling/scrollable-area-frame-visibility-hidden-child-expected.txt: Added. * fast/scrolling/scrollable-area-frame-visibility-hidden-child.html: Added. * fast/scrolling/scrollable-area-frame-zero-size-and-border-expected.txt: Added. * fast/scrolling/scrollable-area-frame-zero-size-and-border.html: Added. * fast/scrolling/scrollable-area-frame.html: Added. * fast/scrolling/scrollable-area-overflow-auto-display-none-expected.txt: Added. * fast/scrolling/scrollable-area-overflow-auto-display-none-in-parent-expected.txt: Added. * fast/scrolling/scrollable-area-overflow-auto-display-none-in-parent.html: Added. * fast/scrolling/scrollable-area-overflow-auto-display-none.html: Added. * fast/scrolling/scrollable-area-overflow-auto-expected.txt: Added. * fast/scrolling/scrollable-area-overflow-auto-visibility-hidden-expected.txt: Added. * fast/scrolling/scrollable-area-overflow-auto-visibility-hidden-in-parent-expected.txt: Added. * fast/scrolling/scrollable-area-overflow-auto-visibility-hidden-in-parent.html: Added. * fast/scrolling/scrollable-area-overflow-auto-visibility-hidden.html: Added. * fast/scrolling/scrollable-area-overflow-auto-visibility-override-expected.txt: Added. * fast/scrolling/scrollable-area-overflow-auto-visibility-override.html: Added. * fast/scrolling/scrollable-area-overflow-auto-visibility-visible-expected.txt: Added. * fast/scrolling/scrollable-area-overflow-auto-visibility-visible.html: Added. * fast/scrolling/scrollable-area-overflow-auto.html: Added. * fast/scrolling/scrollable-area-overflow-not-set-expected.txt: Added. * fast/scrolling/scrollable-area-overflow-not-set.html: Added. * fast/scrolling/scrollable-area-overflow-visible-expected.txt: Added. * fast/scrolling/scrollable-area-overflow-visible.html: Added. git-svn-id: svn://svn.chromium.org/blink/trunk@114170 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Diffstat (limited to 'third_party/WebKit/LayoutTests/fast/scrolling/scrollable-area-frame-scrolling-yes-display-none.html')
-rw-r--r--third_party/WebKit/LayoutTests/fast/scrolling/scrollable-area-frame-scrolling-yes-display-none.html10
1 files changed, 10 insertions, 0 deletions
diff --git a/third_party/WebKit/LayoutTests/fast/scrolling/scrollable-area-frame-scrolling-yes-display-none.html b/third_party/WebKit/LayoutTests/fast/scrolling/scrollable-area-frame-scrolling-yes-display-none.html
new file mode 100644
index 0000000..1b3ad03
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scrolling/scrollable-area-frame-scrolling-yes-display-none.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<head>
+ <style type="text/css"> @import "resources/scrollable-style.css"; </style>
+ <script src="../js/resources/js-test-pre.js"></script>
+ <script src="resources/scrollable-area.js"></script>
+</head>
+<body onload="runTest(0);">
+ <iframe width=120 scrolling=yes style="display: none;" src="resources/generic-scrollable-content.html"></iframe>
+ <div id='console'></div>
+</html>