Index: third_party/WebKit/Source/platform/scroll/ScrollbarThemeOverlay.cpp |
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollbarThemeOverlay.cpp b/third_party/WebKit/Source/platform/scroll/ScrollbarThemeOverlay.cpp |
index 14878b965bced578d4f7f87378289b66d2df1896..d7ab59bef47849e6ecc4c2ef38e8f0751194ee49 100644 |
--- a/third_party/WebKit/Source/platform/scroll/ScrollbarThemeOverlay.cpp |
+++ b/third_party/WebKit/Source/platform/scroll/ScrollbarThemeOverlay.cpp |
@@ -237,4 +237,37 @@ ScrollbarThemeOverlay& ScrollbarThemeOverlay::mobileTheme() { |
return *theme; |
} |
+bool ScrollbarThemeOverlay::usesNinePatchThumbResource() const { |
+ WebThemeEngine* engine = Platform::current()->themeEngine(); |
+ if (!engine) |
+ return false; |
+ |
+ // Thumb orientation doesn't matter here. |
+ return engine->supportsNinePatch(WebThemeEngine::PartScrollbarVerticalThumb); |
+} |
+ |
+IntSize ScrollbarThemeOverlay::ninePatchThumbCanvasSize( |
+ const ScrollbarThemeClient& scrollbar) const { |
+ DCHECK(usesNinePatchThumbResource()); |
+ |
+ WebThemeEngine::Part part = WebThemeEngine::PartScrollbarHorizontalThumb; |
+ if (scrollbar.orientation() == VerticalScrollbar) |
+ part = WebThemeEngine::PartScrollbarVerticalThumb; |
+ |
+ DCHECK(Platform::current()->themeEngine()); |
+ return Platform::current()->themeEngine()->ninePatchCanvasSize(part); |
+} |
+ |
+IntRect ScrollbarThemeOverlay::ninePatchThumbAperture( |
+ const ScrollbarThemeClient& scrollbar) const { |
+ DCHECK(usesNinePatchThumbResource()); |
+ |
+ WebThemeEngine::Part part = WebThemeEngine::PartScrollbarHorizontalThumb; |
+ if (scrollbar.orientation() == VerticalScrollbar) |
+ part = WebThemeEngine::PartScrollbarVerticalThumb; |
+ |
+ DCHECK(Platform::current()->themeEngine()); |
+ return Platform::current()->themeEngine()->ninePatchAperture(part); |
+} |
+ |
} // namespace blink |