<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[196688] trunk</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/196688">196688</a></dd>
<dt>Author</dt> <dd>carlosgc@webkit.org</dd>
<dt>Date</dt> <dd>2016-02-16 23:16:40 -0800 (Tue, 16 Feb 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Add a way to test ScrollAnimator
https://bugs.webkit.org/show_bug.cgi?id=153479
Reviewed by Michael Catanzaro.
Source/WebCore:
Tests: fast/scrolling/overlay-scrollbars-scroll-corner.html
fast/scrolling/scroll-animator-basic-events.html
fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html
fast/scrolling/scroll-animator-select-list-events.html
* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* page/FrameView.cpp:
(WebCore::FrameView::usesMockScrollAnimator):
(WebCore::FrameView::logMockScrollAnimatorMessage):
* page/FrameView.h:
* page/Settings.cpp:
(WebCore::Settings::setUsesMockScrollAnimator):
(WebCore::Settings::usesMockScrollAnimator):
* page/Settings.h:
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scrollAnimator):
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::usesMockScrollAnimator):
(WebCore::ScrollableArea::logMockScrollAnimatorMessage):
* platform/mock/ScrollAnimatorMock.cpp: Added.
(WebCore::ScrollAnimatorMock::create):
(WebCore::ScrollAnimatorMock::ScrollAnimatorMock):
(WebCore::ScrollAnimatorMock::~ScrollAnimatorMock):
(WebCore::ScrollAnimatorMock::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMock::didAddHorizontalScrollbar):
(WebCore::ScrollAnimatorMock::willRemoveVerticalScrollbar):
(WebCore::ScrollAnimatorMock::willRemoveHorizontalScrollbar):
(WebCore::ScrollAnimatorMock::mouseEnteredContentArea):
(WebCore::ScrollAnimatorMock::mouseMovedInContentArea):
(WebCore::ScrollAnimatorMock::mouseExitedContentArea):
(WebCore::ScrollAnimatorMock::mouseEnteredScrollbar):
(WebCore::ScrollAnimatorMock::mouseExitedScrollbar):
(WebCore::ScrollAnimatorMock::mouseIsDownInScrollbar):
* platform/mock/ScrollAnimatorMock.h: Added.
* platform/mock/ScrollbarThemeMock.cpp:
(WebCore::ScrollbarThemeMock::usesOverlayScrollbars):
* platform/mock/ScrollbarThemeMock.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::usesMockScrollAnimator):
(WebCore::RenderLayer::logMockScrollAnimatorMessage):
* rendering/RenderLayer.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::usesMockScrollAnimator):
(WebCore::RenderListBox::logMockScrollAnimatorMessage):
* rendering/RenderListBox.h:
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setUsesMockScrollAnimator):
* testing/Internals.h:
* testing/Internals.idl:
LayoutTests:
* compositing/overflow/overflow-scrollbar-layer-positions-expected.txt:
* fast/scrolling/overlay-scrollbars-scroll-corner-expected.html: Added.
* fast/scrolling/overlay-scrollbars-scroll-corner.html: Added.
* fast/scrolling/scroll-animator-basic-events-expected.txt: Added.
* fast/scrolling/scroll-animator-basic-events.html: Added.
* fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt: Added.
* fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html: Added.
* fast/scrolling/scroll-animator-select-list-events-expected.txt: Added.
* fast/scrolling/scroll-animator-select-list-events.html: Added.
* fast/scrolling/scrollbar-tickmarks-hittest.html:
* platform/mac-wk1/TestExpectations:
* platform/mac-wk1/fast/scrolling/scroll-animator-basic-events-expected.txt: Added.
* platform/mac-wk1/fast/scrolling/scroll-animator-select-list-events-expected.txt: Added.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestscompositingoverflowoverflowscrollbarlayerpositionsexpectedtxt">trunk/LayoutTests/compositing/overflow/overflow-scrollbar-layer-positions-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollingscrollbartickmarkshittesthtml">trunk/LayoutTests/fast/scrolling/scrollbar-tickmarks-hittest.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk1TestExpectations">trunk/LayoutTests/platform/mac-wk1/TestExpectations</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewcpp">trunk/Source/WebCore/page/FrameView.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewh">trunk/Source/WebCore/page/FrameView.h</a></li>
<li><a href="#trunkSourceWebCorepageSettingscpp">trunk/Source/WebCore/page/Settings.cpp</a></li>
<li><a href="#trunkSourceWebCorepageSettingsh">trunk/Source/WebCore/page/Settings.h</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollableAreacpp">trunk/Source/WebCore/platform/ScrollableArea.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollableAreah">trunk/Source/WebCore/platform/ScrollableArea.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmockScrollbarThemeMockcpp">trunk/Source/WebCore/platform/mock/ScrollbarThemeMock.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmockScrollbarThemeMockh">trunk/Source/WebCore/platform/mock/ScrollbarThemeMock.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayercpp">trunk/Source/WebCore/rendering/RenderLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerh">trunk/Source/WebCore/rendering/RenderLayer.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderListBoxcpp">trunk/Source/WebCore/rendering/RenderListBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderListBoxh">trunk/Source/WebCore/rendering/RenderListBox.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsh">trunk/Source/WebCore/testing/Internals.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsidl">trunk/Source/WebCore/testing/Internals.idl</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastscrollingoverlayscrollbarsscrollcornerexpectedhtml">trunk/LayoutTests/fast/scrolling/overlay-scrollbars-scroll-corner-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollingoverlayscrollbarsscrollcornerhtml">trunk/LayoutTests/fast/scrolling/overlay-scrollbars-scroll-corner.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollingscrollanimatorbasiceventsexpectedtxt">trunk/LayoutTests/fast/scrolling/scroll-animator-basic-events-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollingscrollanimatorbasiceventshtml">trunk/LayoutTests/fast/scrolling/scroll-animator-basic-events.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollingscrollanimatoroverlayscrollbarshoveredexpectedtxt">trunk/LayoutTests/fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollingscrollanimatoroverlayscrollbarshoveredhtml">trunk/LayoutTests/fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollingscrollanimatorselectlisteventsexpectedtxt">trunk/LayoutTests/fast/scrolling/scroll-animator-select-list-events-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollingscrollanimatorselectlisteventshtml">trunk/LayoutTests/fast/scrolling/scroll-animator-select-list-events.html</a></li>
<li>trunk/LayoutTests/platform/mac-wk1/fast/scrolling/</li>
<li><a href="#trunkLayoutTestsplatformmacwk1fastscrollingscrollanimatorbasiceventsexpectedtxt">trunk/LayoutTests/platform/mac-wk1/fast/scrolling/scroll-animator-basic-events-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk1fastscrollingscrollanimatorselectlisteventsexpectedtxt">trunk/LayoutTests/platform/mac-wk1/fast/scrolling/scroll-animator-select-list-events-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreplatformmockScrollAnimatorMockcpp">trunk/Source/WebCore/platform/mock/ScrollAnimatorMock.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmockScrollAnimatorMockh">trunk/Source/WebCore/platform/mock/ScrollAnimatorMock.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/LayoutTests/ChangeLog        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -1,3 +1,24 @@
</span><ins>+2016-02-16 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Add a way to test ScrollAnimator
+ https://bugs.webkit.org/show_bug.cgi?id=153479
+
+ Reviewed by Michael Catanzaro.
+
+ * compositing/overflow/overflow-scrollbar-layer-positions-expected.txt:
+ * fast/scrolling/overlay-scrollbars-scroll-corner-expected.html: Added.
+ * fast/scrolling/overlay-scrollbars-scroll-corner.html: Added.
+ * fast/scrolling/scroll-animator-basic-events-expected.txt: Added.
+ * fast/scrolling/scroll-animator-basic-events.html: Added.
+ * fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt: Added.
+ * fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html: Added.
+ * fast/scrolling/scroll-animator-select-list-events-expected.txt: Added.
+ * fast/scrolling/scroll-animator-select-list-events.html: Added.
+ * fast/scrolling/scrollbar-tickmarks-hittest.html:
+ * platform/mac-wk1/TestExpectations:
+ * platform/mac-wk1/fast/scrolling/scroll-animator-basic-events-expected.txt: Added.
+ * platform/mac-wk1/fast/scrolling/scroll-animator-select-list-events-expected.txt: Added.
+
</ins><span class="cx"> 2016-02-16 Gavin Barraclough <barraclough@apple.com>
</span><span class="cx">
</span><span class="cx"> JSDOMWindow::getOwnPropertySlot should not search photo chain
</span></span></pre></div>
<a id="trunkLayoutTestscompositingoverflowoverflowscrollbarlayerpositionsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/compositing/overflow/overflow-scrollbar-layer-positions-expected.txt (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/compositing/overflow/overflow-scrollbar-layer-positions-expected.txt        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/LayoutTests/compositing/overflow/overflow-scrollbar-layer-positions-expected.txt        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -11,6 +11,13 @@
</span><span class="cx"> (position 2.00 -6.00)
</span><span class="cx"> (bounds 244.00 244.00)
</span><span class="cx"> (drawsContent 1)
</span><ins>+ (children 1
+ (GraphicsLayer
+ (position 207.00 22.00)
+ (bounds 15.00 200.00)
+ (drawsContent 1)
+ )
+ )
</ins><span class="cx"> )
</span><span class="cx"> )
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollingoverlayscrollbarsscrollcornerexpectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/overlay-scrollbars-scroll-corner-expected.html (0 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/overlay-scrollbars-scroll-corner-expected.html         (rev 0)
+++ trunk/LayoutTests/fast/scrolling/overlay-scrollbars-scroll-corner-expected.html        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+<html>
+<style>
+ #scrollme {
+ width: 100px;
+ height: 100px;
+ overflow: auto;
+ }
+ #scrollme p {
+ height: 1000px;
+ width: 1000px;
+ }
+ ::-webkit-scrollbar {
+ width: 15px;
+ height: 15px;
+ background-color: #C0C0C0;
+ }
+ ::-webkit-scrollbar-thumb {
+ background-color: #808080;
+ }
+ ::-webkit-scrollbar-corner {
+ background-color: #C0C0C0;
+ }
+</style>
+<script>
+ if (window.internals) {
+ window.internals.setUsesOverlayScrollbars(false);
+ }
+</script>
+<body>
+ <p>This is a test for <a href="https://bugs.webkit.org/show_bug.cgi?id=153352">https://bugs.webkit.org/show_bug.cgi?id=153352</a></p>
+ <div id="scrollme"><p>This is a scrollable div.</p></div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollingoverlayscrollbarsscrollcornerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/overlay-scrollbars-scroll-corner.html (0 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/overlay-scrollbars-scroll-corner.html         (rev 0)
+++ trunk/LayoutTests/fast/scrolling/overlay-scrollbars-scroll-corner.html        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+<html>
+<style>
+ #scrollme {
+ width: 100px;
+ height: 100px;
+ overflow: auto;
+ }
+ #scrollme p {
+ width: 1000px;
+ height: 1000px;
+ }
+</style>
+<script>
+ if (window.internals) {
+ window.internals.setUsesOverlayScrollbars(true);
+ }
+</script>
+<body>
+ <p>This is a test for <a href="https://bugs.webkit.org/show_bug.cgi?id=153352">https://bugs.webkit.org/show_bug.cgi?id=153352</a></p>
+ <div id="scrollme"><p>This is a scrollable div.</p></div>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollingscrollanimatorbasiceventsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/scroll-animator-basic-events-expected.txt (0 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/scroll-animator-basic-events-expected.txt         (rev 0)
+++ trunk/LayoutTests/fast/scrolling/scroll-animator-basic-events-expected.txt        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -0,0 +1,21 @@
</span><ins>+CONSOLE MESSAGE: line 24: MainFrameView: didAddVerticalScrollbar
+CONSOLE MESSAGE: line 24: RenderLayer: didAddVerticalScrollbar
+CONSOLE MESSAGE: line 24: MainFrameView: mouseEnteredContentArea
+CONSOLE MESSAGE: line 24: MainFrameView: mouseMovedInContentArea
+CONSOLE MESSAGE: line 25: RenderLayer: mouseEnteredContentArea
+CONSOLE MESSAGE: line 25: RenderLayer: mouseMovedInContentArea
+CONSOLE MESSAGE: line 25: MainFrameView: mouseMovedInContentArea
+CONSOLE MESSAGE: line 26: RenderLayer: mouseEnteredVerticalScrollbar
+CONSOLE MESSAGE: line 26: RenderLayer: mouseMovedInContentArea
+CONSOLE MESSAGE: line 26: MainFrameView: mouseMovedInContentArea
+CONSOLE MESSAGE: line 27: RenderLayer: mouseIsDownInVerticalScrollbar
+CONSOLE MESSAGE: line 28: RenderLayer: mouseIsUpInVerticalScrollbar
+CONSOLE MESSAGE: line 29: RenderLayer: mouseExitedVerticalScrollbar
+CONSOLE MESSAGE: line 29: RenderLayer: mouseExitedContentArea
+CONSOLE MESSAGE: line 29: MainFrameView: mouseMovedInContentArea
+PASS successfullyParsed is true
+
+TEST COMPLETE
+This is a scrollable div.
+
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollingscrollanimatorbasiceventshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/scroll-animator-basic-events.html (0 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/scroll-animator-basic-events.html         (rev 0)
+++ trunk/LayoutTests/fast/scrolling/scroll-animator-basic-events.html        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+<html>
+<style>
+ #scrollme {
+ width: 100px;
+ height: 100px;
+ overflow: auto;
+ }
+ #scrollme p {
+ height: 1000px;
+ }
+</style>
+<script src="../../resources/js-test-pre.js"></script>
+<script>
+ if (window.internals) {
+ window.internals.setUsesMockScrollAnimator(true);
+ }
+ if (window.testRunner) {
+ testRunner.waitUntilDone();
+ testRunner.dumpAsText();
+ }
+ window.onload = function () {
+ var div = document.querySelector('#scrollme');
+ if (window.eventSender) {
+ eventSender.mouseMoveTo(0, 0);
+ eventSender.mouseMoveTo(div.offsetLeft + 1, div.offsetTop + 1);
+ eventSender.mouseMoveTo(div.offsetLeft + div.offsetWidth - 4, div.offsetTop + 1);
+ eventSender.mouseDown();
+ eventSender.mouseUp();
+ eventSender.mouseMoveTo(0, 0);
+ }
+ if (window.testRunner)
+ testRunner.notifyDone();
+ };
+</script>
+<script src="../../resources/js-test-post.js"></script>
+<body>
+ <div id="scrollme"><p>This is a scrollable div.</p></div>
+ <pre id="console"></pre>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollingscrollanimatoroverlayscrollbarshoveredexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt (0 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt         (rev 0)
+++ trunk/LayoutTests/fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+CONSOLE MESSAGE: line 15: MainFrameView: didAddVerticalScrollbar
+CONSOLE MESSAGE: line 15: FrameView: didAddVerticalScrollbar
+CONSOLE MESSAGE: line 15: FrameView: didAddHorizontalScrollbar
+CONSOLE MESSAGE: line 15: FrameView: willRemoveVerticalScrollbar
+CONSOLE MESSAGE: line 15: MainFrameView: mouseEnteredContentArea
+CONSOLE MESSAGE: line 15: MainFrameView: mouseMovedInContentArea
+CONSOLE MESSAGE: line 16: FrameView: mouseEnteredHorizontalScrollbar
+CONSOLE MESSAGE: line 16: FrameView: mouseEnteredContentArea
+CONSOLE MESSAGE: line 16: MainFrameView: mouseMovedInContentArea
+CONSOLE MESSAGE: line 17: FrameView: mouseExitedHorizontalScrollbar
+CONSOLE MESSAGE: line 17: FrameView: mouseExitedContentArea
+CONSOLE MESSAGE: line 17: MainFrameView: mouseMovedInContentArea
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Test for https://bugs.webkit.org/show_bug.cgi?id=153304.
+
+
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollingscrollanimatoroverlayscrollbarshoveredhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html (0 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html         (rev 0)
+++ trunk/LayoutTests/fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+<html>
+<script src="../../resources/js-test-pre.js"></script>
+<script>
+ if (window.internals) {
+ window.internals.setUsesMockScrollAnimator(true);
+ window.internals.setUsesOverlayScrollbars(true);
+ }
+ if (window.testRunner) {
+ testRunner.waitUntilDone();
+ testRunner.dumpAsText();
+ }
+ window.onload = function () {
+ var frame = document.getElementById("frame");
+ if (window.eventSender) {
+ eventSender.mouseMoveTo(0, 0);
+ eventSender.mouseMoveTo(frame.offsetLeft + 4, frame.offsetTop + frame.offsetHeight - 4);
+ eventSender.mouseMoveTo(0, 0);
+ }
+ if (window.testRunner)
+ testRunner.notifyDone();
+ };
+</script>
+<script src="../../resources/js-test-post.js"></script>
+<body>
+ <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=153304">https://bugs.webkit.org/show_bug.cgi?id=153304</a>.</p>
+ <iframe width=120 scrolling=yes id="frame" src="data:text/html,
+ <p style='white-space: nowrap'>Scroll animator should be notified when overlay scrollbars in main frame are hovered</p>
+ ">
+ </iframe>
+ <pre id="console"></pre>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollingscrollanimatorselectlisteventsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/scroll-animator-select-list-events-expected.txt (0 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/scroll-animator-select-list-events-expected.txt         (rev 0)
+++ trunk/LayoutTests/fast/scrolling/scroll-animator-select-list-events-expected.txt        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+CONSOLE MESSAGE: RenderListBox: didAddVerticalScrollbar
+CONSOLE MESSAGE: line 14: MainFrameView: didAddVerticalScrollbar
+CONSOLE MESSAGE: line 14: MainFrameView: mouseEnteredContentArea
+CONSOLE MESSAGE: line 14: MainFrameView: mouseMovedInContentArea
+CONSOLE MESSAGE: line 15: RenderListBox: mouseEnteredContentArea
+CONSOLE MESSAGE: line 15: RenderListBox: mouseMovedInContentArea
+CONSOLE MESSAGE: line 15: MainFrameView: mouseMovedInContentArea
+CONSOLE MESSAGE: line 16: RenderListBox: mouseEnteredVerticalScrollbar
+CONSOLE MESSAGE: line 16: RenderListBox: mouseMovedInContentArea
+CONSOLE MESSAGE: line 16: MainFrameView: mouseMovedInContentArea
+CONSOLE MESSAGE: line 17: RenderListBox: mouseIsDownInVerticalScrollbar
+CONSOLE MESSAGE: line 18: RenderListBox: mouseIsUpInVerticalScrollbar
+CONSOLE MESSAGE: line 19: RenderListBox: mouseExitedVerticalScrollbar
+CONSOLE MESSAGE: line 19: RenderListBox: mouseExitedContentArea
+CONSOLE MESSAGE: line 19: MainFrameView: mouseMovedInContentArea
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Test for https://bugs.webkit.org/show_bug.cgi?id=153398.
+
+
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollingscrollanimatorselectlisteventshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/scrolling/scroll-animator-select-list-events.html (0 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/scroll-animator-select-list-events.html         (rev 0)
+++ trunk/LayoutTests/fast/scrolling/scroll-animator-select-list-events.html        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -0,0 +1,42 @@
</span><ins>+<html>
+<script src="../../resources/js-test-pre.js"></script>
+<script>
+ if (window.internals) {
+ window.internals.setUsesMockScrollAnimator(true);
+ }
+ if (window.testRunner) {
+ testRunner.waitUntilDone();
+ testRunner.dumpAsText();
+ }
+ window.onload = function () {
+ var list = document.getElementById("list");
+ if (window.eventSender) {
+ eventSender.mouseMoveTo(0, 0);
+ eventSender.mouseMoveTo(list.offsetLeft + 1, list.offsetTop + 1);
+ eventSender.mouseMoveTo(list.offsetLeft + list.offsetWidth - 4, list.offsetTop + 1);
+ eventSender.mouseDown();
+ eventSender.mouseUp();
+ eventSender.mouseMoveTo(0, 0);
+ }
+ if (window.testRunner)
+ testRunner.notifyDone();
+ };
+</script>
+<script src="../../resources/js-test-post.js"></script>
+<body>
+ <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=153398">https://bugs.webkit.org/show_bug.cgi?id=153398</a>.</p>
+ <select id="list" size="2">
+ <option>content1</option>
+ <option>content2</option>
+ <option>content3</option>
+ <option>content4</option>
+ <option>content5</option>
+ <option>content6</option>
+ <option>content7</option>
+ <option>content8</option>
+ <option>content9</option>
+ <option>content10</option>
+ </select>
+ <pre id="console"></pre>
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollingscrollbartickmarkshittesthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/scrollbar-tickmarks-hittest.html (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/scrollbar-tickmarks-hittest.html        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/LayoutTests/fast/scrolling/scrollbar-tickmarks-hittest.html        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -13,7 +13,6 @@
</span><span class="cx"> var elt = document.getElementById('elt');
</span><span class="cx"> range.selectNodeContents(elt);
</span><span class="cx"> if (window.internals) {
</span><del>- window.internals.setUsesOverlayScrollbars(true);
</del><span class="cx"> window.internals.addTextMatchMarker(range, true);
</span><span class="cx"> }
</span><span class="cx"> if (window.testRunner)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/TestExpectations        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -253,6 +253,9 @@
</span><span class="cx"> # Lacking WK1 TestRunner API that evaluates JavaScript through JSC APIs and not WebCore APIs
</span><span class="cx"> inspector/script-profiler/event-type-API.html
</span><span class="cx">
</span><ins>+# This test checks ScrollAnimator events only for main frame scrollbars that use native widgets in WK1.
+fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html [ Skip ]
+
</ins><span class="cx"> ########################################
</span><span class="cx"> ### START OF (3) IndexedDB failures with SQLite
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1fastscrollingscrollanimatorbasiceventsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac-wk1/fast/scrolling/scroll-animator-basic-events-expected.txt (0 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/fast/scrolling/scroll-animator-basic-events-expected.txt         (rev 0)
+++ trunk/LayoutTests/platform/mac-wk1/fast/scrolling/scroll-animator-basic-events-expected.txt        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+CONSOLE MESSAGE: line 25: RenderLayer: didAddVerticalScrollbar
+CONSOLE MESSAGE: line 25: RenderLayer: mouseMovedInContentArea
+CONSOLE MESSAGE: line 26: RenderLayer: mouseEnteredVerticalScrollbar
+CONSOLE MESSAGE: line 26: RenderLayer: mouseMovedInContentArea
+CONSOLE MESSAGE: line 27: RenderLayer: mouseIsDownInVerticalScrollbar
+CONSOLE MESSAGE: line 28: RenderLayer: mouseIsUpInVerticalScrollbar
+CONSOLE MESSAGE: line 28: RenderLayer: mouseMovedInContentArea
+CONSOLE MESSAGE: line 29: RenderLayer: mouseExitedVerticalScrollbar
+CONSOLE MESSAGE: line 29: RenderLayer: mouseExitedContentArea
+PASS successfullyParsed is true
+
+TEST COMPLETE
+This is a scrollable div.
+
+
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1fastscrollingscrollanimatorselectlisteventsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac-wk1/fast/scrolling/scroll-animator-select-list-events-expected.txt (0 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/fast/scrolling/scroll-animator-select-list-events-expected.txt         (rev 0)
+++ trunk/LayoutTests/platform/mac-wk1/fast/scrolling/scroll-animator-select-list-events-expected.txt        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+CONSOLE MESSAGE: RenderListBox: didAddVerticalScrollbar
+CONSOLE MESSAGE: line 15: RenderListBox: mouseMovedInContentArea
+CONSOLE MESSAGE: line 16: RenderListBox: mouseEnteredVerticalScrollbar
+CONSOLE MESSAGE: line 16: RenderListBox: mouseMovedInContentArea
+CONSOLE MESSAGE: line 17: RenderListBox: mouseIsDownInVerticalScrollbar
+CONSOLE MESSAGE: line 18: RenderListBox: mouseIsUpInVerticalScrollbar
+CONSOLE MESSAGE: line 18: RenderListBox: mouseMovedInContentArea
+CONSOLE MESSAGE: line 19: RenderListBox: mouseExitedVerticalScrollbar
+CONSOLE MESSAGE: line 19: RenderListBox: mouseExitedContentArea
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Test for https://bugs.webkit.org/show_bug.cgi?id=153398.
+
+
+
</ins></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -2314,6 +2314,7 @@
</span><span class="cx"> platform/mock/RTCDataChannelHandlerMock.cpp
</span><span class="cx"> platform/mock/RTCNotifiersMock.cpp
</span><span class="cx"> platform/mock/RTCPeerConnectionHandlerMock.cpp
</span><ins>+ platform/mock/ScrollAnimatorMock.cpp
</ins><span class="cx"> platform/mock/ScrollbarThemeMock.cpp
</span><span class="cx">
</span><span class="cx"> platform/network/AuthenticationChallengeBase.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/ChangeLog        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -1,5 +1,64 @@
</span><span class="cx"> 2016-02-16 Carlos Garcia Campos <cgarcia@igalia.com>
</span><span class="cx">
</span><ins>+ Add a way to test ScrollAnimator
+ https://bugs.webkit.org/show_bug.cgi?id=153479
+
+ Reviewed by Michael Catanzaro.
+
+ Tests: fast/scrolling/overlay-scrollbars-scroll-corner.html
+ fast/scrolling/scroll-animator-basic-events.html
+ fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html
+ fast/scrolling/scroll-animator-select-list-events.html
+
+ * CMakeLists.txt:
+ * WebCore.xcodeproj/project.pbxproj:
+ * page/FrameView.cpp:
+ (WebCore::FrameView::usesMockScrollAnimator):
+ (WebCore::FrameView::logMockScrollAnimatorMessage):
+ * page/FrameView.h:
+ * page/Settings.cpp:
+ (WebCore::Settings::setUsesMockScrollAnimator):
+ (WebCore::Settings::usesMockScrollAnimator):
+ * page/Settings.h:
+ * platform/ScrollableArea.cpp:
+ (WebCore::ScrollableArea::scrollAnimator):
+ * platform/ScrollableArea.h:
+ (WebCore::ScrollableArea::usesMockScrollAnimator):
+ (WebCore::ScrollableArea::logMockScrollAnimatorMessage):
+ * platform/mock/ScrollAnimatorMock.cpp: Added.
+ (WebCore::ScrollAnimatorMock::create):
+ (WebCore::ScrollAnimatorMock::ScrollAnimatorMock):
+ (WebCore::ScrollAnimatorMock::~ScrollAnimatorMock):
+ (WebCore::ScrollAnimatorMock::didAddVerticalScrollbar):
+ (WebCore::ScrollAnimatorMock::didAddHorizontalScrollbar):
+ (WebCore::ScrollAnimatorMock::willRemoveVerticalScrollbar):
+ (WebCore::ScrollAnimatorMock::willRemoveHorizontalScrollbar):
+ (WebCore::ScrollAnimatorMock::mouseEnteredContentArea):
+ (WebCore::ScrollAnimatorMock::mouseMovedInContentArea):
+ (WebCore::ScrollAnimatorMock::mouseExitedContentArea):
+ (WebCore::ScrollAnimatorMock::mouseEnteredScrollbar):
+ (WebCore::ScrollAnimatorMock::mouseExitedScrollbar):
+ (WebCore::ScrollAnimatorMock::mouseIsDownInScrollbar):
+ * platform/mock/ScrollAnimatorMock.h: Added.
+ * platform/mock/ScrollbarThemeMock.cpp:
+ (WebCore::ScrollbarThemeMock::usesOverlayScrollbars):
+ * platform/mock/ScrollbarThemeMock.h:
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::usesMockScrollAnimator):
+ (WebCore::RenderLayer::logMockScrollAnimatorMessage):
+ * rendering/RenderLayer.h:
+ * rendering/RenderListBox.cpp:
+ (WebCore::RenderListBox::usesMockScrollAnimator):
+ (WebCore::RenderListBox::logMockScrollAnimatorMessage):
+ * rendering/RenderListBox.h:
+ * testing/Internals.cpp:
+ (WebCore::Internals::resetToConsistentState):
+ (WebCore::Internals::setUsesMockScrollAnimator):
+ * testing/Internals.h:
+ * testing/Internals.idl:
+
+2016-02-16 Carlos Garcia Campos <cgarcia@igalia.com>
+
</ins><span class="cx"> Unreviewed. Enable overlay scrollbars in GTK+ after r196641.
</span><span class="cx">
</span><span class="cx"> This was blocked by bug #153404, but the commit that introduced
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -2372,6 +2372,8 @@
</span><span class="cx">                 5C9A7A751AA0F6EA00958ACF /* DFABytecodeCompiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C39305E1AA0F6A90029C816 /* DFABytecodeCompiler.cpp */; };
</span><span class="cx">                 5C9A7A761AA0F6ED00958ACF /* DFABytecodeInterpreter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C3930601AA0F6A90029C816 /* DFABytecodeInterpreter.cpp */; };
</span><span class="cx">                 5C9B860C1C21E3C900110F36 /* ResourceLoadTiming.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C9B860B1C21E3C600110F36 /* ResourceLoadTiming.mm */; };
</span><ins>+                5CB37FFE1C62D28C00F20188 /* ScrollAnimatorMock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CB37FFC1C62D27800F20188 /* ScrollAnimatorMock.cpp */; };
+                5CB37FFF1C62D2A100F20188 /* ScrollAnimatorMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB37FFD1C62D27800F20188 /* ScrollAnimatorMock.h */; };
</ins><span class="cx">                 5CBC8DAC1AAA302200E1C803 /* MediaAccessibilitySoftLink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CBC8DAA1AAA302200E1C803 /* MediaAccessibilitySoftLink.cpp */; };
</span><span class="cx">                 5CBC8DAD1AAA302200E1C803 /* MediaAccessibilitySoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CBC8DAB1AAA302200E1C803 /* MediaAccessibilitySoftLink.h */; };
</span><span class="cx">                 5CD9F5661AA0F73C00DA45FF /* DFABytecode.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C39305D1AA0F6A90029C816 /* DFABytecode.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -9934,6 +9936,8 @@
</span><span class="cx">                 5C4304B3191AEF46000E2BC0 /* JSEXTShaderTextureLOD.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSEXTShaderTextureLOD.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 5C4304B4191AEF46000E2BC0 /* JSEXTShaderTextureLOD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSEXTShaderTextureLOD.h; sourceTree = "<group>"; };
</span><span class="cx">                 5C9B860B1C21E3C600110F36 /* ResourceLoadTiming.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceLoadTiming.mm; sourceTree = "<group>"; };
</span><ins>+                5CB37FFC1C62D27800F20188 /* ScrollAnimatorMock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollAnimatorMock.cpp; sourceTree = "<group>"; };
+                5CB37FFD1C62D27800F20188 /* ScrollAnimatorMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollAnimatorMock.h; sourceTree = "<group>"; };
</ins><span class="cx">                 5CBC8DAA1AAA302200E1C803 /* MediaAccessibilitySoftLink.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaAccessibilitySoftLink.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 5CBC8DAB1AAA302200E1C803 /* MediaAccessibilitySoftLink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaAccessibilitySoftLink.h; sourceTree = "<group>"; };
</span><span class="cx">                 5CDFA6C71AA4F2DA00EA8746 /* ContentExtensionActions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentExtensionActions.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -17411,6 +17415,8 @@
</span><span class="cx">                 59C77F101054591C00506104 /* mock */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                5CB37FFC1C62D27800F20188 /* ScrollAnimatorMock.cpp */,
+                                5CB37FFD1C62D27800F20188 /* ScrollAnimatorMock.h */,
</ins><span class="cx">                                 CDF2B005182053DF00F2B424 /* mediasource */,
</span><span class="cx">                                 59309A1011F4AE5800250603 /* DeviceOrientationClientMock.cpp */,
</span><span class="cx">                                 59309A1211F4AE6A00250603 /* DeviceOrientationClientMock.h */,
</span><span class="lines">@@ -24965,6 +24971,7 @@
</span><span class="cx">                                 FD31608312B026F700C1A359 /* AudioFileReader.h in Headers */,
</span><span class="cx">                                 CD5596921475B678001D0BD0 /* AudioFileReaderIOS.h in Headers */,
</span><span class="cx">                                 FD3160BF12B0272A00C1A359 /* AudioFileReaderMac.h in Headers */,
</span><ins>+                                5CB37FFF1C62D2A100F20188 /* ScrollAnimatorMock.h in Headers */,
</ins><span class="cx">                                 CD2F4A2418D89F700063746D /* AudioHardwareListener.h in Headers */,
</span><span class="cx">                                 CD2F4A2818D8A3490063746D /* AudioHardwareListenerMac.h in Headers */,
</span><span class="cx">                                 FDE2D55B159E66EB00DCCCF8 /* AudioIOCallback.h in Headers */,
</span><span class="lines">@@ -31374,6 +31381,7 @@
</span><span class="cx">                                 14C9A5EA0B3D105F005A0232 /* Settings.cpp in Sources */,
</span><span class="cx">                                 A182D5B71BE722670087A7CC /* SettingsCocoa.mm in Sources */,
</span><span class="cx">                                 0F3DD44F12F5EA1B000D9190 /* ShadowBlur.cpp in Sources */,
</span><ins>+                                5CB37FFE1C62D28C00F20188 /* ScrollAnimatorMock.cpp in Sources */,
</ins><span class="cx">                                 BC5EB8C30E82031B00B25965 /* ShadowData.cpp in Sources */,
</span><span class="cx">                                 A6D169621346B49B000EB770 /* ShadowRoot.cpp in Sources */,
</span><span class="cx">                                 FD45A953175D3FB800C21EC8 /* Shape.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.cpp (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.cpp        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/page/FrameView.cpp        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -1631,6 +1631,24 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+bool FrameView::usesMockScrollAnimator() const
+{
+ return Settings::usesMockScrollAnimator();
+}
+
+void FrameView::logMockScrollAnimatorMessage(const String& message) const
+{
+ Document* document = frame().document();
+ if (!document)
+ return;
+ StringBuilder builder;
+ if (frame().isMainFrame())
+ builder.appendLiteral("Main");
+ builder.appendLiteral("FrameView: ");
+ builder.append(message);
+ document->addConsoleMessage(MessageSource::Other, MessageLevel::Debug, builder.toString());
+}
+
</ins><span class="cx"> void FrameView::setCannotBlitToWindow()
</span><span class="cx"> {
</span><span class="cx"> m_cannotBlitToWindow = true;
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.h (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.h        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/page/FrameView.h        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -636,6 +636,8 @@
</span><span class="cx">
</span><span class="cx"> virtual bool usesCompositedScrolling() const override;
</span><span class="cx"> virtual bool usesAsyncScrolling() const override;
</span><ins>+ bool usesMockScrollAnimator() const override;
+ void logMockScrollAnimatorMessage(const String&) const override;
</ins><span class="cx">
</span><span class="cx"> // Override scrollbar notifications to update the AXObject cache.
</span><span class="cx"> virtual void didAddScrollbar(Scrollbar*, ScrollbarOrientation) override;
</span></span></pre></div>
<a id="trunkSourceWebCorepageSettingscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Settings.cpp (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Settings.cpp        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/page/Settings.cpp        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -84,6 +84,7 @@
</span><span class="cx">
</span><span class="cx"> bool Settings::gMockScrollbarsEnabled = false;
</span><span class="cx"> bool Settings::gUsesOverlayScrollbars = false;
</span><ins>+bool Settings::gMockScrollAnimatorEnabled = false;
</ins><span class="cx">
</span><span class="cx"> #if ENABLE(MEDIA_STREAM)
</span><span class="cx"> bool Settings::gMockCaptureDevicesEnabled = false;
</span><span class="lines">@@ -655,6 +656,16 @@
</span><span class="cx"> return gUsesOverlayScrollbars;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void Settings::setUsesMockScrollAnimator(bool flag)
+{
+ gMockScrollAnimatorEnabled = flag;
+}
+
+bool Settings::usesMockScrollAnimator()
+{
+ return gMockScrollAnimatorEnabled;
+}
+
</ins><span class="cx"> void Settings::setShouldRespectPriorityInCSSAttributeSetters(bool flag)
</span><span class="cx"> {
</span><span class="cx"> gShouldRespectPriorityInCSSAttributeSetters = flag;
</span></span></pre></div>
<a id="trunkSourceWebCorepageSettingsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Settings.h (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Settings.h        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/page/Settings.h        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -216,6 +216,9 @@
</span><span class="cx"> WEBCORE_EXPORT static void setUsesOverlayScrollbars(bool flag);
</span><span class="cx"> static bool usesOverlayScrollbars();
</span><span class="cx">
</span><ins>+ WEBCORE_EXPORT static void setUsesMockScrollAnimator(bool);
+ static bool usesMockScrollAnimator();
+
</ins><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><span class="cx"> void setTouchEventEmulationEnabled(bool enabled) { m_touchEventEmulationEnabled = enabled; }
</span><span class="cx"> bool isTouchEventEmulationEnabled() const { return m_touchEventEmulationEnabled; }
</span><span class="lines">@@ -357,6 +360,7 @@
</span><span class="cx">
</span><span class="cx"> static bool gMockScrollbarsEnabled;
</span><span class="cx"> static bool gUsesOverlayScrollbars;
</span><ins>+ static bool gMockScrollAnimatorEnabled;
</ins><span class="cx">
</span><span class="cx"> #if PLATFORM(WIN)
</span><span class="cx"> static bool gShouldUseHighResolutionTimers;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollableAreacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollableArea.cpp (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollableArea.cpp        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/platform/ScrollableArea.cpp        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -39,6 +39,7 @@
</span><span class="cx"> #include "Logging.h"
</span><span class="cx"> #include "PlatformWheelEvent.h"
</span><span class="cx"> #include "ScrollAnimator.h"
</span><ins>+#include "ScrollAnimatorMock.h"
</ins><span class="cx"> #include "ScrollbarTheme.h"
</span><span class="cx"> #include "TextStream.h"
</span><span class="cx">
</span><span class="lines">@@ -75,8 +76,14 @@
</span><span class="cx">
</span><span class="cx"> ScrollAnimator& ScrollableArea::scrollAnimator() const
</span><span class="cx"> {
</span><del>- if (!m_scrollAnimator)
- m_scrollAnimator = ScrollAnimator::create(const_cast<ScrollableArea&>(*this));
</del><ins>+ if (!m_scrollAnimator) {
+ if (usesMockScrollAnimator()) {
+ m_scrollAnimator = std::make_unique<ScrollAnimatorMock>(const_cast<ScrollableArea&>(*this), [this](const String& message) {
+ logMockScrollAnimatorMessage(message);
+ });
+ } else
+ m_scrollAnimator = ScrollAnimator::create(const_cast<ScrollableArea&>(*this));
+ }
</ins><span class="cx">
</span><span class="cx"> ASSERT(m_scrollAnimator);
</span><span class="cx"> return *m_scrollAnimator.get();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollableAreah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollableArea.h (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollableArea.h        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/platform/ScrollableArea.h        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -307,6 +307,9 @@
</span><span class="cx"> void verticalScrollbarLayerDidChange();
</span><span class="cx"> void horizontalScrollbarLayerDidChange();
</span><span class="cx">
</span><ins>+ virtual bool usesMockScrollAnimator() const { return false; }
+ virtual void logMockScrollAnimatorMessage(const String&) const { };
+
</ins><span class="cx"> protected:
</span><span class="cx"> WEBCORE_EXPORT ScrollableArea();
</span><span class="cx"> WEBCORE_EXPORT virtual ~ScrollableArea();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockScrollAnimatorMockcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/platform/mock/ScrollAnimatorMock.cpp (0 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/ScrollAnimatorMock.cpp         (rev 0)
+++ trunk/Source/WebCore/platform/mock/ScrollAnimatorMock.cpp        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -0,0 +1,145 @@
</span><ins>+/*
+ * Copyright (c) 2016 Igalia S.L.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "ScrollAnimatorMock.h"
+
+#include "ScrollableArea.h"
+#include <wtf/text/StringBuilder.h>
+
+namespace WebCore {
+
+ScrollAnimatorMock::ScrollAnimatorMock(ScrollableArea& scrollableArea, std::function<void(const String&)>&& logger)
+ : ScrollAnimator(scrollableArea)
+ , m_logger(WTFMove(logger))
+{
+}
+
+ScrollAnimatorMock::~ScrollAnimatorMock()
+{
+}
+
+void ScrollAnimatorMock::didAddVerticalScrollbar(Scrollbar* scrollbar)
+{
+ m_verticalScrollbar = scrollbar;
+ m_logger("didAddVerticalScrollbar");
+ ScrollAnimator::didAddVerticalScrollbar(scrollbar);
+}
+
+void ScrollAnimatorMock::didAddHorizontalScrollbar(Scrollbar* scrollbar)
+{
+ m_horizontalScrollbar = scrollbar;
+ m_logger("didAddHorizontalScrollbar");
+ ScrollAnimator::didAddHorizontalScrollbar(scrollbar);
+}
+
+void ScrollAnimatorMock::willRemoveVerticalScrollbar(Scrollbar* scrollbar)
+{
+ m_logger("willRemoveVerticalScrollbar");
+ ScrollAnimator::willRemoveVerticalScrollbar(scrollbar);
+ m_verticalScrollbar = nullptr;
+}
+
+void ScrollAnimatorMock::willRemoveHorizontalScrollbar(Scrollbar* scrollbar)
+{
+ m_logger("willRemoveHorizontalScrollbar");
+ ScrollAnimator::willRemoveHorizontalScrollbar(scrollbar);
+ m_horizontalScrollbar = nullptr;
+}
+
+void ScrollAnimatorMock::mouseEnteredContentArea()
+{
+ m_logger("mouseEnteredContentArea");
+ ScrollAnimator::mouseEnteredContentArea();
+}
+
+void ScrollAnimatorMock::mouseMovedInContentArea()
+{
+ m_logger("mouseMovedInContentArea");
+ ScrollAnimator::mouseMovedInContentArea();
+}
+
+void ScrollAnimatorMock::mouseExitedContentArea()
+{
+ m_logger("mouseExitedContentArea");
+ ScrollAnimator::mouseExitedContentArea();
+}
+
+void ScrollAnimatorMock::mouseEnteredScrollbar(Scrollbar* scrollbar) const
+{
+ StringBuilder message;
+ message.appendLiteral("mouseEntered");
+ if (scrollbar == m_verticalScrollbar)
+ message.appendLiteral("Vertical");
+ else if (scrollbar == m_horizontalScrollbar)
+ message.appendLiteral("Horizontal");
+ else
+ message.appendLiteral("Unknown");
+ message.appendLiteral("Scrollbar");
+ m_logger(message.toString());
+ ScrollAnimator::mouseEnteredScrollbar(scrollbar);
+}
+
+void ScrollAnimatorMock::mouseExitedScrollbar(Scrollbar* scrollbar) const
+{
+ StringBuilder message;
+ message.appendLiteral("mouseExited");
+ if (scrollbar == m_verticalScrollbar)
+ message.appendLiteral("Vertical");
+ else if (scrollbar == m_horizontalScrollbar)
+ message.appendLiteral("Horizontal");
+ else
+ message.appendLiteral("Unknown");
+ message.appendLiteral("Scrollbar");
+ m_logger(message.toString());
+ ScrollAnimator::mouseExitedScrollbar(scrollbar);
+}
+
+void ScrollAnimatorMock::mouseIsDownInScrollbar(Scrollbar* scrollbar, bool isPressed) const
+{
+ StringBuilder message;
+ message.appendLiteral("mouseIs");
+ if (isPressed)
+ message.appendLiteral("Down");
+ else
+ message.appendLiteral("Up");
+ message.appendLiteral("In");
+ if (scrollbar == m_verticalScrollbar)
+ message.appendLiteral("Vertical");
+ else if (scrollbar == m_horizontalScrollbar)
+ message.appendLiteral("Horizontal");
+ else
+ message.appendLiteral("Unknown");
+ message.appendLiteral("Scrollbar");
+ m_logger(message.toString());
+ ScrollAnimator::mouseIsDownInScrollbar(scrollbar, isPressed);
+}
+
+} // namespace WebCore
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmockScrollAnimatorMockh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/platform/mock/ScrollAnimatorMock.h (0 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/ScrollAnimatorMock.h         (rev 0)
+++ trunk/Source/WebCore/platform/mock/ScrollAnimatorMock.h        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -0,0 +1,78 @@
</span><ins>+/*
+ * Copyright (c) 2016 Igalia S.L.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef ScrollAnimatorMock_h
+#define ScrollAnimatorMock_h
+
+#include "ScrollAnimator.h"
+
+namespace WebCore {
+
+// A Mock implementation of ScrollAnimator used to test the scroll events
+// received by the scroll animator. Tests can enable this scroll animator using
+// the internal setting enableMockScrollAnimator.
+class ScrollAnimatorMock final : public ScrollAnimator {
+public:
+ ScrollAnimatorMock(ScrollableArea&, std::function<void(const String&)>&&);
+ virtual ~ScrollAnimatorMock();
+
+#if ENABLE(RUBBER_BANDING)
+ bool allowsHorizontalStretching(const PlatformWheelEvent&) override { return false; }
+ bool allowsVerticalStretching(const PlatformWheelEvent&) override { return false; }
+ IntSize stretchAmount() override { return IntSize(); }
+ bool pinnedInDirection(const FloatSize&) override { return false; }
+ bool canScrollHorizontally() override { return false; }
+ bool canScrollVertically() override { return false; }
+ bool shouldRubberBandInDirection(ScrollDirection) override { return false; }
+ void immediateScrollBy(const FloatSize&) override { }
+ void immediateScrollByWithoutContentEdgeConstraints(const FloatSize&) override { }
+ void adjustScrollPositionToBoundsIfNecessary() override { }
+#endif
+
+private:
+ void didAddVerticalScrollbar(Scrollbar*) override;
+ void didAddHorizontalScrollbar(Scrollbar*) override;
+ void willRemoveVerticalScrollbar(Scrollbar*) override;
+ void willRemoveHorizontalScrollbar(Scrollbar*) override;
+ void mouseEnteredContentArea() override;
+ void mouseMovedInContentArea() override;
+ void mouseExitedContentArea() override;
+ void mouseEnteredScrollbar(Scrollbar*) const override;
+ void mouseExitedScrollbar(Scrollbar*) const override;
+ void mouseIsDownInScrollbar(Scrollbar*, bool) const override;
+
+ std::function<void(const String&)> m_logger;
+ Scrollbar* m_verticalScrollbar { nullptr };
+ Scrollbar* m_horizontalScrollbar { nullptr };
+};
+
+} // namespace WebCore
+
+#endif // ScrollAnimatorMock_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmockScrollbarThemeMockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/ScrollbarThemeMock.cpp (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/ScrollbarThemeMock.cpp        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/platform/mock/ScrollbarThemeMock.cpp        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -27,6 +27,8 @@
</span><span class="cx"> #include "ScrollbarThemeMock.h"
</span><span class="cx">
</span><span class="cx"> #include "Scrollbar.h"
</span><ins>+// FIXME: This is a layering violation.
+#include "Settings.h"
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -53,5 +55,12 @@
</span><span class="cx"> context.fillRect(thumbRect, Color::darkGray);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+bool ScrollbarThemeMock::usesOverlayScrollbars() const
+{
+ // FIXME: This is a layering violation, but ScrollbarThemeMock is also created depending on settings in platform layer,
+ // we should fix it in both places.
+ return Settings::usesOverlayScrollbars();
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+}
+
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmockScrollbarThemeMockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/ScrollbarThemeMock.h (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/ScrollbarThemeMock.h        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/platform/mock/ScrollbarThemeMock.h        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -46,7 +46,8 @@
</span><span class="cx"> virtual void paintTrackBackground(GraphicsContext&, Scrollbar&, const IntRect&) override;
</span><span class="cx"> virtual void paintThumb(GraphicsContext&, Scrollbar&, const IntRect&) override;
</span><span class="cx"> virtual int maxOverlapBetweenPages() override { return 40; }
</span><del>-
</del><ins>+
+ virtual bool usesOverlayScrollbars() const override;
</ins><span class="cx"> private:
</span><span class="cx"> virtual bool isMockTheme() const override { return true; }
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -3226,6 +3226,16 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+bool RenderLayer::usesMockScrollAnimator() const
+{
+ return Settings::usesMockScrollAnimator();
+}
+
+void RenderLayer::logMockScrollAnimatorMessage(const String& message) const
+{
+ renderer().document().addConsoleMessage(MessageSource::Other, MessageLevel::Debug, "RenderLayer: " + message);
+}
+
</ins><span class="cx"> int RenderLayer::verticalScrollbarWidth(OverlayScrollbarSizeRelevancy relevancy) const
</span><span class="cx"> {
</span><span class="cx"> if (!m_vBar
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.h (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.h        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/rendering/RenderLayer.h        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -884,6 +884,8 @@
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><span class="cx"> bool isScrollSnapInProgress() const override;
</span><span class="cx"> #endif
</span><ins>+ bool usesMockScrollAnimator() const override;
+ void logMockScrollAnimatorMessage(const String&) const override;
</ins><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> void registerAsTouchEventListenerForScrolling();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderListBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderListBox.cpp (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderListBox.cpp        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/rendering/RenderListBox.cpp        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -819,6 +819,16 @@
</span><span class="cx"> return absoluteBoundingBoxRect();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+bool RenderListBox::usesMockScrollAnimator() const
+{
+ return Settings::usesMockScrollAnimator();
+}
+
+void RenderListBox::logMockScrollAnimatorMessage(const String& message) const
+{
+ document().addConsoleMessage(MessageSource::Other, MessageLevel::Debug, "RenderListBox: " + message);
+}
+
</ins><span class="cx"> PassRefPtr<Scrollbar> RenderListBox::createScrollbar()
</span><span class="cx"> {
</span><span class="cx"> RefPtr<Scrollbar> widget;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderListBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderListBox.h (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderListBox.h        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/rendering/RenderListBox.h        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -136,6 +136,8 @@
</span><span class="cx"> virtual bool isScrollableOrRubberbandable() override;
</span><span class="cx"> virtual bool hasScrollableOrRubberbandableAncestor() override;
</span><span class="cx"> virtual IntRect scrollableAreaBoundingBox(bool* = nullptr) const override;
</span><ins>+ bool usesMockScrollAnimator() const override;
+ void logMockScrollAnimatorMessage(const String&) const override;
</ins><span class="cx">
</span><span class="cx"> // NOTE: This should only be called by the overriden setScrollOffset from ScrollableArea.
</span><span class="cx"> void scrollTo(int newOffset);
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/testing/Internals.cpp        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -374,6 +374,7 @@
</span><span class="cx">
</span><span class="cx"> WebCore::overrideUserPreferredLanguages(Vector<String>());
</span><span class="cx"> WebCore::Settings::setUsesOverlayScrollbars(false);
</span><ins>+ WebCore::Settings::setUsesMockScrollAnimator(false);
</ins><span class="cx"> page->inspectorController().setLegacyProfilerEnabled(false);
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx"> page->group().captionPreferences().setCaptionsStyleSheetOverride(emptyString());
</span><span class="lines">@@ -2675,6 +2676,11 @@
</span><span class="cx"> WebCore::Settings::setUsesOverlayScrollbars(enabled);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void Internals::setUsesMockScrollAnimator(bool enabled)
+{
+ WebCore::Settings::setUsesMockScrollAnimator(enabled);
+}
+
</ins><span class="cx"> void Internals::forceReload(bool endToEnd)
</span><span class="cx"> {
</span><span class="cx"> frame()->loader().reload(endToEnd);
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.h (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.h        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/testing/Internals.h        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -346,6 +346,7 @@
</span><span class="cx"> bool isFromCurrentWorld(Deprecated::ScriptValue) const;
</span><span class="cx">
</span><span class="cx"> void setUsesOverlayScrollbars(bool enabled);
</span><ins>+ void setUsesMockScrollAnimator(bool enabled);
</ins><span class="cx">
</span><span class="cx"> String getCurrentCursorInfo(ExceptionCode&);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.idl (196687 => 196688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.idl        2016-02-17 06:54:03 UTC (rev 196687)
+++ trunk/Source/WebCore/testing/Internals.idl        2016-02-17 07:16:40 UTC (rev 196688)
</span><span class="lines">@@ -347,6 +347,7 @@
</span><span class="cx"> boolean isFromCurrentWorld(any obj);
</span><span class="cx">
</span><span class="cx"> void setUsesOverlayScrollbars(boolean enabled);
</span><ins>+ void setUsesMockScrollAnimator(boolean enabled);
</ins><span class="cx">
</span><span class="cx"> void forceReload(boolean endToEnd);
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>