<!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>[196246] trunk/Source/WebCore</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/196246">196246</a></dd>
<dt>Author</dt> <dd>weinig@apple.com</dd>
<dt>Date</dt> <dd>2016-02-07 19:01:07 -0800 (Sun, 07 Feb 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Use modern SPI header idiom for NSScrollerImp and NSScrollerImpPair
https://bugs.webkit.org/show_bug.cgi?id=153969
Reviewed by Dan Bernstein.
* WebCore.xcodeproj/project.pbxproj:
Add new file NSScrollerImpSPI.h
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
Use new include of NSScrollerImpSPI.h.
* platform/ScrollbarThemeComposite.h:
Define ScrollbarPainter more precisely as NSScrollerImp * now that the type is available to us.
* platform/mac/NSScrollerImpDetails.h:
Remove NSObject category based SPI usage with the modern one NSScrollerImpSPI.h
* platform/mac/NSScrollerImpDetails.mm:
(WebCore::recommendedScrollerStyle):
Simplify recommendedScrollerStyle() now that all OS's we ship on have +[NSScroller preferredScrollerStyle].
* platform/mac/ScrollAnimatorMac.mm:
(supportsUIStateTransitionProgress):
(supportsExpansionTransitionProgress):
(supportsContentAreaScrolledInDirection):
Stop using NSClassFromString now that we can reference the classes explicitly.
(-[WebScrollbarPainterControllerDelegate invalidate]):
(-[WebScrollbarPainterControllerDelegate contentAreaRectForScrollerImpPair:]):
(-[WebScrollbarPainterControllerDelegate inLiveResizeForScrollerImpPair:]):
(-[WebScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]):
(-[WebScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]):
(-[WebScrollbarPainterControllerDelegate scrollerImpPair:setContentAreaNeedsDisplayInRect:]):
(-[WebScrollbarPainterControllerDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]):
(-[WebScrollbarPainterDelegate layer]):
(-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]):
(-[WebScrollbarPainterDelegate convertRectToLayer:]):
(-[WebScrollbarPainterDelegate shouldUseLayerPerPartForScrollerImp:]):
(-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:animateAlphaTo:duration:]):
(-[WebScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
(-[WebScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]):
(-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
(-[WebScrollbarPainterDelegate scrollerImp:animateExpansionTransitionWithDuration:]):
(-[WebScrollbarPainterDelegate scrollerImp:overlayScrollerStateChangedTo:]):
(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::lockOverlayScrollbarStateToHidden):
(WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
(WebCore::ScrollAnimatorMac::updateScrollerStyle):
Add proper conforming to protocols and replace ids with proper types.
* platform/mac/ScrollbarThemeMac.mm:
(WebCore::supportsExpandedScrollbars):
(WebCore::ScrollbarThemeMac::registerScrollbar):
(WebCore::ScrollbarThemeMac::scrollbarThickness):
(WebCore::ScrollbarThemeMac::setUpContentShadowLayer):
Stop using NSClassFromString now that we can reference the classes explicitly.
* platform/spi/mac/NSScrollerImpSPI.h: Added.</pre>
<h3>Modified Paths</h3>
<ul>
<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="#trunkSourceWebCorepagescrollingmacScrollingTreeFrameScrollingNodeMacmm">trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollbarThemeCompositeh">trunk/Source/WebCore/platform/ScrollbarThemeComposite.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmacNSScrollerImpDetailsh">trunk/Source/WebCore/platform/mac/NSScrollerImpDetails.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmacNSScrollerImpDetailsmm">trunk/Source/WebCore/platform/mac/NSScrollerImpDetails.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>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformspimacNSScrollerImpSPIh">trunk/Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (196245 => 196246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-02-08 01:34:07 UTC (rev 196245)
+++ trunk/Source/WebCore/ChangeLog        2016-02-08 03:01:07 UTC (rev 196246)
</span><span class="lines">@@ -1,3 +1,65 @@
</span><ins>+2016-02-07 Sam Weinig <sam@webkit.org>
+
+ Use modern SPI header idiom for NSScrollerImp and NSScrollerImpPair
+ https://bugs.webkit.org/show_bug.cgi?id=153969
+
+ Reviewed by Dan Bernstein.
+
+ * WebCore.xcodeproj/project.pbxproj:
+ Add new file NSScrollerImpSPI.h
+
+ * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
+ Use new include of NSScrollerImpSPI.h.
+
+ * platform/ScrollbarThemeComposite.h:
+ Define ScrollbarPainter more precisely as NSScrollerImp * now that the type is available to us.
+
+ * platform/mac/NSScrollerImpDetails.h:
+ Remove NSObject category based SPI usage with the modern one NSScrollerImpSPI.h
+
+ * platform/mac/NSScrollerImpDetails.mm:
+ (WebCore::recommendedScrollerStyle):
+ Simplify recommendedScrollerStyle() now that all OS's we ship on have +[NSScroller preferredScrollerStyle].
+
+ * platform/mac/ScrollAnimatorMac.mm:
+ (supportsUIStateTransitionProgress):
+ (supportsExpansionTransitionProgress):
+ (supportsContentAreaScrolledInDirection):
+ Stop using NSClassFromString now that we can reference the classes explicitly.
+
+ (-[WebScrollbarPainterControllerDelegate invalidate]):
+ (-[WebScrollbarPainterControllerDelegate contentAreaRectForScrollerImpPair:]):
+ (-[WebScrollbarPainterControllerDelegate inLiveResizeForScrollerImpPair:]):
+ (-[WebScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]):
+ (-[WebScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]):
+ (-[WebScrollbarPainterControllerDelegate scrollerImpPair:setContentAreaNeedsDisplayInRect:]):
+ (-[WebScrollbarPainterControllerDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]):
+ (-[WebScrollbarPainterDelegate layer]):
+ (-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]):
+ (-[WebScrollbarPainterDelegate convertRectToLayer:]):
+ (-[WebScrollbarPainterDelegate shouldUseLayerPerPartForScrollerImp:]):
+ (-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:animateAlphaTo:duration:]):
+ (-[WebScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
+ (-[WebScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]):
+ (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
+ (-[WebScrollbarPainterDelegate scrollerImp:animateExpansionTransitionWithDuration:]):
+ (-[WebScrollbarPainterDelegate scrollerImp:overlayScrollerStateChangedTo:]):
+ (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
+ (WebCore::ScrollAnimatorMac::lockOverlayScrollbarStateToHidden):
+ (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
+ (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
+ (WebCore::ScrollAnimatorMac::updateScrollerStyle):
+ Add proper conforming to protocols and replace ids with proper types.
+
+ * platform/mac/ScrollbarThemeMac.mm:
+ (WebCore::supportsExpandedScrollbars):
+ (WebCore::ScrollbarThemeMac::registerScrollbar):
+ (WebCore::ScrollbarThemeMac::scrollbarThickness):
+ (WebCore::ScrollbarThemeMac::setUpContentShadowLayer):
+ Stop using NSClassFromString now that we can reference the classes explicitly.
+
+ * platform/spi/mac/NSScrollerImpSPI.h: Added.
+
</ins><span class="cx"> 2016-02-07 Zalan Bujtas <zalan@apple.com>
</span><span class="cx">
</span><span class="cx"> Outline does not clip when ancestor has overflow: hidden and requires layer.
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (196245 => 196246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-02-08 01:34:07 UTC (rev 196245)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-02-08 03:01:07 UTC (rev 196246)
</span><span class="lines">@@ -4168,13 +4168,13 @@
</span><span class="cx">                 A456FA2711AD4A830020B420 /* LabelsNodeList.h in Headers */ = {isa = PBXBuildFile; fileRef = A456FA2511AD4A830020B420 /* LabelsNodeList.h */; };
</span><span class="cx">                 A501920E132EBF2E008BFE55 /* Autocapitalize.h in Headers */ = {isa = PBXBuildFile; fileRef = A501920C132EBF2E008BFE55 /* Autocapitalize.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A502C5DF13049B3500FC7D53 /* WebSafeGCActivityCallbackIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = A502C5DD13049B3500FC7D53 /* WebSafeGCActivityCallbackIOS.h */; };
</span><ins>+                A5071E801C506B66009951BE /* InspectorMemoryAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5071E7E1C5067A0009951BE /* InspectorMemoryAgent.cpp */; };
+                A5071E811C506B69009951BE /* InspectorMemoryAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = A5071E7F1C5067A0009951BE /* InspectorMemoryAgent.h */; };
</ins><span class="cx">                 A5071E851C56D0DC009951BE /* ResourceUsageData.h in Headers */ = {isa = PBXBuildFile; fileRef = A5071E821C56D079009951BE /* ResourceUsageData.h */; };
</span><span class="cx">                 A5071E861C56D0DF009951BE /* ResourceUsageThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5071E831C56D079009951BE /* ResourceUsageThread.cpp */; };
</span><span class="cx">                 A5071E871C56D0E1009951BE /* ResourceUsageThread.h in Headers */ = {isa = PBXBuildFile; fileRef = A5071E841C56D079009951BE /* ResourceUsageThread.h */; };
</span><span class="cx">                 A5071E891C56D4FE009951BE /* ResourceUsageThreadCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = A5071E881C56D4FA009951BE /* ResourceUsageThreadCocoa.mm */; };
</span><span class="cx">                 A5071E8B1C56FB31009951BE /* ResourceUsageData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5071E8A1C56FAFA009951BE /* ResourceUsageData.cpp */; };
</span><del>-                A5071E801C506B66009951BE /* InspectorMemoryAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5071E7E1C5067A0009951BE /* InspectorMemoryAgent.cpp */; };
-                A5071E811C506B69009951BE /* InspectorMemoryAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = A5071E7F1C5067A0009951BE /* InspectorMemoryAgent.h */; };
</del><span class="cx">                 A513B3D7114B1666001C429B /* KeyEventCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = A5C974CF11485FF10066F2AB /* KeyEventCocoa.h */; };
</span><span class="cx">                 A513B3D8114B166A001C429B /* KeyEventCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = A5C974D011485FF10066F2AB /* KeyEventCocoa.mm */; };
</span><span class="cx">                 A516E8B7136E04DB0076C3C0 /* LocalizedDateCache.h in Headers */ = {isa = PBXBuildFile; fileRef = A516E8B4136E04DB0076C3C0 /* LocalizedDateCache.h */; };
</span><span class="lines">@@ -10287,6 +10287,7 @@
</span><span class="cx">                 7AF9B20918CFB5F200C64BEF /* JSVTTRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSVTTRegion.h; sourceTree = "<group>"; };
</span><span class="cx">                 7AF9B20A18CFB5F300C64BEF /* JSVTTRegionList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSVTTRegionList.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 7AF9B20B18CFB5F300C64BEF /* JSVTTRegionList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSVTTRegionList.h; sourceTree = "<group>"; };
</span><ins>+                7C0406121C66EE9C00AF0711 /* NSScrollerImpSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSScrollerImpSPI.h; sourceTree = "<group>"; };
</ins><span class="cx">                 7C1E97251A9F9834007BF0FB /* AutoFillButtonElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AutoFillButtonElement.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 7C1E97261A9F9834007BF0FB /* AutoFillButtonElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoFillButtonElement.h; sourceTree = "<group>"; };
</span><span class="cx">                 7C2BDD3B17C7F98B0038FF15 /* JSDOMGlobalObjectTask.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMGlobalObjectTask.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -11805,13 +11806,13 @@
</span><span class="cx">                 A456FA2511AD4A830020B420 /* LabelsNodeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelsNodeList.h; sourceTree = "<group>"; };
</span><span class="cx">                 A501920C132EBF2E008BFE55 /* Autocapitalize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Autocapitalize.h; sourceTree = "<group>"; };
</span><span class="cx">                 A502C5DD13049B3500FC7D53 /* WebSafeGCActivityCallbackIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSafeGCActivityCallbackIOS.h; sourceTree = "<group>"; };
</span><ins>+                A5071E7E1C5067A0009951BE /* InspectorMemoryAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorMemoryAgent.cpp; sourceTree = "<group>"; };
+                A5071E7F1C5067A0009951BE /* InspectorMemoryAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorMemoryAgent.h; sourceTree = "<group>"; };
</ins><span class="cx">                 A5071E821C56D079009951BE /* ResourceUsageData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceUsageData.h; sourceTree = "<group>"; };
</span><span class="cx">                 A5071E831C56D079009951BE /* ResourceUsageThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceUsageThread.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A5071E841C56D079009951BE /* ResourceUsageThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceUsageThread.h; sourceTree = "<group>"; };
</span><span class="cx">                 A5071E881C56D4FA009951BE /* ResourceUsageThreadCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceUsageThreadCocoa.mm; sourceTree = "<group>"; };
</span><span class="cx">                 A5071E8A1C56FAFA009951BE /* ResourceUsageData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceUsageData.cpp; sourceTree = "<group>"; };
</span><del>-                A5071E7E1C5067A0009951BE /* InspectorMemoryAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorMemoryAgent.cpp; sourceTree = "<group>"; };
-                A5071E7F1C5067A0009951BE /* InspectorMemoryAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorMemoryAgent.h; sourceTree = "<group>"; };
</del><span class="cx">                 A516E8B4136E04DB0076C3C0 /* LocalizedDateCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalizedDateCache.h; sourceTree = "<group>"; };
</span><span class="cx">                 A516E8B5136E04DB0076C3C0 /* LocalizedDateCache.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = LocalizedDateCache.mm; sourceTree = "<group>"; };
</span><span class="cx">                 A518225417E2A0D400A9BA1D /* InspectorOverlayPage.css */ = {isa = PBXFileReference; lastKnownFileType = text.css; path = InspectorOverlayPage.css; sourceTree = "<group>"; };
</span><span class="lines">@@ -18872,6 +18873,7 @@
</span><span class="cx">                                 9321D58F1A3906FA008052BE /* NSImmediateActionGestureRecognizerSPI.h */,
</span><span class="cx">                                 937F4CCD1A2D4B0100BB39F5 /* NSMenuSPI.h */,
</span><span class="cx">                                 93F1E1EB1A40FDDC00348D13 /* NSPopoverSPI.h */,
</span><ins>+                                7C0406121C66EE9C00AF0711 /* NSScrollerImpSPI.h */,
</ins><span class="cx">                                 F40EA8AA1B867D6500CE5581 /* NSScrollingInputFilterSPI.h */,
</span><span class="cx">                                 2DCB837719F99BBA00A7FBE4 /* NSSharingServicePickerSPI.h */,
</span><span class="cx">                                 2DCB837819F99BBA00A7FBE4 /* NSSharingServiceSPI.h */,
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingmacScrollingTreeFrameScrollingNodeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm (196245 => 196246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm        2016-02-08 01:34:07 UTC (rev 196245)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm        2016-02-08 03:01:07 UTC (rev 196246)
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx"> #import "FrameView.h"
</span><span class="cx"> #import "LayoutSize.h"
</span><span class="cx"> #import "Logging.h"
</span><del>-#import "NSScrollerImpDetails.h"
</del><ins>+#import "NSScrollerImpSPI.h"
</ins><span class="cx"> #import "PlatformWheelEvent.h"
</span><span class="cx"> #import "ScrollableArea.h"
</span><span class="cx"> #import "ScrollingCoordinator.h"
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollbarThemeCompositeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollbarThemeComposite.h (196245 => 196246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollbarThemeComposite.h        2016-02-08 01:34:07 UTC (rev 196245)
+++ trunk/Source/WebCore/platform/ScrollbarThemeComposite.h        2016-02-08 03:01:07 UTC (rev 196246)
</span><span class="lines">@@ -29,7 +29,8 @@
</span><span class="cx"> #include "ScrollbarTheme.h"
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(COCOA)
</span><del>-typedef id ScrollbarPainter;
</del><ins>+OBJC_CLASS NSScrollerImp;
+typedef NSScrollerImp *ScrollbarPainter;
</ins><span class="cx"> #else
</span><span class="cx"> typedef void* ScrollbarPainter;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacNSScrollerImpDetailsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/NSScrollerImpDetails.h (196245 => 196246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/NSScrollerImpDetails.h        2016-02-08 01:34:07 UTC (rev 196245)
+++ trunk/Source/WebCore/platform/mac/NSScrollerImpDetails.h        2016-02-08 03:01:07 UTC (rev 196246)
</span><span class="lines">@@ -26,74 +26,6 @@
</span><span class="cx"> #ifndef WebCore_NSScrollerImpDetails_h
</span><span class="cx"> #define WebCore_NSScrollerImpDetails_h
</span><span class="cx">
</span><del>-// Public APIs not available on versions of Mac on which we build
-
-@interface NSObject (ScrollbarPainter)
-+ (id)scrollerImpWithStyle:(NSScrollerStyle)newScrollerStyle controlSize:(NSControlSize)newControlSize horizontal:(BOOL)horizontal replacingScrollerImp:(id)previous;
-- (CGFloat)knobAlpha;
-- (void)setKnobAlpha:(CGFloat)knobAlpha;
-- (CGFloat)trackAlpha;
-- (void)setTrackAlpha:(CGFloat)trackAlpha;
-- (void)setEnabled:(BOOL)enabled;
-- (void)setBoundsSize:(NSSize)boundsSize;
-- (void)setDoubleValue:(double)doubleValue;
-- (void)setPresentationValue:(double)presentationValue;
-- (BOOL)shouldUsePresentationValue;
-- (void)setUsePresentationValue:(BOOL)usePresentationValue;
-- (void)setKnobProportion:(CGFloat)proportion;
-- (void)setKnobStyle:(NSScrollerKnobStyle)knobStyle;
-- (void)setExpanded:(BOOL)expanded;
-- (BOOL)isExpanded;
-- (void)setDelegate:(id)delegate;
-- (void)setUiStateTransitionProgress:(CGFloat)uiStateTransitionProgress;
-- (void)setExpansionTransitionProgress:(CGFloat)expansionTransitionProgress;
-- (BOOL)isHorizontal;
-- (CGFloat)trackWidth;
-- (CGFloat)trackBoxWidth;
-- (CGFloat)knobMinLength;
-- (CGFloat)trackOverlapEndInset;
-- (CGFloat)knobOverlapEndInset;
-- (CGFloat)trackEndInset;
-- (CGFloat)knobEndInset;
-- (CGFloat)uiStateTransitionProgress;
-- (CGFloat)expansionTransitionProgress;
-- (NSRect)rectForPart:(NSScrollerPart)partCode;
-- (void)drawKnobSlotInRect:(NSRect)slotRect highlight:(BOOL)flag alpha:(CGFloat)alpha;
-- (void)drawKnob;
-- (void)mouseEnteredScroller;
-- (void)mouseExitedScroller;
-- (void)setTracking:(BOOL)tracking;
-- (void)setNeedsDisplay:(BOOL)flag;
-@end
-
-@interface NSObject (ScrollbarPainterController)
-- (void)setDelegate:(id)delegate;
-- (void)hideOverlayScrollers;
-- (void)flashScrollers;
-- (void)lockOverlayScrollerState:(NSUInteger)state;
-- (BOOL)overlayScrollerStateIsLocked;
-- (void)unlockOverlayScrollerState;
-- (id)horizontalScrollerImp;
-- (void)setHorizontalScrollerImp:(id)horizontal;
-- (id)verticalScrollerImp;
-- (void)setVerticalScrollerImp:(id)vertical;
-- (NSScrollerStyle)scrollerStyle;
-- (void)setScrollerStyle:(NSScrollerStyle)scrollerStyle;
-- (void)contentAreaScrolled;
-- (void)contentAreaScrolledInDirection:(NSPoint)direction;
-- (void)contentAreaWillDraw;
-- (void)mouseEnteredContentArea;
-- (void)mouseExitedContentArea;
-- (void)mouseMovedInContentArea;
-- (void)startLiveResize;
-- (void)contentAreaDidResize;
-- (void)endLiveResize;
-- (void)windowOrderedIn;
-- (void)windowOrderedOut;
-- (void)beginScrollGesture;
-- (void)endScrollGesture;
-@end
-
</del><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> NSScrollerStyle recommendedScrollerStyle();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacNSScrollerImpDetailsmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/NSScrollerImpDetails.mm (196245 => 196246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/NSScrollerImpDetails.mm        2016-02-08 01:34:07 UTC (rev 196245)
+++ trunk/Source/WebCore/platform/mac/NSScrollerImpDetails.mm        2016-02-08 03:01:07 UTC (rev 196246)
</span><span class="lines">@@ -27,16 +27,16 @@
</span><span class="cx">
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "NSScrollerImpDetails.h"
</span><ins>+
</ins><span class="cx"> #include "Settings.h"
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><del>-NSScrollerStyle recommendedScrollerStyle() {
</del><ins>+NSScrollerStyle recommendedScrollerStyle()
+{
</ins><span class="cx"> if (Settings::usesOverlayScrollbars())
</span><span class="cx"> return NSScrollerStyleOverlay;
</span><del>- if ([NSScroller respondsToSelector:@selector(preferredScrollerStyle)])
- return [NSScroller preferredScrollerStyle];
- return NSScrollerStyleLegacy;
</del><ins>+ return [NSScroller preferredScrollerStyle];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacScrollAnimatorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm (196245 => 196246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm        2016-02-08 01:34:07 UTC (rev 196245)
+++ trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm        2016-02-08 03:01:07 UTC (rev 196246)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #include "GraphicsLayer.h"
</span><span class="cx"> #include "Logging.h"
</span><span class="cx"> #include "NSScrollerImpDetails.h"
</span><ins>+#include "NSScrollerImpSPI.h"
</ins><span class="cx"> #include "PlatformWheelEvent.h"
</span><span class="cx"> #include "ScrollView.h"
</span><span class="cx"> #include "ScrollableArea.h"
</span><span class="lines">@@ -47,19 +48,19 @@
</span><span class="cx"> static bool supportsUIStateTransitionProgress()
</span><span class="cx"> {
</span><span class="cx"> // FIXME: This is temporary until all platforms that support ScrollbarPainter support this part of the API.
</span><del>- static const bool globalSupportsUIStateTransitionProgress = [NSClassFromString(@"NSScrollerImp") instancesRespondToSelector:@selector(mouseEnteredScroller)];
</del><ins>+ static const bool globalSupportsUIStateTransitionProgress = [[NSScrollerImp class] instancesRespondToSelector:@selector(mouseEnteredScroller)];
</ins><span class="cx"> return globalSupportsUIStateTransitionProgress;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool supportsExpansionTransitionProgress()
</span><span class="cx"> {
</span><del>- static const bool globalSupportsExpansionTransitionProgress = [NSClassFromString(@"NSScrollerImp") instancesRespondToSelector:@selector(expansionTransitionProgress)];
</del><ins>+ static const bool globalSupportsExpansionTransitionProgress = [[NSScrollerImp class] instancesRespondToSelector:@selector(expansionTransitionProgress)];
</ins><span class="cx"> return globalSupportsExpansionTransitionProgress;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool supportsContentAreaScrolledInDirection()
</span><span class="cx"> {
</span><del>- static const bool globalSupportsContentAreaScrolledInDirection = [NSClassFromString(@"NSScrollerImpPair") instancesRespondToSelector:@selector(contentAreaScrolledInDirection:)];
</del><ins>+ static const bool globalSupportsContentAreaScrolledInDirection = [[NSScrollerImpPair class] instancesRespondToSelector:@selector(contentAreaScrolledInDirection:)];
</ins><span class="cx"> return globalSupportsContentAreaScrolledInDirection;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -181,7 +182,7 @@
</span><span class="cx">
</span><span class="cx"> @end
</span><span class="cx">
</span><del>-@interface WebScrollbarPainterControllerDelegate : NSObject
</del><ins>+@interface WebScrollbarPainterControllerDelegate : NSObject <NSScrollerImpPairDelegate>
</ins><span class="cx"> {
</span><span class="cx"> ScrollableArea* _scrollableArea;
</span><span class="cx"> }
</span><span class="lines">@@ -205,7 +206,7 @@
</span><span class="cx"> _scrollableArea = 0;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (NSRect)contentAreaRectForScrollerImpPair:(id)scrollerImpPair
</del><ins>+- (NSRect)contentAreaRectForScrollerImpPair:(NSScrollerImpPair *)scrollerImpPair
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(scrollerImpPair);
</span><span class="cx"> if (!_scrollableArea)
</span><span class="lines">@@ -215,7 +216,7 @@
</span><span class="cx"> return NSMakeRect(0, 0, contentsSize.width(), contentsSize.height());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (BOOL)inLiveResizeForScrollerImpPair:(id)scrollerImpPair
</del><ins>+- (BOOL)inLiveResizeForScrollerImpPair:(NSScrollerImpPair *)scrollerImpPair
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(scrollerImpPair);
</span><span class="cx"> if (!_scrollableArea)
</span><span class="lines">@@ -224,7 +225,7 @@
</span><span class="cx"> return _scrollableArea->inLiveResize();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (NSPoint)mouseLocationInContentAreaForScrollerImpPair:(id)scrollerImpPair
</del><ins>+- (NSPoint)mouseLocationInContentAreaForScrollerImpPair:(NSScrollerImpPair *)scrollerImpPair
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(scrollerImpPair);
</span><span class="cx"> if (!_scrollableArea)
</span><span class="lines">@@ -233,7 +234,7 @@
</span><span class="cx"> return _scrollableArea->lastKnownMousePosition();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (NSPoint)scrollerImpPair:(id)scrollerImpPair convertContentPoint:(NSPoint)pointInContentArea toScrollerImp:(id)scrollerImp
</del><ins>+- (NSPoint)scrollerImpPair:(NSScrollerImpPair *)scrollerImpPair convertContentPoint:(NSPoint)pointInContentArea toScrollerImp:(NSScrollerImp *)scrollerImp
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(scrollerImpPair);
</span><span class="cx">
</span><span class="lines">@@ -259,7 +260,7 @@
</span><span class="cx"> return scrollbar->convertFromContainingView(WebCore::IntPoint(pointInContentArea));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)scrollerImpPair:(id)scrollerImpPair setContentAreaNeedsDisplayInRect:(NSRect)rect
</del><ins>+- (void)scrollerImpPair:(NSScrollerImpPair *)scrollerImpPair setContentAreaNeedsDisplayInRect:(NSRect)rect
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(scrollerImpPair);
</span><span class="cx"> UNUSED_PARAM(rect);
</span><span class="lines">@@ -273,7 +274,7 @@
</span><span class="cx"> _scrollableArea->scrollAnimator().contentAreaWillPaint();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)scrollerImpPair:(id)scrollerImpPair updateScrollerStyleForNewRecommendedScrollerStyle:(NSScrollerStyle)newRecommendedScrollerStyle
</del><ins>+- (void)scrollerImpPair:(NSScrollerImpPair *)scrollerImpPair updateScrollerStyleForNewRecommendedScrollerStyle:(NSScrollerStyle)newRecommendedScrollerStyle
</ins><span class="cx"> {
</span><span class="cx"> if (!_scrollableArea)
</span><span class="cx"> return;
</span><span class="lines">@@ -381,7 +382,7 @@
</span><span class="cx">
</span><span class="cx"> @end
</span><span class="cx">
</span><del>-@interface WebScrollbarPainterDelegate : NSObject<NSAnimationDelegate>
</del><ins>+@interface WebScrollbarPainterDelegate : NSObject<NSAnimationDelegate, NSScrollerImpDelegate>
</ins><span class="cx"> {
</span><span class="cx"> WebCore::Scrollbar* _scrollbar;
</span><span class="cx">
</span><span class="lines">@@ -449,7 +450,7 @@
</span><span class="cx"> return layer ? layer->platformLayer() : dummyLayer;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (NSPoint)mouseLocationInScrollerForScrollerImp:(id)scrollerImp
</del><ins>+- (NSPoint)mouseLocationInScrollerForScrollerImp:(NSScrollerImp *)scrollerImp
</ins><span class="cx"> {
</span><span class="cx"> if (!_scrollbar)
</span><span class="cx"> return NSZeroPoint;
</span><span class="lines">@@ -464,7 +465,7 @@
</span><span class="cx"> return rect;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (BOOL)shouldUseLayerPerPartForScrollerImp:(id)scrollerImp
</del><ins>+- (BOOL)shouldUseLayerPerPartForScrollerImp:(NSScrollerImp *)scrollerImp
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(scrollerImp);
</span><span class="cx">
</span><span class="lines">@@ -516,7 +517,7 @@
</span><span class="cx"> [scrollbarPartAnimation startAnimation];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)scrollerImp:(id)scrollerImp animateKnobAlphaTo:(CGFloat)newKnobAlpha duration:(NSTimeInterval)duration
</del><ins>+- (void)scrollerImp:(NSScrollerImp *)scrollerImp animateKnobAlphaTo:(CGFloat)newKnobAlpha duration:(NSTimeInterval)duration
</ins><span class="cx"> {
</span><span class="cx"> if (!_scrollbar)
</span><span class="cx"> return;
</span><span class="lines">@@ -539,7 +540,7 @@
</span><span class="cx"> [self setUpAlphaAnimation:_knobAlphaAnimation scrollerPainter:scrollerPainter part:WebCore::ThumbPart animateAlphaTo:newKnobAlpha duration:duration];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)scrollerImp:(id)scrollerImp animateTrackAlphaTo:(CGFloat)newTrackAlpha duration:(NSTimeInterval)duration
</del><ins>+- (void)scrollerImp:(NSScrollerImp *)scrollerImp animateTrackAlphaTo:(CGFloat)newTrackAlpha duration:(NSTimeInterval)duration
</ins><span class="cx"> {
</span><span class="cx"> if (!_scrollbar)
</span><span class="cx"> return;
</span><span class="lines">@@ -550,7 +551,7 @@
</span><span class="cx"> [self setUpAlphaAnimation:_trackAlphaAnimation scrollerPainter:scrollerPainter part:WebCore::BackTrackPart animateAlphaTo:newTrackAlpha duration:duration];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)scrollerImp:(id)scrollerImp animateUIStateTransitionWithDuration:(NSTimeInterval)duration
</del><ins>+- (void)scrollerImp:(NSScrollerImp *)scrollerImp animateUIStateTransitionWithDuration:(NSTimeInterval)duration
</ins><span class="cx"> {
</span><span class="cx"> if (!_scrollbar)
</span><span class="cx"> return;
</span><span class="lines">@@ -584,7 +585,7 @@
</span><span class="cx"> [_uiStateTransitionAnimation startAnimation];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)scrollerImp:(id)scrollerImp animateExpansionTransitionWithDuration:(NSTimeInterval)duration
</del><ins>+- (void)scrollerImp:(NSScrollerImp *)scrollerImp animateExpansionTransitionWithDuration:(NSTimeInterval)duration
</ins><span class="cx"> {
</span><span class="cx"> if (!_scrollbar)
</span><span class="cx"> return;
</span><span class="lines">@@ -614,7 +615,7 @@
</span><span class="cx"> [_expansionTransitionAnimation startAnimation];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)scrollerImp:(id)scrollerImp overlayScrollerStateChangedTo:(NSUInteger)newOverlayScrollerState
</del><ins>+- (void)scrollerImp:(NSScrollerImp *)scrollerImp overlayScrollerStateChangedTo:(NSOverlayScrollerState)newOverlayScrollerState
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(scrollerImp);
</span><span class="cx"> UNUSED_PARAM(newOverlayScrollerState);
</span><span class="lines">@@ -651,8 +652,8 @@
</span><span class="cx"> m_scrollAnimationHelper = adoptNS([[NSClassFromString(@"NSScrollAnimationHelper") alloc] initWithDelegate:m_scrollAnimationHelperDelegate.get()]);
</span><span class="cx">
</span><span class="cx"> m_scrollbarPainterControllerDelegate = adoptNS([[WebScrollbarPainterControllerDelegate alloc] initWithScrollableArea:&scrollableArea]);
</span><del>- m_scrollbarPainterController = adoptNS([[NSClassFromString(@"NSScrollerImpPair") alloc] init]);
- [m_scrollbarPainterController setDelegate:(id)m_scrollbarPainterControllerDelegate.get()];
</del><ins>+ m_scrollbarPainterController = adoptNS([[NSScrollerImpPair alloc] init]);
+ [m_scrollbarPainterController setDelegate:m_scrollbarPainterControllerDelegate.get()];
</ins><span class="cx"> [m_scrollbarPainterController setScrollerStyle:recommendedScrollerStyle()];
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -952,7 +953,7 @@
</span><span class="cx"> void ScrollAnimatorMac::lockOverlayScrollbarStateToHidden(bool shouldLockState)
</span><span class="cx"> {
</span><span class="cx"> if (shouldLockState)
</span><del>- [m_scrollbarPainterController lockOverlayScrollerState:ScrollbarOverlayStateHidden];
</del><ins>+ [m_scrollbarPainterController lockOverlayScrollerState:NSOverlayScrollerStateHidden];
</ins><span class="cx"> else {
</span><span class="cx"> [m_scrollbarPainterController unlockOverlayScrollerState];
</span><span class="cx">
</span><span class="lines">@@ -977,7 +978,7 @@
</span><span class="cx"> ASSERT(!m_verticalScrollbarPainterDelegate);
</span><span class="cx"> m_verticalScrollbarPainterDelegate = adoptNS([[WebScrollbarPainterDelegate alloc] initWithScrollbar:scrollbar]);
</span><span class="cx">
</span><del>- [painter setDelegate:(id)m_verticalScrollbarPainterDelegate.get()];
</del><ins>+ [painter setDelegate:m_verticalScrollbarPainterDelegate.get()];
</ins><span class="cx"> if (GraphicsLayer* layer = scrollbar->scrollableArea().layerForVerticalScrollbar())
</span><span class="cx"> [painter setLayer:layer->platformLayer()];
</span><span class="cx">
</span><span class="lines">@@ -1009,7 +1010,7 @@
</span><span class="cx"> ASSERT(!m_horizontalScrollbarPainterDelegate);
</span><span class="cx"> m_horizontalScrollbarPainterDelegate = adoptNS([[WebScrollbarPainterDelegate alloc] initWithScrollbar:scrollbar]);
</span><span class="cx">
</span><del>- [painter setDelegate:(id)m_horizontalScrollbarPainterDelegate.get()];
</del><ins>+ [painter setDelegate:m_horizontalScrollbarPainterDelegate.get()];
</ins><span class="cx"> if (GraphicsLayer* layer = scrollbar->scrollableArea().layerForHorizontalScrollbar())
</span><span class="cx"> [painter setLayer:layer->platformLayer()];
</span><span class="cx">
</span><span class="lines">@@ -1331,10 +1332,8 @@
</span><span class="cx"> verticalScrollbar->invalidate();
</span><span class="cx">
</span><span class="cx"> ScrollbarPainter oldVerticalPainter = [m_scrollbarPainterController verticalScrollerImp];
</span><del>- ScrollbarPainter newVerticalPainter = [NSClassFromString(@"NSScrollerImp") scrollerImpWithStyle:newStyle
- controlSize:(NSControlSize)verticalScrollbar->controlSize()
- horizontal:NO
- replacingScrollerImp:oldVerticalPainter];
</del><ins>+ ScrollbarPainter newVerticalPainter = [NSScrollerImp scrollerImpWithStyle:newStyle controlSize:(NSControlSize)verticalScrollbar->controlSize() horizontal:NO replacingScrollerImp:oldVerticalPainter];
+
</ins><span class="cx"> [m_scrollbarPainterController setVerticalScrollerImp:newVerticalPainter];
</span><span class="cx"> macTheme->setNewPainterForScrollbar(*verticalScrollbar, newVerticalPainter);
</span><span class="cx">
</span><span class="lines">@@ -1349,10 +1348,8 @@
</span><span class="cx"> horizontalScrollbar->invalidate();
</span><span class="cx">
</span><span class="cx"> ScrollbarPainter oldHorizontalPainter = [m_scrollbarPainterController horizontalScrollerImp];
</span><del>- ScrollbarPainter newHorizontalPainter = [NSClassFromString(@"NSScrollerImp") scrollerImpWithStyle:newStyle
- controlSize:(NSControlSize)horizontalScrollbar->controlSize()
- horizontal:YES
- replacingScrollerImp:oldHorizontalPainter];
</del><ins>+ ScrollbarPainter newHorizontalPainter = [NSScrollerImp scrollerImpWithStyle:newStyle controlSize:(NSControlSize)horizontalScrollbar->controlSize() horizontal:YES replacingScrollerImp:oldHorizontalPainter];
+
</ins><span class="cx"> [m_scrollbarPainterController setHorizontalScrollerImp:newHorizontalPainter];
</span><span class="cx"> macTheme->setNewPainterForScrollbar(*horizontalScrollbar, newHorizontalPainter);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacScrollbarThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm (196245 => 196246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm        2016-02-08 01:34:07 UTC (rev 196245)
+++ trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm        2016-02-08 03:01:07 UTC (rev 196246)
</span><span class="lines">@@ -28,10 +28,11 @@
</span><span class="cx">
</span><span class="cx"> #include "BlockExceptions.h"
</span><span class="cx"> #include "ColorMac.h"
</span><ins>+#include "GraphicsLayer.h"
</ins><span class="cx"> #include "ImageBuffer.h"
</span><del>-#include "GraphicsLayer.h"
</del><span class="cx"> #include "LocalCurrentGraphicsContext.h"
</span><span class="cx"> #include "NSScrollerImpDetails.h"
</span><ins>+#include "NSScrollerImpSPI.h"
</ins><span class="cx"> #include "PlatformMouseEvent.h"
</span><span class="cx"> #include "ScrollAnimatorMac.h"
</span><span class="cx"> #include "ScrollView.h"
</span><span class="lines">@@ -138,7 +139,7 @@
</span><span class="cx"> static bool supportsExpandedScrollbars()
</span><span class="cx"> {
</span><span class="cx"> // FIXME: This is temporary until all platforms that support ScrollbarPainter support this part of the API.
</span><del>- static bool globalSupportsExpandedScrollbars = [NSClassFromString(@"NSScrollerImp") instancesRespondToSelector:@selector(setExpanded:)];
</del><ins>+ static bool globalSupportsExpandedScrollbars = [[NSScrollerImp class] instancesRespondToSelector:@selector(setExpanded:)];
</ins><span class="cx"> return globalSupportsExpandedScrollbars;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -161,7 +162,7 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> bool isHorizontal = scrollbar.orientation() == HorizontalScrollbar;
</span><del>- ScrollbarPainter scrollbarPainter = [NSClassFromString(@"NSScrollerImp") scrollerImpWithStyle:recommendedScrollerStyle() controlSize:scrollbarControlSizeToNSControlSize(scrollbar.controlSize()) horizontal:isHorizontal replacingScrollerImp:nil];
</del><ins>+ ScrollbarPainter scrollbarPainter = [NSScrollerImp scrollerImpWithStyle:recommendedScrollerStyle() controlSize:scrollbarControlSizeToNSControlSize(scrollbar.controlSize()) horizontal:isHorizontal replacingScrollerImp:nil];
</ins><span class="cx"> scrollbarMap()->add(&scrollbar, scrollbarPainter);
</span><span class="cx"> updateEnabledState(scrollbar);
</span><span class="cx"> updateScrollbarOverlayStyle(scrollbar);
</span><span class="lines">@@ -224,7 +225,7 @@
</span><span class="cx"> int ScrollbarThemeMac::scrollbarThickness(ScrollbarControlSize controlSize)
</span><span class="cx"> {
</span><span class="cx"> BEGIN_BLOCK_OBJC_EXCEPTIONS;
</span><del>- ScrollbarPainter scrollbarPainter = [NSClassFromString(@"NSScrollerImp") scrollerImpWithStyle:recommendedScrollerStyle() controlSize:scrollbarControlSizeToNSControlSize(controlSize) horizontal:NO replacingScrollerImp:nil];
</del><ins>+ ScrollbarPainter scrollbarPainter = [NSScrollerImp scrollerImpWithStyle:recommendedScrollerStyle() controlSize:scrollbarControlSizeToNSControlSize(controlSize) horizontal:NO replacingScrollerImp:nil];
</ins><span class="cx"> if (supportsExpandedScrollbars())
</span><span class="cx"> [scrollbarPainter setExpanded:YES];
</span><span class="cx"> return [scrollbarPainter trackBoxWidth];
</span><span class="lines">@@ -588,7 +589,6 @@
</span><span class="cx"> // of shadows, and we know that WebCore won't touch this layer.
</span><span class="cx"> setUpOverhangAreaShadow(graphicsLayer->platformLayer());
</span><span class="cx"> }
</span><del>-
</del><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformspimacNSScrollerImpSPIh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h (0 => 196246)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h         (rev 0)
+++ trunk/Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h        2016-02-08 03:01:07 UTC (rev 196246)
</span><span class="lines">@@ -0,0 +1,149 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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 NSScrollerImpSPI_h
+#define NSScrollerImpSPI_h
+
+#if USE(APPKIT)
+
+#if USE(APPLE_INTERNAL_SDK)
+
+#import <AppKit/NSScrollerImpPair_Private.h>
+#import <AppKit/NSScrollerImp_Private.h>
+
+@interface NSScrollerImp ()
+@property(getter=isTracking) BOOL tracking;
+@end
+
+#else
+
+enum {
+ NSOverlayScrollerStateHidden = 0,
+ NSOverlayScrollerStateThumbShown = 1,
+ NSOverlayScrollerStateAllShown = 2,
+ NSOverlayScrollerStatePulseThumb = 3,
+};
+typedef NSUInteger NSOverlayScrollerState;
+
+@protocol NSScrollerImpDelegate;
+
+@interface NSScrollerImp : NSObject
++ (NSScrollerImp *)scrollerImpWithStyle:(NSScrollerStyle)newScrollerStyle controlSize:(NSControlSize)newControlSize horizontal:(BOOL)horizontal replacingScrollerImp:(id)previous;
+@property(retain) CALayer *layer;
+- (void)setNeedsDisplay:(BOOL)flag;
+@property NSScrollerKnobStyle knobStyle;
+@property(getter=isHorizontal) BOOL horizontal;
+@property NSSize boundsSize;
+@property(getter=isEnabled) BOOL enabled;
+@property double doubleValue;
+@property double presentationValue;
+@property(getter=shouldUsePresentationValue) BOOL usePresentationValue;
+@property CGFloat knobProportion;
+@property CGFloat uiStateTransitionProgress;
+@property CGFloat expansionTransitionProgress;
+@property CGFloat trackAlpha;
+@property CGFloat knobAlpha;
+@property(getter=isExpanded) BOOL expanded;
+@property(assign) id<NSScrollerImpDelegate> delegate;
+@property(readonly) CGFloat trackBoxWidth;
+@property(readonly) CGFloat trackWidth;
+@property(readonly) CGFloat trackSideInset;
+@property(readonly) CGFloat trackEndInset;
+@property(readonly) CGFloat knobEndInset;
+@property(readonly) CGFloat knobMinLength;
+@property(readonly) CGFloat knobOverlapEndInset;
+@property(readonly) CGFloat trackOverlapEndInset;
+- (NSRect)rectForPart:(NSScrollerPart)partCode;
+- (void)drawKnobSlotInRect:(NSRect)slotRect highlight:(BOOL)flag alpha:(CGFloat)alpha;
+- (void)drawKnobSlotInRect:(NSRect)slotRect highlight:(BOOL)flag;
+- (void)drawKnob;
+- (void)mouseEnteredScroller;
+- (void)mouseExitedScroller;
+@end
+
+@interface NSScrollerImp ()
+@property(getter=isTracking) BOOL tracking;
+@end
+
+@protocol NSScrollerImpDelegate
+@required
+- (NSRect)convertRectToBacking:(NSRect)aRect;
+- (NSRect)convertRectFromBacking:(NSRect)aRect;
+- (CALayer *)layer;
+- (void)scrollerImp:(NSScrollerImp *)scrollerImp animateKnobAlphaTo:(CGFloat)newKnobAlpha duration:(NSTimeInterval)duration;
+- (void)scrollerImp:(NSScrollerImp *)scrollerImp animateTrackAlphaTo:(CGFloat)newTrackAlpha duration:(NSTimeInterval)duration;
+- (void)scrollerImp:(NSScrollerImp *)scrollerImp overlayScrollerStateChangedTo:(NSOverlayScrollerState)newOverlayScrollerState;
+@optional
+- (void)scrollerImp:(NSScrollerImp *)scrollerImp animateUIStateTransitionWithDuration:(NSTimeInterval)duration;
+- (void)scrollerImp:(NSScrollerImp *)scrollerImp animateExpansionTransitionWithDuration:(NSTimeInterval)duration;
+- (NSPoint)mouseLocationInScrollerForScrollerImp:(NSScrollerImp *)scrollerImp;
+- (NSRect)convertRectToLayer:(NSRect)aRect;
+- (BOOL)shouldUseLayerPerPartForScrollerImp:(NSScrollerImp *)scrollerImp;
+@end
+
+@protocol NSScrollerImpPairDelegate;
+
+@interface NSScrollerImpPair : NSObject
+@property(assign) id<NSScrollerImpPairDelegate> delegate;
+@property(retain) NSScrollerImp *verticalScrollerImp;
+@property(retain) NSScrollerImp *horizontalScrollerImp;
+@property NSScrollerStyle scrollerStyle;
+- (void)flashScrollers;
+- (void)hideOverlayScrollers;
+- (void)lockOverlayScrollerState:(NSOverlayScrollerState)state;
+- (void)unlockOverlayScrollerState;
+- (BOOL)overlayScrollerStateIsLocked;
+- (void)contentAreaScrolled;
+- (void)contentAreaScrolledInDirection:(NSPoint)direction;
+- (void)contentAreaWillDraw;
+- (void)windowOrderedOut;
+- (void)windowOrderedIn;
+- (void)mouseEnteredContentArea;
+- (void)mouseExitedContentArea;
+- (void)mouseMovedInContentArea;
+- (void)startLiveResize;
+- (void)contentAreaDidResize;
+- (void)endLiveResize;
+- (void)beginScrollGesture;
+- (void)endScrollGesture;
+@end
+
+@protocol NSScrollerImpPairDelegate
+@required
+- (NSRect)contentAreaRectForScrollerImpPair:(NSScrollerImpPair *)scrollerImpPair;
+- (BOOL)inLiveResizeForScrollerImpPair:(NSScrollerImpPair *)scrollerImpPair;
+- (NSPoint)mouseLocationInContentAreaForScrollerImpPair:(NSScrollerImpPair *)scrollerImpPair;
+- (NSPoint)scrollerImpPair:(NSScrollerImpPair *)scrollerImpPair convertContentPoint:(NSPoint)pointInContentArea toScrollerImp:(NSScrollerImp *)scrollerImp;
+- (void)scrollerImpPair:(NSScrollerImpPair *)scrollerImpPair setContentAreaNeedsDisplayInRect:(NSRect)rect;
+- (void)scrollerImpPair:(NSScrollerImpPair *)scrollerImpPair updateScrollerStyleForNewRecommendedScrollerStyle:(NSScrollerStyle)newRecommendedScrollerStyle;
+@optional
+- (BOOL)scrollerImpPair:(NSScrollerImpPair *)scrollerImpPair isContentPointVisible:(NSPoint)pointInContentArea;
+@end
+
+#endif
+
+#endif // USE(APPKIT)
+
+#endif // NSScrollerImpSPI_h
</ins></span></pre>
</div>
</div>
</body>
</html>