<!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>[189270] trunk/Source</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/189270">189270</a></dd>
<dt>Author</dt> <dd>akling@apple.com</dd>
<dt>Date</dt> <dd>2015-09-02 19:58:14 -0700 (Wed, 02 Sep 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>ScrollbarThemes should be returned by reference.
&lt;https://webkit.org/b/147551&gt;

Reviewed by Zalan Bujtas.

Source/WebCore:

There's always a ScrollbarTheme of some type, so have ScrollbarTheme getters
return references all around.

* css/SelectorCheckerTestFunctions.h:
(WebCore::scrollbarMatchesDoubleButtonPseudoClass):
(WebCore::scrollbarMatchesSingleButtonPseudoClass):
(WebCore::scrollbarMatchesNoButtonPseudoClass):
* html/shadow/SpinButtonElement.cpp:
(WebCore::SpinButtonElement::startRepeatingTimer):
* page/PageOverlay.cpp:
(WebCore::PageOverlay::bounds):
* page/scrolling/mac/ScrollingStateFrameScrollingNodeMac.mm:
(WebCore::ScrollingStateFrameScrollingNode::setScrollbarPaintersFromScrollbars):
* platform/ScrollView.cpp:
(WebCore::ScrollView::paintScrollCorner):
(WebCore::ScrollView::paintOverhangAreas):
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::setScrollbarOverlayStyle):
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::maxOverlapBetweenPages):
(WebCore::Scrollbar::Scrollbar):
(WebCore::Scrollbar::~Scrollbar):
(WebCore::Scrollbar::offsetDidChange):
(WebCore::Scrollbar::updateThumb):
(WebCore::Scrollbar::paint):
(WebCore::Scrollbar::autoscrollTimerFired):
(WebCore::thumbUnderMouse):
(WebCore::Scrollbar::autoscrollPressedPart):
(WebCore::Scrollbar::startTimerIfNeeded):
(WebCore::Scrollbar::moveThumb):
(WebCore::Scrollbar::setHoveredPart):
(WebCore::Scrollbar::setPressedPart):
(WebCore::Scrollbar::mouseMoved):
(WebCore::Scrollbar::mouseUp):
(WebCore::Scrollbar::mouseDown):
(WebCore::Scrollbar::setEnabled):
(WebCore::Scrollbar::isOverlayScrollbar):
* platform/Scrollbar.h:
(WebCore::Scrollbar::theme):
* platform/ScrollbarTheme.cpp:
(WebCore::ScrollbarTheme::theme):
* platform/ScrollbarTheme.h:
* platform/efl/ScrollbarThemeEfl.cpp:
(WebCore::ScrollbarTheme::nativeTheme):
* platform/gtk/ScrollbarThemeGtk.cpp:
(WebCore::ScrollbarTheme::nativeTheme):
* platform/ios/ScrollbarThemeIOS.mm:
(WebCore::ScrollbarTheme::nativeTheme):
* platform/mac/ScrollAnimatorMac.mm:
(macScrollbarTheme):
* platform/mac/ScrollbarThemeMac.mm:
(+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
(+[WebScrollbarPrefsObserver behaviorPrefsChanged:]):
(WebCore::ScrollbarTheme::nativeTheme):
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::calculatePositionAndSize):
(WebCore::AccessiblePopupMenu::accLocation):
(WebCore::AccessiblePopupMenu::accHitTest):
* platform/win/ScrollbarThemeSafari.cpp:
(WebCore::ScrollbarTheme::nativeTheme):
* platform/win/ScrollbarThemeWin.cpp:
(WebCore::ScrollbarTheme::nativeTheme):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::hasVerticalScrollbarWithAutoBehavior):
(WebCore::RenderBox::hasHorizontalScrollbarWithAutoBehavior):
* rendering/RenderLayer.cpp:
(WebCore::cornerRect):
(WebCore::styleRequiresScrollbar):
(WebCore::styleDefinesAutomaticScrollbar):
* rendering/RenderScrollbar.cpp:
(WebCore::RenderScrollbar::updateScrollbarPart):
* rendering/RenderScrollbarPart.cpp:
(WebCore::calcScrollbarThicknessUsing):
(WebCore::RenderScrollbarPart::styleDidChange):
(WebCore::RenderScrollbarPart::imageChanged):
* rendering/RenderScrollbarTheme.cpp:
(WebCore::RenderScrollbarTheme::paintTickmarks):
* rendering/RenderScrollbarTheme.h:
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::scrollbarThickness):

Source/WebKit/win:

* WebView.cpp:
(WebView::gestureNotify):
(WebView::WebViewWndProc):

Source/WebKit2:

* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::paintControlForLayerInContext):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssSelectorCheckerTestFunctionsh">trunk/Source/WebCore/css/SelectorCheckerTestFunctions.h</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowSpinButtonElementcpp">trunk/Source/WebCore/html/shadow/SpinButtonElement.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageOverlaycpp">trunk/Source/WebCore/page/PageOverlay.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingmacScrollingStateFrameScrollingNodeMacmm">trunk/Source/WebCore/page/scrolling/mac/ScrollingStateFrameScrollingNodeMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollViewcpp">trunk/Source/WebCore/platform/ScrollView.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollableAreacpp">trunk/Source/WebCore/platform/ScrollableArea.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollbarcpp">trunk/Source/WebCore/platform/Scrollbar.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollbarh">trunk/Source/WebCore/platform/Scrollbar.h</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollbarThemecpp">trunk/Source/WebCore/platform/ScrollbarTheme.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollbarThemeh">trunk/Source/WebCore/platform/ScrollbarTheme.h</a></li>
<li><a href="#trunkSourceWebCoreplatformeflScrollbarThemeEflcpp">trunk/Source/WebCore/platform/efl/ScrollbarThemeEfl.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgtkScrollbarThemeGtkcpp">trunk/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformiosScrollbarThemeIOSmm">trunk/Source/WebCore/platform/ios/ScrollbarThemeIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacScrollAnimatorMacmm">trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacScrollbarThemeMacmm">trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformwinPopupMenuWincpp">trunk/Source/WebCore/platform/win/PopupMenuWin.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformwinScrollbarThemeSafaricpp">trunk/Source/WebCore/platform/win/ScrollbarThemeSafari.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformwinScrollbarThemeWincpp">trunk/Source/WebCore/platform/win/ScrollbarThemeWin.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxcpp">trunk/Source/WebCore/rendering/RenderBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayercpp">trunk/Source/WebCore/rendering/RenderLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderScrollbarcpp">trunk/Source/WebCore/rendering/RenderScrollbar.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderScrollbarPartcpp">trunk/Source/WebCore/rendering/RenderScrollbarPart.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderScrollbarThemecpp">trunk/Source/WebCore/rendering/RenderScrollbarTheme.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderScrollbarThemeh">trunk/Source/WebCore/rendering/RenderScrollbarTheme.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlcpp">trunk/Source/WebCore/rendering/RenderTextControl.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeEflcpp">trunk/Source/WebCore/rendering/RenderThemeEfl.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeGtkcpp">trunk/Source/WebCore/rendering/RenderThemeGtk.cpp</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinWebViewcpp">trunk/Source/WebKit/win/WebView.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFPDFPluginmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/ChangeLog        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -1,3 +1,91 @@
</span><ins>+2015-09-02  Andreas Kling  &lt;akling@apple.com&gt;
+
+        ScrollbarThemes should be returned by reference.
+        &lt;https://webkit.org/b/147551&gt;
+
+        Reviewed by Zalan Bujtas.
+
+        There's always a ScrollbarTheme of some type, so have ScrollbarTheme getters
+        return references all around.
+
+        * css/SelectorCheckerTestFunctions.h:
+        (WebCore::scrollbarMatchesDoubleButtonPseudoClass):
+        (WebCore::scrollbarMatchesSingleButtonPseudoClass):
+        (WebCore::scrollbarMatchesNoButtonPseudoClass):
+        * html/shadow/SpinButtonElement.cpp:
+        (WebCore::SpinButtonElement::startRepeatingTimer):
+        * page/PageOverlay.cpp:
+        (WebCore::PageOverlay::bounds):
+        * page/scrolling/mac/ScrollingStateFrameScrollingNodeMac.mm:
+        (WebCore::ScrollingStateFrameScrollingNode::setScrollbarPaintersFromScrollbars):
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::paintScrollCorner):
+        (WebCore::ScrollView::paintOverhangAreas):
+        * platform/ScrollableArea.cpp:
+        (WebCore::ScrollableArea::setScrollbarOverlayStyle):
+        * platform/Scrollbar.cpp:
+        (WebCore::Scrollbar::maxOverlapBetweenPages):
+        (WebCore::Scrollbar::Scrollbar):
+        (WebCore::Scrollbar::~Scrollbar):
+        (WebCore::Scrollbar::offsetDidChange):
+        (WebCore::Scrollbar::updateThumb):
+        (WebCore::Scrollbar::paint):
+        (WebCore::Scrollbar::autoscrollTimerFired):
+        (WebCore::thumbUnderMouse):
+        (WebCore::Scrollbar::autoscrollPressedPart):
+        (WebCore::Scrollbar::startTimerIfNeeded):
+        (WebCore::Scrollbar::moveThumb):
+        (WebCore::Scrollbar::setHoveredPart):
+        (WebCore::Scrollbar::setPressedPart):
+        (WebCore::Scrollbar::mouseMoved):
+        (WebCore::Scrollbar::mouseUp):
+        (WebCore::Scrollbar::mouseDown):
+        (WebCore::Scrollbar::setEnabled):
+        (WebCore::Scrollbar::isOverlayScrollbar):
+        * platform/Scrollbar.h:
+        (WebCore::Scrollbar::theme):
+        * platform/ScrollbarTheme.cpp:
+        (WebCore::ScrollbarTheme::theme):
+        * platform/ScrollbarTheme.h:
+        * platform/efl/ScrollbarThemeEfl.cpp:
+        (WebCore::ScrollbarTheme::nativeTheme):
+        * platform/gtk/ScrollbarThemeGtk.cpp:
+        (WebCore::ScrollbarTheme::nativeTheme):
+        * platform/ios/ScrollbarThemeIOS.mm:
+        (WebCore::ScrollbarTheme::nativeTheme):
+        * platform/mac/ScrollAnimatorMac.mm:
+        (macScrollbarTheme):
+        * platform/mac/ScrollbarThemeMac.mm:
+        (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
+        (+[WebScrollbarPrefsObserver behaviorPrefsChanged:]):
+        (WebCore::ScrollbarTheme::nativeTheme):
+        * platform/win/PopupMenuWin.cpp:
+        (WebCore::PopupMenuWin::calculatePositionAndSize):
+        (WebCore::AccessiblePopupMenu::accLocation):
+        (WebCore::AccessiblePopupMenu::accHitTest):
+        * platform/win/ScrollbarThemeSafari.cpp:
+        (WebCore::ScrollbarTheme::nativeTheme):
+        * platform/win/ScrollbarThemeWin.cpp:
+        (WebCore::ScrollbarTheme::nativeTheme):
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::hasVerticalScrollbarWithAutoBehavior):
+        (WebCore::RenderBox::hasHorizontalScrollbarWithAutoBehavior):
+        * rendering/RenderLayer.cpp:
+        (WebCore::cornerRect):
+        (WebCore::styleRequiresScrollbar):
+        (WebCore::styleDefinesAutomaticScrollbar):
+        * rendering/RenderScrollbar.cpp:
+        (WebCore::RenderScrollbar::updateScrollbarPart):
+        * rendering/RenderScrollbarPart.cpp:
+        (WebCore::calcScrollbarThicknessUsing):
+        (WebCore::RenderScrollbarPart::styleDidChange):
+        (WebCore::RenderScrollbarPart::imageChanged):
+        * rendering/RenderScrollbarTheme.cpp:
+        (WebCore::RenderScrollbarTheme::paintTickmarks):
+        * rendering/RenderScrollbarTheme.h:
+        * rendering/RenderTextControl.cpp:
+        (WebCore::RenderTextControl::scrollbarThickness):
+
</ins><span class="cx"> 2015-09-02  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Node.textContent = undefined should be equivalent to textContent = &quot;&quot;
</span></span></pre></div>
<a id="trunkSourceWebCorecssSelectorCheckerTestFunctionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/SelectorCheckerTestFunctions.h (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SelectorCheckerTestFunctions.h        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/css/SelectorCheckerTestFunctions.h        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -288,7 +288,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!context.scrollbar)
</span><span class="cx">         return false;
</span><del>-    ScrollbarButtonsPlacement buttonsPlacement = context.scrollbar-&gt;theme()-&gt;buttonsPlacement();
</del><ins>+    ScrollbarButtonsPlacement buttonsPlacement = context.scrollbar-&gt;theme().buttonsPlacement();
</ins><span class="cx">     if (context.scrollbarPart == BackButtonStartPart || context.scrollbarPart == ForwardButtonStartPart || context.scrollbarPart == BackTrackPart)
</span><span class="cx">         return buttonsPlacement == ScrollbarButtonsDoubleStart || buttonsPlacement == ScrollbarButtonsDoubleBoth;
</span><span class="cx">     if (context.scrollbarPart == BackButtonEndPart || context.scrollbarPart == ForwardButtonEndPart || context.scrollbarPart == ForwardTrackPart)
</span><span class="lines">@@ -300,7 +300,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!context.scrollbar)
</span><span class="cx">         return false;
</span><del>-    ScrollbarButtonsPlacement buttonsPlacement = context.scrollbar-&gt;theme()-&gt;buttonsPlacement();
</del><ins>+    ScrollbarButtonsPlacement buttonsPlacement = context.scrollbar-&gt;theme().buttonsPlacement();
</ins><span class="cx">     if (context.scrollbarPart == BackButtonStartPart || context.scrollbarPart == ForwardButtonEndPart || context.scrollbarPart == BackTrackPart || context.scrollbarPart == ForwardTrackPart)
</span><span class="cx">         return buttonsPlacement == ScrollbarButtonsSingle;
</span><span class="cx">     return false;
</span><span class="lines">@@ -310,7 +310,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!context.scrollbar)
</span><span class="cx">         return false;
</span><del>-    ScrollbarButtonsPlacement buttonsPlacement = context.scrollbar-&gt;theme()-&gt;buttonsPlacement();
</del><ins>+    ScrollbarButtonsPlacement buttonsPlacement = context.scrollbar-&gt;theme().buttonsPlacement();
</ins><span class="cx">     if (context.scrollbarPart == BackTrackPart)
</span><span class="cx">         return buttonsPlacement == ScrollbarButtonsNone || buttonsPlacement == ScrollbarButtonsDoubleEnd;
</span><span class="cx">     if (context.scrollbarPart == ForwardTrackPart)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowSpinButtonElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/SpinButtonElement.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/SpinButtonElement.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/html/shadow/SpinButtonElement.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -207,8 +207,8 @@
</span><span class="cx"> void SpinButtonElement::startRepeatingTimer()
</span><span class="cx"> {
</span><span class="cx">     m_pressStartingState = m_upDownState;
</span><del>-    ScrollbarTheme* theme = ScrollbarTheme::theme();
-    m_repeatingTimer.start(theme-&gt;initialAutoscrollTimerDelay(), theme-&gt;autoscrollTimerDelay());
</del><ins>+    ScrollbarTheme&amp; theme = ScrollbarTheme::theme();
+    m_repeatingTimer.start(theme.initialAutoscrollTimerDelay(), theme.autoscrollTimerDelay());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SpinButtonElement::stopRepeatingTimer()
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageOverlaycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PageOverlay.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageOverlay.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/page/PageOverlay.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx">         int width = frameView-&gt;width();
</span><span class="cx">         int height = frameView-&gt;height();
</span><span class="cx"> 
</span><del>-        if (!ScrollbarTheme::theme()-&gt;usesOverlayScrollbars()) {
</del><ins>+        if (!ScrollbarTheme::theme().usesOverlayScrollbars()) {
</ins><span class="cx">             if (frameView-&gt;verticalScrollbar())
</span><span class="cx">                 width -= frameView-&gt;verticalScrollbar()-&gt;width();
</span><span class="cx">             if (frameView-&gt;horizontalScrollbar())
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingmacScrollingStateFrameScrollingNodeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingStateFrameScrollingNodeMac.mm (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/mac/ScrollingStateFrameScrollingNodeMac.mm        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingStateFrameScrollingNodeMac.mm        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -37,15 +37,15 @@
</span><span class="cx">     
</span><span class="cx"> void ScrollingStateFrameScrollingNode::setScrollbarPaintersFromScrollbars(Scrollbar* verticalScrollbar, Scrollbar* horizontalScrollbar)
</span><span class="cx"> {
</span><del>-    ScrollbarTheme* scrollbarTheme = ScrollbarTheme::theme();
-    if (scrollbarTheme-&gt;isMockTheme())
</del><ins>+    ScrollbarTheme&amp; scrollbarTheme = ScrollbarTheme::theme();
+    if (scrollbarTheme.isMockTheme())
</ins><span class="cx">         return;
</span><del>-    ScrollbarThemeMac* macTheme = static_cast&lt;ScrollbarThemeMac*&gt;(scrollbarTheme);
</del><ins>+    ScrollbarThemeMac&amp; macTheme = static_cast&lt;ScrollbarThemeMac&amp;&gt;(scrollbarTheme);
</ins><span class="cx"> 
</span><span class="cx">     ScrollbarPainter verticalPainter = verticalScrollbar &amp;&amp; verticalScrollbar-&gt;supportsUpdateOnSecondaryThread()
</span><del>-        ? macTheme-&gt;painterForScrollbar(*verticalScrollbar) : nullptr;
</del><ins>+        ? macTheme.painterForScrollbar(*verticalScrollbar) : nullptr;
</ins><span class="cx">     ScrollbarPainter horizontalPainter = horizontalScrollbar &amp;&amp; horizontalScrollbar-&gt;supportsUpdateOnSecondaryThread()
</span><del>-        ? macTheme-&gt;painterForScrollbar(*horizontalScrollbar) : nullptr;
</del><ins>+        ? macTheme.painterForScrollbar(*horizontalScrollbar) : nullptr;
</ins><span class="cx"> 
</span><span class="cx">     if (m_verticalScrollbarPainter == verticalPainter &amp;&amp; m_horizontalScrollbarPainter == horizontalPainter)
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollView.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollView.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/ScrollView.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -1149,7 +1149,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ScrollView::paintScrollCorner(GraphicsContext&amp; context, const IntRect&amp; cornerRect)
</span><span class="cx"> {
</span><del>-    ScrollbarTheme::theme()-&gt;paintScrollCorner(this, context, cornerRect);
</del><ins>+    ScrollbarTheme::theme().paintScrollCorner(this, context, cornerRect);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollView::paintScrollbar(GraphicsContext&amp; context, Scrollbar&amp; bar, const IntRect&amp; rect)
</span><span class="lines">@@ -1301,7 +1301,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ScrollView::paintOverhangAreas(GraphicsContext&amp; context, const IntRect&amp; horizontalOverhangRect, const IntRect&amp; verticalOverhangRect, const IntRect&amp; dirtyRect)
</span><span class="cx"> {
</span><del>-    ScrollbarTheme::theme()-&gt;paintOverhangAreas(*this, context, horizontalOverhangRect, verticalOverhangRect, dirtyRect);
</del><ins>+    ScrollbarTheme::theme().paintOverhangAreas(*this, context, horizontalOverhangRect, verticalOverhangRect, dirtyRect);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollView::calculateAndPaintOverhangAreas(GraphicsContext&amp; context, const IntRect&amp; dirtyRect)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollableAreacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollableArea.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollableArea.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/ScrollableArea.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -339,14 +339,14 @@
</span><span class="cx">     m_scrollbarOverlayStyle = overlayStyle;
</span><span class="cx"> 
</span><span class="cx">     if (horizontalScrollbar()) {
</span><del>-        ScrollbarTheme::theme()-&gt;updateScrollbarOverlayStyle(*horizontalScrollbar());
</del><ins>+        ScrollbarTheme::theme().updateScrollbarOverlayStyle(*horizontalScrollbar());
</ins><span class="cx">         horizontalScrollbar()-&gt;invalidate();
</span><span class="cx">         if (ScrollAnimator* scrollAnimator = existingScrollAnimator())
</span><span class="cx">             scrollAnimator-&gt;invalidateScrollbarPartLayers(horizontalScrollbar());
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (verticalScrollbar()) {
</span><del>-        ScrollbarTheme::theme()-&gt;updateScrollbarOverlayStyle(*verticalScrollbar());
</del><ins>+        ScrollbarTheme::theme().updateScrollbarOverlayStyle(*verticalScrollbar());
</ins><span class="cx">         verticalScrollbar()-&gt;invalidate();
</span><span class="cx">         if (ScrollAnimator* scrollAnimator = existingScrollAnimator())
</span><span class="cx">             scrollAnimator-&gt;invalidateScrollbarPartLayers(verticalScrollbar());
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollbarcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/Scrollbar.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/Scrollbar.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/Scrollbar.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -50,16 +50,15 @@
</span><span class="cx"> 
</span><span class="cx"> int Scrollbar::maxOverlapBetweenPages()
</span><span class="cx"> {
</span><del>-    static int maxOverlapBetweenPages = ScrollbarTheme::theme()-&gt;maxOverlapBetweenPages();
</del><ins>+    static int maxOverlapBetweenPages = ScrollbarTheme::theme().maxOverlapBetweenPages();
</ins><span class="cx">     return maxOverlapBetweenPages;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Scrollbar::Scrollbar(ScrollableArea&amp; scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize controlSize,
-    ScrollbarTheme* theme, bool isCustomScrollbar)
</del><ins>+Scrollbar::Scrollbar(ScrollableArea&amp; scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize controlSize, ScrollbarTheme* customTheme, bool isCustomScrollbar)
</ins><span class="cx">     : m_scrollableArea(scrollableArea)
</span><span class="cx">     , m_orientation(orientation)
</span><span class="cx">     , m_controlSize(controlSize)
</span><del>-    , m_theme(theme)
</del><ins>+    , m_theme(customTheme ? *customTheme : ScrollbarTheme::theme())
</ins><span class="cx">     , m_visibleSize(0)
</span><span class="cx">     , m_totalSize(0)
</span><span class="cx">     , m_currentPos(0)
</span><span class="lines">@@ -80,15 +79,12 @@
</span><span class="cx">     , m_isCustomScrollbar(isCustomScrollbar)
</span><span class="cx">     , m_weakPtrFactory(this)
</span><span class="cx"> {
</span><del>-    if (!m_theme)
-        m_theme = ScrollbarTheme::theme();
</del><ins>+    theme().registerScrollbar(*this);
</ins><span class="cx"> 
</span><del>-    m_theme-&gt;registerScrollbar(*this);
-
</del><span class="cx">     // FIXME: This is ugly and would not be necessary if we fix cross-platform code to actually query for
</span><span class="cx">     // scrollbar thickness and use it when sizing scrollbars (rather than leaving one dimension of the scrollbar
</span><span class="cx">     // alone when sizing).
</span><del>-    int thickness = m_theme-&gt;scrollbarThickness(controlSize);
</del><ins>+    int thickness = theme().scrollbarThickness(controlSize);
</ins><span class="cx">     Widget::setFrameRect(IntRect(0, 0, thickness, thickness));
</span><span class="cx"> 
</span><span class="cx">     m_currentPos = static_cast&lt;float&gt;(m_scrollableArea.scrollPosition(this));
</span><span class="lines">@@ -98,7 +94,7 @@
</span><span class="cx"> {
</span><span class="cx">     stopTimerIfNeeded();
</span><span class="cx">     
</span><del>-    m_theme-&gt;unregisterScrollbar(*this);
</del><ins>+    theme().unregisterScrollbar(*this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Scrollbar::offsetDidChange()
</span><span class="lines">@@ -107,11 +103,11 @@
</span><span class="cx">     if (position == m_currentPos)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    int oldThumbPosition = theme()-&gt;thumbPosition(*this);
</del><ins>+    int oldThumbPosition = theme().thumbPosition(*this);
</ins><span class="cx">     m_currentPos = position;
</span><span class="cx">     updateThumbPosition();
</span><span class="cx">     if (m_pressedPart == ThumbPart)
</span><del>-        setPressedPos(m_pressedPos + theme()-&gt;thumbPosition(*this) - oldThumbPosition);
</del><ins>+        setPressedPos(m_pressedPos + theme().thumbPosition(*this) - oldThumbPosition);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Scrollbar::setProportion(int visibleSize, int totalSize)
</span><span class="lines">@@ -137,7 +133,7 @@
</span><span class="cx"> #ifdef THUMB_POSITION_AFFECTS_BUTTONS
</span><span class="cx">     invalidate();
</span><span class="cx"> #else
</span><del>-    theme()-&gt;invalidateParts(*this, ForwardTrackPart | BackTrackPart | ThumbPart);
</del><ins>+    theme().invalidateParts(*this, ForwardTrackPart | BackTrackPart | ThumbPart);
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -153,7 +149,7 @@
</span><span class="cx"> 
</span><span class="cx"> void Scrollbar::paint(GraphicsContext&amp; context, const IntRect&amp; damageRect)
</span><span class="cx"> {
</span><del>-    if (context.updatingControlTints() &amp;&amp; theme()-&gt;supportsControlTints()) {
</del><ins>+    if (context.updatingControlTints() &amp;&amp; theme().supportsControlTints()) {
</ins><span class="cx">         invalidate();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -161,19 +157,19 @@
</span><span class="cx">     if (context.paintingDisabled() || !frameRect().intersects(damageRect))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (!theme()-&gt;paint(*this, context, damageRect))
</del><ins>+    if (!theme().paint(*this, context, damageRect))
</ins><span class="cx">         Widget::paint(context, damageRect);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Scrollbar::autoscrollTimerFired()
</span><span class="cx"> {
</span><del>-    autoscrollPressedPart(theme()-&gt;autoscrollTimerDelay());
</del><ins>+    autoscrollPressedPart(theme().autoscrollTimerDelay());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool thumbUnderMouse(Scrollbar* scrollbar)
</span><span class="cx"> {
</span><del>-    int thumbPos = scrollbar-&gt;theme()-&gt;trackPosition(*scrollbar) + scrollbar-&gt;theme()-&gt;thumbPosition(*scrollbar);
-    int thumbLength = scrollbar-&gt;theme()-&gt;thumbLength(*scrollbar);
</del><ins>+    int thumbPos = scrollbar-&gt;theme().trackPosition(*scrollbar) + scrollbar-&gt;theme().thumbPosition(*scrollbar);
+    int thumbLength = scrollbar-&gt;theme().thumbLength(*scrollbar);
</ins><span class="cx">     return scrollbar-&gt;pressedPos() &gt;= thumbPos &amp;&amp; scrollbar-&gt;pressedPos() &lt; thumbPos + thumbLength;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -185,7 +181,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Handle the track.
</span><span class="cx">     if ((m_pressedPart == BackTrackPart || m_pressedPart == ForwardTrackPart) &amp;&amp; thumbUnderMouse(this)) {
</span><del>-        theme()-&gt;invalidatePart(*this, m_pressedPart);
</del><ins>+        theme().invalidatePart(*this, m_pressedPart);
</ins><span class="cx">         setHoveredPart(ThumbPart);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -204,7 +200,7 @@
</span><span class="cx">     // Handle the track.  We halt track scrolling once the thumb is level
</span><span class="cx">     // with us.
</span><span class="cx">     if ((m_pressedPart == BackTrackPart || m_pressedPart == ForwardTrackPart) &amp;&amp; thumbUnderMouse(this)) {
</span><del>-        theme()-&gt;invalidatePart(*this, m_pressedPart);
</del><ins>+        theme().invalidatePart(*this, m_pressedPart);
</ins><span class="cx">         setHoveredPart(ThumbPart);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -273,9 +269,9 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Drag the thumb.
</span><del>-    int thumbPos = theme()-&gt;thumbPosition(*this);
-    int thumbLen = theme()-&gt;thumbLength(*this);
-    int trackLen = theme()-&gt;trackLength(*this);
</del><ins>+    int thumbPos = theme().thumbPosition(*this);
+    int thumbLen = theme().thumbLength(*this);
+    int trackLen = theme().trackLength(*this);
</ins><span class="cx">     int maxPos = trackLen - thumbLen;
</span><span class="cx">     if (delta &gt; 0)
</span><span class="cx">         delta = std::min(maxPos - thumbPos, delta);
</span><span class="lines">@@ -293,11 +289,11 @@
</span><span class="cx">     if (part == m_hoveredPart)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if ((m_hoveredPart == NoPart || part == NoPart) &amp;&amp; theme()-&gt;invalidateOnMouseEnterExit())
</del><ins>+    if ((m_hoveredPart == NoPart || part == NoPart) &amp;&amp; theme().invalidateOnMouseEnterExit())
</ins><span class="cx">         invalidate();  // Just invalidate the whole scrollbar, since the buttons at either end change anyway.
</span><span class="cx">     else if (m_pressedPart == NoPart) {  // When there's a pressed part, we don't draw a hovered state, so there's no reason to invalidate.
</span><del>-        theme()-&gt;invalidatePart(*this, part);
-        theme()-&gt;invalidatePart(*this, m_hoveredPart);
</del><ins>+        theme().invalidatePart(*this, part);
+        theme().invalidatePart(*this, m_hoveredPart);
</ins><span class="cx">     }
</span><span class="cx">     m_hoveredPart = part;
</span><span class="cx"> }
</span><span class="lines">@@ -305,24 +301,24 @@
</span><span class="cx"> void Scrollbar::setPressedPart(ScrollbarPart part)
</span><span class="cx"> {
</span><span class="cx">     if (m_pressedPart != NoPart)
</span><del>-        theme()-&gt;invalidatePart(*this, m_pressedPart);
</del><ins>+        theme().invalidatePart(*this, m_pressedPart);
</ins><span class="cx">     m_pressedPart = part;
</span><span class="cx">     if (m_pressedPart != NoPart)
</span><del>-        theme()-&gt;invalidatePart(*this, m_pressedPart);
</del><ins>+        theme().invalidatePart(*this, m_pressedPart);
</ins><span class="cx">     else if (m_hoveredPart != NoPart)  // When we no longer have a pressed part, we can start drawing a hovered state on the hovered part.
</span><del>-        theme()-&gt;invalidatePart(*this, m_hoveredPart);
</del><ins>+        theme().invalidatePart(*this, m_hoveredPart);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx"> bool Scrollbar::mouseMoved(const PlatformMouseEvent&amp; evt)
</span><span class="cx"> {
</span><span class="cx">     if (m_pressedPart == ThumbPart) {
</span><del>-        if (theme()-&gt;shouldSnapBackToDragOrigin(*this, evt))
</del><ins>+        if (theme().shouldSnapBackToDragOrigin(*this, evt))
</ins><span class="cx">             m_scrollableArea.scrollToOffsetWithoutAnimation(m_orientation, m_dragOrigin);
</span><span class="cx">         else {
</span><span class="cx">             moveThumb(m_orientation == HorizontalScrollbar ? 
</span><span class="cx">                       convertFromContainingWindow(evt.position()).x() :
</span><del>-                      convertFromContainingWindow(evt.position()).y(), theme()-&gt;shouldDragDocumentInsteadOfThumb(*this, evt));
</del><ins>+                      convertFromContainingWindow(evt.position()).y(), theme().shouldDragDocumentInsteadOfThumb(*this, evt));
</ins><span class="cx">         }
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="lines">@@ -330,19 +326,19 @@
</span><span class="cx">     if (m_pressedPart != NoPart)
</span><span class="cx">         m_pressedPos = (orientation() == HorizontalScrollbar ? convertFromContainingWindow(evt.position()).x() : convertFromContainingWindow(evt.position()).y());
</span><span class="cx"> 
</span><del>-    ScrollbarPart part = theme()-&gt;hitTest(*this, evt.position());
</del><ins>+    ScrollbarPart part = theme().hitTest(*this, evt.position());
</ins><span class="cx">     if (part != m_hoveredPart) {
</span><span class="cx">         if (m_pressedPart != NoPart) {
</span><span class="cx">             if (part == m_pressedPart) {
</span><span class="cx">                 // The mouse is moving back over the pressed part.  We
</span><span class="cx">                 // need to start up the timer action again.
</span><del>-                startTimerIfNeeded(theme()-&gt;autoscrollTimerDelay());
-                theme()-&gt;invalidatePart(*this, m_pressedPart);
</del><ins>+                startTimerIfNeeded(theme().autoscrollTimerDelay());
+                theme().invalidatePart(*this, m_pressedPart);
</ins><span class="cx">             } else if (m_hoveredPart == m_pressedPart) {
</span><span class="cx">                 // The mouse is leaving the pressed part.  Kill our timer
</span><span class="cx">                 // if needed.
</span><span class="cx">                 stopTimerIfNeeded();
</span><del>-                theme()-&gt;invalidatePart(*this, m_pressedPart);
</del><ins>+                theme().invalidatePart(*this, m_pressedPart);
</ins><span class="cx">             }
</span><span class="cx">         } 
</span><span class="cx">         
</span><span class="lines">@@ -374,7 +370,7 @@
</span><span class="cx"> 
</span><span class="cx">     // m_hoveredPart won't be updated until the next mouseMoved or mouseDown, so we have to hit test
</span><span class="cx">     // to really know if the mouse has exited the scrollbar on a mouseUp.
</span><del>-    ScrollbarPart part = theme()-&gt;hitTest(*this, mouseEvent.position());
</del><ins>+    ScrollbarPart part = theme().hitTest(*this, mouseEvent.position());
</ins><span class="cx">     if (part == NoPart)
</span><span class="cx">         m_scrollableArea.mouseExitedScrollbar(this);
</span><span class="cx"> 
</span><span class="lines">@@ -387,18 +383,18 @@
</span><span class="cx">     if (evt.button() == RightButton)
</span><span class="cx">         return true; // FIXME: Handled as context menu by Qt right now.  Should just avoid even calling this method on a right click though.
</span><span class="cx"> 
</span><del>-    setPressedPart(theme()-&gt;hitTest(*this, evt.position()));
</del><ins>+    setPressedPart(theme().hitTest(*this, evt.position()));
</ins><span class="cx">     int pressedPos = (orientation() == HorizontalScrollbar ? convertFromContainingWindow(evt.position()).x() : convertFromContainingWindow(evt.position()).y());
</span><span class="cx">     
</span><del>-    if ((m_pressedPart == BackTrackPart || m_pressedPart == ForwardTrackPart) &amp;&amp; theme()-&gt;shouldCenterOnThumb(*this, evt)) {
</del><ins>+    if ((m_pressedPart == BackTrackPart || m_pressedPart == ForwardTrackPart) &amp;&amp; theme().shouldCenterOnThumb(*this, evt)) {
</ins><span class="cx">         setHoveredPart(ThumbPart);
</span><span class="cx">         setPressedPart(ThumbPart);
</span><span class="cx">         m_dragOrigin = m_currentPos;
</span><del>-        int thumbLen = theme()-&gt;thumbLength(*this);
</del><ins>+        int thumbLen = theme().thumbLength(*this);
</ins><span class="cx">         int desiredPos = pressedPos;
</span><span class="cx">         // Set the pressed position to the middle of the thumb so that when we do the move, the delta
</span><span class="cx">         // will be from the current pixel position of the thumb to the new desired position for the thumb.
</span><del>-        m_pressedPos = theme()-&gt;trackPosition(*this) + theme()-&gt;thumbPosition(*this) + thumbLen / 2;
</del><ins>+        m_pressedPos = theme().trackPosition(*this) + theme().thumbPosition(*this) + thumbLen / 2;
</ins><span class="cx">         moveThumb(desiredPos);
</span><span class="cx">         return true;
</span><span class="cx">     } else if (m_pressedPart == ThumbPart)
</span><span class="lines">@@ -406,7 +402,7 @@
</span><span class="cx">     
</span><span class="cx">     m_pressedPos = pressedPos;
</span><span class="cx"> 
</span><del>-    autoscrollPressedPart(theme()-&gt;initialAutoscrollTimerDelay());
</del><ins>+    autoscrollPressedPart(theme().initialAutoscrollTimerDelay());
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -415,13 +411,13 @@
</span><span class="cx">     if (m_enabled == e)
</span><span class="cx">         return;
</span><span class="cx">     m_enabled = e;
</span><del>-    theme()-&gt;updateEnabledState(*this);
</del><ins>+    theme().updateEnabledState(*this);
</ins><span class="cx">     invalidate();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Scrollbar::isOverlayScrollbar() const
</span><span class="cx"> {
</span><del>-    return m_theme-&gt;usesOverlayScrollbars();
</del><ins>+    return theme().usesOverlayScrollbars();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Scrollbar::shouldParticipateInHitTesting()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollbarh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/Scrollbar.h (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/Scrollbar.h        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/Scrollbar.h        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -107,7 +107,7 @@
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT bool mouseDown(const PlatformMouseEvent&amp;);
</span><span class="cx"> 
</span><del>-    ScrollbarTheme* theme() const { return m_theme; }
</del><ins>+    ScrollbarTheme&amp; theme() const { return m_theme; }
</ins><span class="cx"> 
</span><span class="cx">     virtual void invalidateRect(const IntRect&amp;) override;
</span><span class="cx"> 
</span><span class="lines">@@ -148,7 +148,7 @@
</span><span class="cx">     ScrollableArea&amp; m_scrollableArea;
</span><span class="cx">     ScrollbarOrientation m_orientation;
</span><span class="cx">     ScrollbarControlSize m_controlSize;
</span><del>-    ScrollbarTheme* m_theme;
</del><ins>+    ScrollbarTheme&amp; m_theme;
</ins><span class="cx"> 
</span><span class="cx">     int m_visibleSize;
</span><span class="cx">     int m_totalSize;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollbarThemecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollbarTheme.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollbarTheme.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/ScrollbarTheme.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -31,11 +31,11 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-ScrollbarTheme* ScrollbarTheme::theme()
</del><ins>+ScrollbarTheme&amp; ScrollbarTheme::theme()
</ins><span class="cx"> {
</span><span class="cx">     if (Settings::mockScrollbarsEnabled()) {
</span><span class="cx">         DEPRECATED_DEFINE_STATIC_LOCAL(ScrollbarThemeMock, mockTheme, ());
</span><del>-        return &amp;mockTheme;
</del><ins>+        return mockTheme;
</ins><span class="cx">     }
</span><span class="cx">     return nativeTheme();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollbarThemeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollbarTheme.h (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollbarTheme.h        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/ScrollbarTheme.h        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -113,10 +113,10 @@
</span><span class="cx"> 
</span><span class="cx">     virtual bool isMockTheme() const { return false; }
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT static ScrollbarTheme* theme();
</del><ins>+    WEBCORE_EXPORT static ScrollbarTheme&amp; theme();
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    static ScrollbarTheme* nativeTheme(); // Must be implemented to return the correct theme subclass.
</del><ins>+    static ScrollbarTheme&amp; nativeTheme(); // Must be implemented to return the correct theme subclass.
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformeflScrollbarThemeEflcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/efl/ScrollbarThemeEfl.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/efl/ScrollbarThemeEfl.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/efl/ScrollbarThemeEfl.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -39,10 +39,10 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-ScrollbarTheme* ScrollbarTheme::nativeTheme()
</del><ins>+ScrollbarTheme&amp; ScrollbarTheme::nativeTheme()
</ins><span class="cx"> {
</span><span class="cx">     static ScrollbarThemeEfl theme;
</span><del>-    return &amp;theme;
</del><ins>+    return theme;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static const int defaultThickness = 10;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgtkScrollbarThemeGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -36,10 +36,10 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-ScrollbarTheme* ScrollbarTheme::nativeTheme()
</del><ins>+ScrollbarTheme&amp; ScrollbarTheme::nativeTheme()
</ins><span class="cx"> {
</span><span class="cx">     static ScrollbarThemeGtk theme;
</span><del>-    return &amp;theme;
</del><ins>+    return theme;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ScrollbarThemeGtk::~ScrollbarThemeGtk()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosScrollbarThemeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/ScrollbarThemeIOS.mm (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/ScrollbarThemeIOS.mm        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/ios/ScrollbarThemeIOS.mm        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -35,10 +35,10 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-ScrollbarTheme* ScrollbarTheme::nativeTheme()
</del><ins>+ScrollbarTheme&amp; ScrollbarTheme::nativeTheme()
</ins><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;ScrollbarThemeIOS&gt; theme;
</span><del>-    return &amp;theme.get();
</del><ins>+    return theme;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollbarThemeIOS::registerScrollbar(Scrollbar&amp;)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacScrollAnimatorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -63,8 +63,8 @@
</span><span class="cx"> 
</span><span class="cx"> static ScrollbarThemeMac* macScrollbarTheme()
</span><span class="cx"> {
</span><del>-    ScrollbarTheme* scrollbarTheme = ScrollbarTheme::theme();
-    return !scrollbarTheme-&gt;isMockTheme() ? static_cast&lt;ScrollbarThemeMac*&gt;(scrollbarTheme) : 0;
</del><ins>+    ScrollbarTheme&amp; scrollbarTheme = ScrollbarTheme::theme();
+    return !scrollbarTheme.isMockTheme() ? static_cast&lt;ScrollbarThemeMac*&gt;(&amp;scrollbarTheme) : nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static ScrollbarPainter scrollbarPainterForScrollbar(Scrollbar&amp; scrollbar)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacScrollbarThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -38,6 +38,7 @@
</span><span class="cx"> #include &quot;WebCoreSystemInterface.h&quot;
</span><span class="cx"> #include &lt;Carbon/Carbon.h&gt;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> #include &lt;wtf/StdLibExtras.h&gt;
</span><span class="cx"> #include &lt;wtf/TemporaryChange.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -77,11 +78,11 @@
</span><span class="cx"> {
</span><span class="cx">     UNUSED_PARAM(unusedNotification);
</span><span class="cx"> 
</span><del>-    ScrollbarTheme* theme = ScrollbarTheme::theme();
-    if (theme-&gt;isMockTheme())
</del><ins>+    ScrollbarTheme&amp; theme = ScrollbarTheme::theme();
+    if (theme.isMockTheme())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    static_cast&lt;ScrollbarThemeMac*&gt;(ScrollbarTheme::theme())-&gt;preferencesChanged();
</del><ins>+    static_cast&lt;ScrollbarThemeMac&amp;&gt;(theme).preferencesChanged();
</ins><span class="cx">     if (scrollbarMap()-&gt;isEmpty())
</span><span class="cx">         return;
</span><span class="cx">     ScrollbarPainterMap::iterator end = scrollbarMap()-&gt;end();
</span><span class="lines">@@ -95,11 +96,11 @@
</span><span class="cx"> {
</span><span class="cx">     UNUSED_PARAM(unusedNotification);
</span><span class="cx"> 
</span><del>-    ScrollbarTheme* theme = ScrollbarTheme::theme();
-    if (theme-&gt;isMockTheme())
</del><ins>+    ScrollbarTheme&amp; theme = ScrollbarTheme::theme();
+    if (theme.isMockTheme())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    static_cast&lt;ScrollbarThemeMac*&gt;(ScrollbarTheme::theme())-&gt;preferencesChanged();
</del><ins>+    static_cast&lt;ScrollbarThemeMac&amp;&gt;(theme).preferencesChanged();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> + (void)registerAsObserver
</span><span class="lines">@@ -112,10 +113,10 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-ScrollbarTheme* ScrollbarTheme::nativeTheme()
</del><ins>+ScrollbarTheme&amp; ScrollbarTheme::nativeTheme()
</ins><span class="cx"> {
</span><del>-    DEPRECATED_DEFINE_STATIC_LOCAL(ScrollbarThemeMac, theme, ());
-    return &amp;theme;
</del><ins>+    static NeverDestroyed&lt;ScrollbarThemeMac&gt; theme;
+    return theme;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // FIXME: Get these numbers from CoreUI.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformwinPopupMenuWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/win/PopupMenuWin.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/PopupMenuWin.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/win/PopupMenuWin.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -352,7 +352,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (naturalHeight &gt; maxPopupHeight)
</span><span class="cx">         // We need room for a scrollbar
</span><del>-        popupWidth += ScrollbarTheme::theme()-&gt;scrollbarThickness(SmallScrollbar);
</del><ins>+        popupWidth += ScrollbarTheme::theme().scrollbarThickness(SmallScrollbar);
</ins><span class="cx"> 
</span><span class="cx">     // Add padding to align the popup text with the &lt;select&gt; text
</span><span class="cx">     popupWidth += std::max&lt;int&gt;(0, client()-&gt;clientPaddingRight() - client()-&gt;clientInsetRight()) + std::max&lt;int&gt;(0, client()-&gt;clientPaddingLeft() - client()-&gt;clientInsetLeft());
</span><span class="lines">@@ -1287,26 +1287,24 @@
</span><span class="cx">         Scrollbar&amp; scrollbar = *m_popupMenu.scrollbar();
</span><span class="cx">         WebCore::ScrollbarPart part = static_cast&lt;WebCore::ScrollbarPart&gt;(-vChild.lVal);
</span><span class="cx"> 
</span><del>-        ScrollbarThemeWin* theme = static_cast&lt;ScrollbarThemeWin*&gt;(scrollbar.theme());
-        if (!theme)
-            return E_FAIL;
</del><ins>+        ScrollbarThemeWin&amp; theme = static_cast&lt;ScrollbarThemeWin&amp;&gt;(scrollbar.theme());
</ins><span class="cx"> 
</span><span class="cx">         IntRect partRect;
</span><span class="cx"> 
</span><span class="cx">         switch (part) {
</span><span class="cx">         case BackTrackPart:
</span><span class="cx">         case BackButtonStartPart:
</span><del>-            partRect = theme-&gt;backButtonRect(scrollbar, WebCore::BackTrackPart);
</del><ins>+            partRect = theme.backButtonRect(scrollbar, WebCore::BackTrackPart);
</ins><span class="cx">             break;
</span><span class="cx">         case ThumbPart:
</span><del>-            partRect = theme-&gt;thumbRect(scrollbar);
</del><ins>+            partRect = theme.thumbRect(scrollbar);
</ins><span class="cx">             break;
</span><span class="cx">         case ForwardTrackPart:
</span><span class="cx">         case ForwardButtonEndPart:
</span><del>-            partRect = theme-&gt;forwardButtonRect(scrollbar, WebCore::ForwardTrackPart);
</del><ins>+            partRect = theme.forwardButtonRect(scrollbar, WebCore::ForwardTrackPart);
</ins><span class="cx">             break;
</span><span class="cx">         case ScrollbarBGPart:
</span><del>-            partRect = theme-&gt;trackRect(scrollbar);
</del><ins>+            partRect = theme.trackRect(scrollbar);
</ins><span class="cx">             break;
</span><span class="cx">         default:
</span><span class="cx">             return E_FAIL;
</span><span class="lines">@@ -1358,12 +1356,10 @@
</span><span class="cx"> 
</span><span class="cx">     if (m_popupMenu.scrollbar() &amp;&amp; scrollRect.contains(pt)) {
</span><span class="cx">         Scrollbar&amp; scrollbar = *m_popupMenu.scrollbar();
</span><del>-        if (!scrollbar.theme())
-            return E_FAIL;
</del><span class="cx"> 
</span><span class="cx">         pt.move(-scrollRect.x(), -scrollRect.y());
</span><span class="cx"> 
</span><del>-        WebCore::ScrollbarPart part = scrollbar.theme()-&gt;hitTest(scrollbar, pt);
</del><ins>+        WebCore::ScrollbarPart part = scrollbar.theme().hitTest(scrollbar, pt);
</ins><span class="cx"> 
</span><span class="cx">         V_VT(pvChildAtPoint) = VT_I4;
</span><span class="cx">         V_I4(pvChildAtPoint) = -part; // Scrollbar parts are encoded as negative, to avoid mixup with item indexes.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformwinScrollbarThemeSafaricpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/win/ScrollbarThemeSafari.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/ScrollbarThemeSafari.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/win/ScrollbarThemeSafari.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -55,13 +55,13 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace SafariTheme;
</span><span class="cx"> 
</span><del>-ScrollbarTheme* ScrollbarTheme::nativeTheme()
</del><ins>+ScrollbarTheme&amp; ScrollbarTheme::nativeTheme()
</ins><span class="cx"> {
</span><span class="cx">     static ScrollbarThemeSafari safariTheme;
</span><span class="cx">     static ScrollbarThemeWin windowsTheme;
</span><span class="cx">     if (Settings::shouldPaintNativeControls())
</span><del>-        return &amp;windowsTheme;
-    return &amp;safariTheme;
</del><ins>+        return windowsTheme;
+    return safariTheme;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // FIXME: Get these numbers from CoreUI.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformwinScrollbarThemeWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/win/ScrollbarThemeWin.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/ScrollbarThemeWin.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/platform/win/ScrollbarThemeWin.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -89,10 +89,10 @@
</span><span class="cx">         scrollbarTheme = OpenThemeData(0, L&quot;Scrollbar&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ScrollbarTheme* ScrollbarTheme::nativeTheme()
</del><ins>+ScrollbarTheme&amp; ScrollbarTheme::nativeTheme()
</ins><span class="cx"> {
</span><span class="cx">     static ScrollbarThemeWin winTheme;
</span><del>-    return &amp;winTheme;
</del><ins>+    return winTheme;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ScrollbarThemeWin::ScrollbarThemeWin()
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -954,13 +954,13 @@
</span><span class="cx"> 
</span><span class="cx"> bool RenderBox::hasVerticalScrollbarWithAutoBehavior() const
</span><span class="cx"> {
</span><del>-    bool overflowScrollActsLikeAuto = style().overflowY() == OSCROLL &amp;&amp; !style().hasPseudoStyle(SCROLLBAR) &amp;&amp; ScrollbarTheme::theme()-&gt;usesOverlayScrollbars();
</del><ins>+    bool overflowScrollActsLikeAuto = style().overflowY() == OSCROLL &amp;&amp; !style().hasPseudoStyle(SCROLLBAR) &amp;&amp; ScrollbarTheme::theme().usesOverlayScrollbars();
</ins><span class="cx">     return hasOverflowClip() &amp;&amp; (style().overflowY() == OAUTO || style().overflowY() == OOVERLAY || overflowScrollActsLikeAuto);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderBox::hasHorizontalScrollbarWithAutoBehavior() const
</span><span class="cx"> {
</span><del>-    bool overflowScrollActsLikeAuto = style().overflowX() == OSCROLL &amp;&amp; !style().hasPseudoStyle(SCROLLBAR) &amp;&amp; ScrollbarTheme::theme()-&gt;usesOverlayScrollbars();
</del><ins>+    bool overflowScrollActsLikeAuto = style().overflowX() == OSCROLL &amp;&amp; !style().hasPseudoStyle(SCROLLBAR) &amp;&amp; ScrollbarTheme::theme().usesOverlayScrollbars();
</ins><span class="cx">     return hasOverflowClip() &amp;&amp; (style().overflowX() == OAUTO || style().overflowX() == OOVERLAY || overflowScrollActsLikeAuto);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -2802,7 +2802,7 @@
</span><span class="cx">     if (!layer-&gt;verticalScrollbar() &amp;&amp; !layer-&gt;horizontalScrollbar()) {
</span><span class="cx">         // FIXME: This isn't right.  We need to know the thickness of custom scrollbars
</span><span class="cx">         // even when they don't exist in order to set the resizer square size properly.
</span><del>-        horizontalThickness = ScrollbarTheme::theme()-&gt;scrollbarThickness();
</del><ins>+        horizontalThickness = ScrollbarTheme::theme().scrollbarThickness();
</ins><span class="cx">         verticalThickness = horizontalThickness;
</span><span class="cx">     } else if (layer-&gt;verticalScrollbar() &amp;&amp; !layer-&gt;horizontalScrollbar()) {
</span><span class="cx">         horizontalThickness = layer-&gt;verticalScrollbar()-&gt;width();
</span><span class="lines">@@ -3382,14 +3382,14 @@
</span><span class="cx"> static bool styleRequiresScrollbar(const RenderStyle&amp; style, ScrollbarOrientation axis)
</span><span class="cx"> {
</span><span class="cx">     EOverflow overflow = axis == ScrollbarOrientation::HorizontalScrollbar ? style.overflowX() : style.overflowY();
</span><del>-    bool overflowScrollActsLikeAuto = overflow == OSCROLL &amp;&amp; !style.hasPseudoStyle(SCROLLBAR) &amp;&amp; ScrollbarTheme::theme()-&gt;usesOverlayScrollbars();
</del><ins>+    bool overflowScrollActsLikeAuto = overflow == OSCROLL &amp;&amp; !style.hasPseudoStyle(SCROLLBAR) &amp;&amp; ScrollbarTheme::theme().usesOverlayScrollbars();
</ins><span class="cx">     return overflow == OSCROLL &amp;&amp; !overflowScrollActsLikeAuto;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool styleDefinesAutomaticScrollbar(const RenderStyle&amp; style, ScrollbarOrientation axis)
</span><span class="cx"> {
</span><span class="cx">     EOverflow overflow = axis == ScrollbarOrientation::HorizontalScrollbar ? style.overflowX() : style.overflowY();
</span><del>-    bool overflowScrollActsLikeAuto = overflow == OSCROLL &amp;&amp; !style.hasPseudoStyle(SCROLLBAR) &amp;&amp; ScrollbarTheme::theme()-&gt;usesOverlayScrollbars();
</del><ins>+    bool overflowScrollActsLikeAuto = overflow == OSCROLL &amp;&amp; !style.hasPseudoStyle(SCROLLBAR) &amp;&amp; ScrollbarTheme::theme().usesOverlayScrollbars();
</ins><span class="cx">     return overflow == OAUTO || overflow == OOVERLAY || overflowScrollActsLikeAuto;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderScrollbarcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderScrollbar.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderScrollbar.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/rendering/RenderScrollbar.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -218,7 +218,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (needRenderer &amp;&amp; partStyle-&gt;display() != BLOCK) {
</span><span class="cx">         // See if we are a button that should not be visible according to OS settings.
</span><del>-        ScrollbarButtonsPlacement buttonsPlacement = theme()-&gt;buttonsPlacement();
</del><ins>+        ScrollbarButtonsPlacement buttonsPlacement = theme().buttonsPlacement();
</ins><span class="cx">         switch (partType) {
</span><span class="cx">             case BackButtonStartPart:
</span><span class="cx">                 needRenderer = (buttonsPlacement == ScrollbarButtonsSingle || buttonsPlacement == ScrollbarButtonsDoubleStart ||
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderScrollbarPartcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderScrollbarPart.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderScrollbarPart.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/rendering/RenderScrollbarPart.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!length.isIntrinsicOrAuto() || (sizeType == MinSize &amp;&amp; length.isAuto()))
</span><span class="cx">         return minimumValueForLength(length, containingLength);
</span><del>-    return ScrollbarTheme::theme()-&gt;scrollbarThickness();
</del><ins>+    return ScrollbarTheme::theme().scrollbarThickness();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderScrollbarPart::computeScrollbarWidth()
</span><span class="lines">@@ -138,13 +138,13 @@
</span><span class="cx">     setFloating(false);
</span><span class="cx">     setHasOverflowClip(false);
</span><span class="cx">     if (oldStyle &amp;&amp; m_scrollbar &amp;&amp; m_part != NoPart &amp;&amp; diff &gt;= StyleDifferenceRepaint)
</span><del>-        m_scrollbar-&gt;theme()-&gt;invalidatePart(*m_scrollbar, m_part);
</del><ins>+        m_scrollbar-&gt;theme().invalidatePart(*m_scrollbar, m_part);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderScrollbarPart::imageChanged(WrappedImagePtr image, const IntRect* rect)
</span><span class="cx"> {
</span><span class="cx">     if (m_scrollbar &amp;&amp; m_part != NoPart)
</span><del>-        m_scrollbar-&gt;theme()-&gt;invalidatePart(*m_scrollbar, m_part);
</del><ins>+        m_scrollbar-&gt;theme().invalidatePart(*m_scrollbar, m_part);
</ins><span class="cx">     else {
</span><span class="cx">         if (view().frameView().isFrameViewScrollCorner(*this)) {
</span><span class="cx">             view().frameView().invalidateScrollCorner(view().frameView().scrollCornerRect());
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderScrollbarThemecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderScrollbarTheme.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderScrollbarTheme.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/rendering/RenderScrollbarTheme.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -158,7 +158,7 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderScrollbarTheme::paintTickmarks(GraphicsContext&amp; context, Scrollbar&amp; scrollbar, const IntRect&amp; rect)
</span><span class="cx"> {
</span><del>-    ScrollbarTheme::theme()-&gt;paintTickmarks(context, scrollbar, rect);
</del><ins>+    ScrollbarTheme::theme().paintTickmarks(context, scrollbar, rect);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderScrollbarThemeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderScrollbarTheme.h (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderScrollbarTheme.h        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/rendering/RenderScrollbarTheme.h        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -38,21 +38,21 @@
</span><span class="cx"> public:
</span><span class="cx">     virtual ~RenderScrollbarTheme() { }
</span><span class="cx">     
</span><del>-    virtual int scrollbarThickness(ScrollbarControlSize controlSize) override { return ScrollbarTheme::theme()-&gt;scrollbarThickness(controlSize); }
</del><ins>+    virtual int scrollbarThickness(ScrollbarControlSize controlSize) override { return ScrollbarTheme::theme().scrollbarThickness(controlSize); }
</ins><span class="cx"> 
</span><del>-    virtual ScrollbarButtonsPlacement buttonsPlacement() const override { return ScrollbarTheme::theme()-&gt;buttonsPlacement(); }
</del><ins>+    virtual ScrollbarButtonsPlacement buttonsPlacement() const override { return ScrollbarTheme::theme().buttonsPlacement(); }
</ins><span class="cx"> 
</span><span class="cx">     virtual bool supportsControlTints() const override { return true; }
</span><span class="cx"> 
</span><span class="cx">     virtual void paintScrollCorner(ScrollView*, GraphicsContext&amp;, const IntRect&amp; cornerRect) override;
</span><span class="cx"> 
</span><del>-    virtual bool shouldCenterOnThumb(Scrollbar&amp; scrollbar, const PlatformMouseEvent&amp; event) override { return ScrollbarTheme::theme()-&gt;shouldCenterOnThumb(scrollbar, event); }
</del><ins>+    virtual bool shouldCenterOnThumb(Scrollbar&amp; scrollbar, const PlatformMouseEvent&amp; event) override { return ScrollbarTheme::theme().shouldCenterOnThumb(scrollbar, event); }
</ins><span class="cx">     
</span><del>-    virtual double initialAutoscrollTimerDelay() override { return ScrollbarTheme::theme()-&gt;initialAutoscrollTimerDelay(); }
-    virtual double autoscrollTimerDelay() override { return ScrollbarTheme::theme()-&gt;autoscrollTimerDelay(); }
</del><ins>+    virtual double initialAutoscrollTimerDelay() override { return ScrollbarTheme::theme().initialAutoscrollTimerDelay(); }
+    virtual double autoscrollTimerDelay() override { return ScrollbarTheme::theme().autoscrollTimerDelay(); }
</ins><span class="cx"> 
</span><del>-    virtual void registerScrollbar(Scrollbar&amp; scrollbar) override { return ScrollbarTheme::theme()-&gt;registerScrollbar(scrollbar); }
-    virtual void unregisterScrollbar(Scrollbar&amp; scrollbar) override { return ScrollbarTheme::theme()-&gt;unregisterScrollbar(scrollbar); }
</del><ins>+    virtual void registerScrollbar(Scrollbar&amp; scrollbar) override { return ScrollbarTheme::theme().registerScrollbar(scrollbar); }
+    virtual void unregisterScrollbar(Scrollbar&amp; scrollbar) override { return ScrollbarTheme::theme().unregisterScrollbar(scrollbar); }
</ins><span class="cx"> 
</span><span class="cx">     virtual int minimumThumbLength(Scrollbar&amp;) override;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControl.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControl.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/rendering/RenderTextControl.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx"> int RenderTextControl::scrollbarThickness() const
</span><span class="cx"> {
</span><span class="cx">     // FIXME: We should get the size of the scrollbar from the RenderTheme instead.
</span><del>-    return ScrollbarTheme::theme()-&gt;scrollbarThickness();
</del><ins>+    return ScrollbarTheme::theme().scrollbarThickness();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderTextControl::computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues&amp; computedValues) const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeEflcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeEfl.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeEfl.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/rendering/RenderThemeEfl.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -524,7 +524,7 @@
</span><span class="cx"> 
</span><span class="cx">     const char* thickness = edje_object_data_get(m_edje.get(), &quot;scrollbar.thickness&quot;);
</span><span class="cx">     if (thickness &amp;&amp; !Settings::mockScrollbarsEnabled())
</span><del>-        static_cast&lt;ScrollbarThemeEfl*&gt;(ScrollbarTheme::theme())-&gt;setScrollbarThickness(atoi(thickness));
</del><ins>+        static_cast&lt;ScrollbarThemeEfl&amp;&gt;(ScrollbarTheme::theme()).setScrollbarThickness(atoi(thickness));
</ins><span class="cx"> 
</span><span class="cx">     edje_object_signal_callback_add(edje(), &quot;color_class,set&quot;, &quot;webkit/selection/foreground&quot;, applyColorCallback, this);
</span><span class="cx">     edje_object_signal_callback_add(edje(), &quot;color_class,set&quot;, &quot;webkit/selection/background&quot;, applyColorCallback, this);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeGtk.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeGtk.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebCore/rendering/RenderThemeGtk.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx"> {
</span><span class="cx">     for (const auto&amp; styleContext : styleContextMap())
</span><span class="cx">         gtk_style_context_invalidate(styleContext.value.get());
</span><del>-    static_cast&lt;ScrollbarThemeGtk*&gt;(ScrollbarTheme::theme())-&gt;themeChanged();
</del><ins>+    static_cast&lt;ScrollbarThemeGtk&amp;&gt;(ScrollbarTheme::theme()).themeChanged();
</ins><span class="cx">     Page::updateStyleForAllPagesAfterGlobalChangeInEnvironment();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebKit/win/ChangeLog        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2015-09-02  Andreas Kling  &lt;akling@apple.com&gt;
+
+        ScrollbarThemes should be returned by reference.
+        &lt;https://webkit.org/b/147551&gt;
+
+        Reviewed by Zalan Bujtas.
+
+        * WebView.cpp:
+        (WebView::gestureNotify):
+        (WebView::WebViewWndProc):
+
</ins><span class="cx"> 2015-08-31  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Range API is throwing wrong exception type
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebView.cpp (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebView.cpp        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebKit/win/WebView.cpp        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -1687,8 +1687,8 @@
</span><span class="cx">         // The hit testing above won't detect if we've hit the main frame's vertical scrollbar. Check that manually now.
</span><span class="cx">         RECT webViewRect;
</span><span class="cx">         GetWindowRect(m_viewWindow, &amp;webViewRect);
</span><del>-        hitScrollbar = (view-&gt;verticalScrollbar() &amp;&amp; (gestureBeginPoint.x &gt; (webViewRect.right - view-&gt;verticalScrollbar()-&gt;theme()-&gt;scrollbarThickness()))) 
-            || (view-&gt;horizontalScrollbar() &amp;&amp; (gestureBeginPoint.y &gt; (webViewRect.bottom - view-&gt;horizontalScrollbar()-&gt;theme()-&gt;scrollbarThickness())));  
</del><ins>+        hitScrollbar = (view-&gt;verticalScrollbar() &amp;&amp; (gestureBeginPoint.x &gt; (webViewRect.right - view-&gt;verticalScrollbar()-&gt;theme().scrollbarThickness()))) 
+            || (view-&gt;horizontalScrollbar() &amp;&amp; (gestureBeginPoint.y &gt; (webViewRect.bottom - view-&gt;horizontalScrollbar()-&gt;theme().scrollbarThickness())));  
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     bool canBeScrolled = false;
</span><span class="lines">@@ -2467,7 +2467,7 @@
</span><span class="cx">             if (Frame* coreFrame = core(mainFrameImpl)) {
</span><span class="cx">                 webView-&gt;deleteBackingStore();
</span><span class="cx">                 coreFrame-&gt;page()-&gt;theme().themeChanged();
</span><del>-                ScrollbarTheme::theme()-&gt;themeChanged();
</del><ins>+                ScrollbarTheme::theme().themeChanged();
</ins><span class="cx">                 RECT windowRect;
</span><span class="cx">                 ::GetClientRect(hWnd, &amp;windowRect);
</span><span class="cx">                 ::InvalidateRect(hWnd, &amp;windowRect, false);
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebKit2/ChangeLog        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2015-09-02  Andreas Kling  &lt;akling@apple.com&gt;
+
+        ScrollbarThemes should be returned by reference.
+        &lt;https://webkit.org/b/147551&gt;
+
+        Reviewed by Zalan Bujtas.
+
+        * WebProcess/Plugins/PDF/PDFPlugin.mm:
+        (WebKit::PDFPlugin::paintControlForLayerInContext):
+
</ins><span class="cx"> 2015-09-02  Gyuyoung Kim  &lt;gyuyoung.kim@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         REGRESSION(r188206): [EFL] Adjust scrollbar width to ewk_view_contents_size_get API test 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFPDFPluginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm (189269 => 189270)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm        2015-09-03 02:51:05 UTC (rev 189269)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm        2015-09-03 02:58:14 UTC (rev 189270)
</span><span class="lines">@@ -1132,7 +1132,7 @@
</span><span class="cx">     if (layer == m_scrollCornerLayer) {
</span><span class="cx">         IntRect scrollCornerRect = this-&gt;scrollCornerRect();
</span><span class="cx">         graphicsContext.translate(-scrollCornerRect.x(), -scrollCornerRect.y());
</span><del>-        ScrollbarTheme::theme()-&gt;paintScrollCorner(nullptr, graphicsContext, scrollCornerRect);
</del><ins>+        ScrollbarTheme::theme().paintScrollCorner(nullptr, graphicsContext, scrollCornerRect);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     
</span></span></pre>
</div>
</div>

</body>
</html>