Commit d911ca3f authored by tonikitoo@webkit.org's avatar tonikitoo@webkit.org

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: http://svn.webkit.org/repository/webkit/trunk@114170 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 85a4cf1a
2012-04-11 Antonio Gomes <agomes@rim.com>
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.
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.
2012-04-13 Vincent Scheib <scheib@chromium.org>
Chromium test_expectations TIMOUT mask for fast/canvas/2d.imageDataHD.html
<textarea rows='5' cols='20'>
content
content
content
content
content
content
content
content
content
content
content
content
content
content
content
content
</textarea>
<textarea style="visibility:hidden;" rows='5' cols='20'>
content
content
content
content
content
content
content
content
content
content
content
content
content
content
content
content
</textarea>
var referenceResult = 0;
var referenceResult2 = 0;
var referenceIntermediateFunction = 0;
var isDRT = window.layoutTestController && window.internals && window.internals.numberOfScrollableAreas;
function runTest(firstResult, intermediateFunction, secondResult)
{
if (isDRT) {
layoutTestController.waitUntilDone();
layoutTestController.dumpAsText();
}
referenceResult = firstResult;
if (intermediateFunction) {
referenceIntermediateFunction = intermediateFunction;
referenceResult2 = secondResult;
}
setTimeout(end, 0);
}
function end()
{
var result = 0;
if (isDRT) {
result = internals.numberOfScrollableAreas(document);
shouldBeTrue(stringify(result == referenceResult));
if (referenceIntermediateFunction) {
referenceIntermediateFunction();
result = internals.numberOfScrollableAreas(document);
shouldBeTrue(stringify(result == referenceResult2));
}
layoutTestController.notifyDone();
return;
}
if (referenceIntermediateFunction)
referenceIntermediateFunction();
}
.inner {
position: relative;
left: 5px;
color: #ffffff;
padding: 4px;
width: 80px;
height: 30px;
}
.offscreen {
position: relative;
top: 100px;
}
content
content
PASS true is true
PASS true is true
<!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>
<script>
function changeOverflow()
{
document.getElementById('scrollable').style.overflow= 'hidden';
var forceLayout = document.body.offsetHeight;
}
</script>
</head>
<body onload="runTest(1, changeOverflow, 0);">
<div id="scrollable" class="inner" style="color: black; background: grey; overflow: auto; border: 1px solid blue;">content
<div class="offscreen">content</div>
</div>
<div id='console'></div>
</body>
</html>
<!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);">
<span style="visibility: hidden">
<iframe width=120 scrolling=yes src="resources/generic-scrollable-content.html"></iframe>
</span>
<div id='console'></div>
</html>
<!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(4);">
<!-- 'overflow:hidden' on an inner frame works on Firefox and Opera, but not on WebKit-based Browsers: Chromium or Safari-->
<iframe width=120 style="overflow: hidden;" src="resources/generic-scrollable-content.html"></iframe>
<iframe width=120 style="overflow-x: hidden;" src="resources/generic-scrollable-content.html"></iframe>
<div id='console'></div>
</html>
<!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(2);">
<span style="visibility: hidden">
<iframe width=120 scrolling=yes style="visibility: visible;" src="resources/generic-scrollable-content.html"></iframe>
</span>
<div id='console'></div>
</html>
<!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>
</script>
</head>
<body onload="runTest(1);">
<span style="visibility: hidden">
<iframe width=120 scrolling=no style="visibility: visible;" src="resources/generic-scrollable-content.html"></iframe>
</span>
<div id='console'></div>
</html>
<!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=no style="visibility: visible;" src="resources/hidden-generic-scrollable-content.html"></iframe>
<div id='console'></div>
</html>
<!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(1);">
<iframe width=120 scrolling=no src="resources/generic-scrollable-content.html"></iframe>
<div id='console'></div>
</html>
<!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>
<!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(2);">
<iframe width=120 scrolling=yes src="resources/generic-scrollable-content.html"></iframe>
<div id='console'></div>
</html>
<!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(1);">
<iframe width=120 src="resources/hidden-generic-scrollable-content.html"></iframe>
<div id='console'></div>
</html>
<!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=0 height=0 border=0></iframe>
<div id='console'></div>
</html>
<!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(2);">
<iframe width=120 src="resources/generic-scrollable-content.html"></iframe>
<div id='console'></div>
</html>
<!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);">
<div style="display:none">
<div id="scrollable" class="inner" style="color: brown; background: purple; overflow: auto; visibility: visible">content
<div class="offscreen">content</div>
</div>
</div>
<div id='console'></div>
</body>
</html>
<!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);">
<div id="scrollable" class="inner" style="color: violet; background: purple; overflow: auto; display: none;">content
<div class="offscreen">content</div>
</div>
<div id='console'></div>
</body>
</html>
<!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);">
<div style="visibility:hidden">
<div id="scrollable" class="inner" style="background: yellow; overflow: auto;">content
<div class="offscreen">content</div>
</div>
</div>
<div id='console'></div>
</body>
</html>
<!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);">
<div id="scrollable" class="inner" style="background: yellow; overflow: auto; visibility: hidden">content
<div class="offscreen">content</div>
</div>
<div id='console'></div>
</body>
</html>
<!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(1);">
<div style="visibility:hidden">
<div id="scrollable" class="inner" style="color: black; background: yellow; overflow: auto; visibility: visible">content
<div class="offscreen">content</div>
</div>
</div>
<div id='console'></div>
</body>
</html>
<!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(1);">
<div id="scrollable" class="inner" style="background: red; overflow: auto; visibility: visible">content
<div class="offscreen">content</div>
</div>
<div id='console'></div>
</body>
</html>
<!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(1);">
<div id="scrollable" class="inner" style="background: black; overflow: auto;">content
<div class="offscreen">content</div>
</div>
<div id='console'></div>
</body>
</html>
<!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);">
<div id="scrollable" class="inner" style="background: green;">content
<div class="offscreen">content</div>
</div>
<div id='console'></div>
</body>
</html>
<!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);">
<div id="scrollable" class="inner" style="color: black; background: grey; overflow: visible; border: 1px solid blue;">content
<div class="offscreen">content</div>
</div>
<div id='console'></div>
</body>
</html>
2012-04-11 Antonio Gomes <agomes@rim.com>
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.
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):