Diff
Modified: trunk/Source/WebCore/ChangeLog (184296 => 184297)
--- trunk/Source/WebCore/ChangeLog 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebCore/ChangeLog 2015-05-13 19:28:21 UTC (rev 184297)
@@ -1,3 +1,22 @@
+2015-05-13 Beth Dakin <[email protected]>
+
+ Need SPI to set the overlay scroll bar style
+ https://bugs.webkit.org/show_bug.cgi?id=144928
+ -and corresponding-
+ rdar://problem/20143614
+
+ Reviewed by Anders Carlsson.
+
+ New ChromeClient function preferredScrollbarOverlayStyle() will fetch the
+ scrollbar style that was set via the new SPI.
+ * page/ChromeClient.h:
+
+ If the preferredScrollbarOverlayStyle() is anything but None, then use it. None is
+ used to indicate that the normal heuristic should compute the appropriate color.
+ * page/FrameView.cpp:
+ (WebCore::FrameView::recalculateScrollbarOverlayStyle):
+ * page/FrameView.h:
+
2015-05-13 Brent Fulgham <[email protected]>
Scrollbars in overflow regions are not vanishing after scrolling with scroll snap points
Modified: trunk/Source/WebCore/page/ChromeClient.h (184296 => 184297)
--- trunk/Source/WebCore/page/ChromeClient.h 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebCore/page/ChromeClient.h 2015-05-13 19:28:21 UTC (rev 184297)
@@ -385,6 +385,8 @@
virtual void notifyScrollerThumbIsVisibleInRect(const IntRect&) { }
virtual void recommendedScrollbarStyleDidChange(ScrollbarStyle) { }
+ virtual WTF::Optional<ScrollbarOverlayStyle> preferredScrollbarOverlayStyle() { return ScrollbarOverlayStyleDefault; }
+
enum DialogType {
AlertDialog = 0,
ConfirmDialog = 1,
Modified: trunk/Source/WebCore/page/FrameView.cpp (184296 => 184297)
--- trunk/Source/WebCore/page/FrameView.cpp 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebCore/page/FrameView.cpp 2015-05-13 19:28:21 UTC (rev 184297)
@@ -378,8 +378,15 @@
void FrameView::recalculateScrollbarOverlayStyle()
{
ScrollbarOverlayStyle oldOverlayStyle = scrollbarOverlayStyle();
- ScrollbarOverlayStyle overlayStyle = ScrollbarOverlayStyleDefault;
+ WTF::Optional<ScrollbarOverlayStyle> clientOverlayStyle = frame().page() ? frame().page()->chrome().client().preferredScrollbarOverlayStyle() : ScrollbarOverlayStyleDefault;
+ if (clientOverlayStyle) {
+ if (clientOverlayStyle.value() != oldOverlayStyle)
+ setScrollbarOverlayStyle(clientOverlayStyle.value());
+ return;
+ }
+ ScrollbarOverlayStyle computedOverlayStyle = ScrollbarOverlayStyleDefault;
+
Color backgroundColor = documentBackgroundColor();
if (backgroundColor.isValid()) {
// Reduce the background color from RGB to a lightness value
@@ -388,11 +395,11 @@
double hue, saturation, lightness;
backgroundColor.getHSL(hue, saturation, lightness);
if (lightness <= .5 && backgroundColor.alpha() > 0)
- overlayStyle = ScrollbarOverlayStyleLight;
+ computedOverlayStyle = ScrollbarOverlayStyleLight;
}
- if (oldOverlayStyle != overlayStyle)
- setScrollbarOverlayStyle(overlayStyle);
+ if (oldOverlayStyle != computedOverlayStyle)
+ setScrollbarOverlayStyle(computedOverlayStyle);
}
void FrameView::clear()
Modified: trunk/Source/WebCore/page/FrameView.h (184296 => 184297)
--- trunk/Source/WebCore/page/FrameView.h 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebCore/page/FrameView.h 2015-05-13 19:28:21 UTC (rev 184297)
@@ -187,7 +187,7 @@
void resetScrollbarsAndClearContentsSize();
void prepareForDetach();
void detachCustomScrollbars();
- void recalculateScrollbarOverlayStyle();
+ WEBCORE_EXPORT void recalculateScrollbarOverlayStyle();
void clear();
Modified: trunk/Source/WebKit2/ChangeLog (184296 => 184297)
--- trunk/Source/WebKit2/ChangeLog 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/ChangeLog 2015-05-13 19:28:21 UTC (rev 184297)
@@ -1,3 +1,47 @@
+2015-05-13 Beth Dakin <[email protected]>
+
+ Need SPI to set the overlay scroll bar style
+ https://bugs.webkit.org/show_bug.cgi?id=144928
+ -and corresponding-
+ rdar://problem/20143614
+
+ Reviewed by Anders Carlsson.
+
+ Make scrollbarOverlayStyle a part of the creation parameters.
+ * Shared/WebPageCreationParameters.cpp:
+ (WebKit::WebPageCreationParameters::encode):
+ (WebKit::WebPageCreationParameters::decode):
+ * Shared/WebPageCreationParameters.h:
+
+ New SPI.
+ * UIProcess/API/Cocoa/WKViewPrivate.h:
+ * UIProcess/API/Cocoa/_WKOverlayScrollbarStyle.h: Added.
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView _setOverlayScrollbarStyle:]):
+ (-[WKView _overlayScrollbarStyle]):
+
+ Store m_scrollbarOverlayStyle on WebPageProxy, and set it to the WebProcess.
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::WebPageProxy):
+ (WebKit::WebPageProxy::creationParameters):
+ (WebKit::WebPageProxy::setOverlayScrollbarStyle):
+ * UIProcess/WebPageProxy.h:
+ (WebKit::WebPageProxy::overlayScrollbarStyle):
+ * WebKit2.xcodeproj/project.pbxproj:
+
+ Return WebPage’s scrollbarOverlayStyle().
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::preferredScrollbarOverlayStyle):
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+
+ Cache the scrollbarOverlayStyle() here for the WebProcess.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+ (WebKit::WebPage::setScrollbarOverlayStyle):
+ * WebProcess/WebPage/WebPage.h:
+ (WebKit::WebPage::scrollbarOverlayStyle):
+ * WebProcess/WebPage/WebPage.messages.in:
+
2015-05-13 Anders Carlsson <[email protected]>
Rename some StorageManager functions to indicate that they work on local storage entries
Modified: trunk/Source/WebKit2/Scripts/webkit/messages.py (184296 => 184297)
--- trunk/Source/WebKit2/Scripts/webkit/messages.py 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/Scripts/webkit/messages.py 2015-05-13 19:28:21 UTC (rev 184297)
@@ -294,8 +294,9 @@
template_string = template_string.strip()
class_template_types = {
+ 'HashMap': {'headers': ['<wtf/HashMap.h>'], 'argument_coder_headers': ['"ArgumentCoders.h"']},
+ 'Optional': {'headers': ['<wtf/Optional.h>'], 'argument_coder_headers': ['"ArgumentCoders.h"']},
'Vector': {'headers': ['<wtf/Vector.h>'], 'argument_coder_headers': ['"ArgumentCoders.h"']},
- 'HashMap': {'headers': ['<wtf/HashMap.h>'], 'argument_coder_headers': ['"ArgumentCoders.h"']},
'std::pair': {'headers': ['<utility>'], 'argument_coder_headers': ['"ArgumentCoders.h"']},
}
Modified: trunk/Source/WebKit2/Shared/WebPageCreationParameters.cpp (184296 => 184297)
--- trunk/Source/WebKit2/Shared/WebPageCreationParameters.cpp 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/Shared/WebPageCreationParameters.cpp 2015-05-13 19:28:21 UTC (rev 184297)
@@ -66,6 +66,7 @@
encoder << minimumLayoutSize;
encoder << autoSizingShouldExpandToViewHeight;
encoder.encodeEnum(scrollPinningBehavior);
+ encoder << scrollbarOverlayStyle;
encoder << backgroundExtendsBeyondPage;
encoder.encodeEnum(layerHostingMode);
encoder << mimeTypesWithCustomContentProviders;
@@ -152,6 +153,8 @@
return false;
if (!decoder.decodeEnum(parameters.scrollPinningBehavior))
return false;
+ if (!decoder.decode(parameters.scrollbarOverlayStyle))
+ return false;
if (!decoder.decode(parameters.backgroundExtendsBeyondPage))
return false;
if (!decoder.decodeEnum(parameters.layerHostingMode))
Modified: trunk/Source/WebKit2/Shared/WebPageCreationParameters.h (184296 => 184297)
--- trunk/Source/WebKit2/Shared/WebPageCreationParameters.h 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/Shared/WebPageCreationParameters.h 2015-05-13 19:28:21 UTC (rev 184297)
@@ -106,6 +106,10 @@
WebCore::ScrollPinningBehavior scrollPinningBehavior;
+ // FIXME: This should be WTF::Optional<WebCore::ScrollbarOverlayStyle>, but we would need to
+ // correctly handle enums inside Optionals when encoding and decoding.
+ WTF::Optional<uint32_t> scrollbarOverlayStyle;
+
bool backgroundExtendsBeyondPage;
LayerHostingMode layerHostingMode;
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h (184296 => 184297)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h 2015-05-13 19:28:21 UTC (rev 184297)
@@ -28,6 +28,7 @@
#import <WebKit/WKImmediateActionTypes.h>
#import <WebKit/WKLayoutMode.h>
#import <WebKit/WKView.h>
+#import <WebKit/_WKOverlayScrollbarStyle.h>
@interface WKView (Private)
@@ -89,6 +90,8 @@
@property (nonatomic, setter=_setTopContentInset:) CGFloat _topContentInset;
@property (nonatomic, setter=_setTotalHeightOfBanners:) CGFloat _totalHeightOfBanners;
+@property (nonatomic, setter=_setOverlayScrollbarStyle:) _WKOverlayScrollbarStyle _overlayScrollbarStyle;
+
@property (nonatomic, setter=_setLayoutMode:) WKLayoutMode _layoutMode;
// For use with _layoutMode = kWKLayoutModeFixedSize:
@property (nonatomic, setter=_setFixedLayoutSize:) CGSize _fixedLayoutSize;
Added: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKOverlayScrollbarStyle.h (0 => 184297)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKOverlayScrollbarStyle.h (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKOverlayScrollbarStyle.h 2015-05-13 19:28:21 UTC (rev 184297)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2015 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.
+ */
+
+#import <WebKit/WKFoundation.h>
+
+#if WK_API_ENABLED
+
+typedef NS_ENUM(NSUInteger, _WKOverlayScrollbarStyle) {
+ _WKOverlayScrollbarStyleDefault,
+ _WKOverlayScrollbarStyleDark,
+ _WKOverlayScrollbarStyleLight,
+
+ // Setting the overlay scrollbar style to automatic will cause WebKit to use its normal
+ // heuristic to choose an appropriate color.
+ _WKOverlayScrollbarStyleAutomatic
+
+} WK_ENUM_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+
+#endif
Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (184296 => 184297)
--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm 2015-05-13 19:28:21 UTC (rev 184297)
@@ -4442,6 +4442,47 @@
return _data->_totalHeightOfBanners;
}
+- (void)_setOverlayScrollbarStyle:(_WKOverlayScrollbarStyle)scrollbarStyle
+{
+ WTF::Optional<WebCore::ScrollbarOverlayStyle> coreScrollbarStyle;
+
+ switch (scrollbarStyle) {
+ case _WKOverlayScrollbarStyleDark:
+ coreScrollbarStyle = ScrollbarOverlayStyleDark;
+ break;
+ case _WKOverlayScrollbarStyleLight:
+ coreScrollbarStyle = ScrollbarOverlayStyleLight;
+ break;
+ case _WKOverlayScrollbarStyleDefault:
+ coreScrollbarStyle = ScrollbarOverlayStyleDefault;
+ break;
+ case _WKOverlayScrollbarStyleAutomatic:
+ default:
+ break;
+ }
+
+ _data->_page->setOverlayScrollbarStyle(coreScrollbarStyle);
+}
+
+- (_WKOverlayScrollbarStyle)_overlayScrollbarStyle
+{
+ WTF::Optional<WebCore::ScrollbarOverlayStyle> coreScrollbarStyle = _data->_page->overlayScrollbarStyle();
+
+ if (!coreScrollbarStyle)
+ return _WKOverlayScrollbarStyleAutomatic;
+
+ switch (coreScrollbarStyle.value()) {
+ case ScrollbarOverlayStyleDark:
+ return _WKOverlayScrollbarStyleDark;
+ case ScrollbarOverlayStyleLight:
+ return _WKOverlayScrollbarStyleLight;
+ case ScrollbarOverlayStyleDefault:
+ return _WKOverlayScrollbarStyleDefault;
+ default:
+ return _WKOverlayScrollbarStyleAutomatic;
+ }
+}
+
- (NSColor *)_pageExtendedBackgroundColor
{
WebCore::Color color = _data->_page->pageExtendedBackgroundColor();
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (184296 => 184297)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2015-05-13 19:28:21 UTC (rev 184297)
@@ -5000,6 +5000,10 @@
parameters.minimumLayoutSize = m_minimumLayoutSize;
parameters.autoSizingShouldExpandToViewHeight = m_autoSizingShouldExpandToViewHeight;
parameters.scrollPinningBehavior = m_scrollPinningBehavior;
+ if (m_scrollbarOverlayStyle)
+ parameters.scrollbarOverlayStyle = m_scrollbarOverlayStyle.value();
+ else
+ parameters.scrollbarOverlayStyle = Nullopt;
parameters.backgroundExtendsBeyondPage = m_backgroundExtendsBeyondPage;
parameters.layerHostingMode = m_layerHostingMode;
#if ENABLE(REMOTE_INSPECTOR)
@@ -5550,6 +5554,24 @@
m_process->send(Messages::WebPage::SetScrollPinningBehavior(pinning), m_pageID);
}
+void WebPageProxy::setOverlayScrollbarStyle(WTF::Optional<WebCore::ScrollbarOverlayStyle> scrollbarStyle)
+{
+ if (!m_scrollbarOverlayStyle && !scrollbarStyle)
+ return;
+
+ if ((m_scrollbarOverlayStyle && scrollbarStyle) && m_scrollbarOverlayStyle.value() == scrollbarStyle.value())
+ return;
+
+ m_scrollbarOverlayStyle = scrollbarStyle;
+
+ WTF::Optional<uint32_t> scrollbarStyleForMessage;
+ if (scrollbarStyle)
+ scrollbarStyleForMessage = static_cast<ScrollbarOverlayStyle>(scrollbarStyle.value());
+
+ if (isValid())
+ m_process->send(Messages::WebPage::SetScrollbarOverlayStyle(scrollbarStyleForMessage), m_pageID);
+}
+
#if ENABLE(SUBTLE_CRYPTO)
void WebPageProxy::wrapCryptoKey(const Vector<uint8_t>& key, bool& succeeded, Vector<uint8_t>& wrappedKey)
{
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (184296 => 184297)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2015-05-13 19:28:21 UTC (rev 184297)
@@ -972,6 +972,9 @@
void setScrollPinningBehavior(WebCore::ScrollPinningBehavior);
WebCore::ScrollPinningBehavior scrollPinningBehavior() { return m_scrollPinningBehavior; }
+ void setOverlayScrollbarStyle(WTF::Optional<WebCore::ScrollbarOverlayStyle>);
+ WTF::Optional<WebCore::ScrollbarOverlayStyle> overlayScrollbarStyle() { return m_scrollbarOverlayStyle; }
+
bool shouldRecordNavigationSnapshots() const { return m_shouldRecordNavigationSnapshots; }
void setShouldRecordNavigationSnapshots(bool shouldRecordSnapshots) { m_shouldRecordNavigationSnapshots = shouldRecordSnapshots; }
void recordNavigationSnapshot();
@@ -1719,6 +1722,7 @@
ProcessSuppressionDisabledToken m_preventProcessSuppressionCount;
WebCore::ScrollPinningBehavior m_scrollPinningBehavior;
+ WTF::Optional<WebCore::ScrollbarOverlayStyle> m_scrollbarOverlayStyle;
uint64_t m_navigationID;
Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (184296 => 184297)
--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2015-05-13 19:28:21 UTC (rev 184297)
@@ -1211,6 +1211,7 @@
9321D5861A38EE3C008052BE /* WKImmediateActionController.h in Headers */ = {isa = PBXBuildFile; fileRef = 9321D5851A38EE3C008052BE /* WKImmediateActionController.h */; };
9321D5881A38EE74008052BE /* WKImmediateActionController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9321D5871A38EE74008052BE /* WKImmediateActionController.mm */; };
9321D58A1A38F196008052BE /* WKImmediateActionTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9321D5891A38F196008052BE /* WKImmediateActionTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 9323611E1B015DA800FA9232 /* _WKOverlayScrollbarStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 9323611D1B015DA800FA9232 /* _WKOverlayScrollbarStyle.h */; settings = {ATTRIBUTES = (Private, ); }; };
934B724419F5B9BE00AE96D6 /* WKActionMenuItemTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 934B724319F5B9BE00AE96D6 /* WKActionMenuItemTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
935EEB9B1277617C003322B8 /* WKBundleBackForwardListItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 935EEB981277616D003322B8 /* WKBundleBackForwardListItem.h */; settings = {ATTRIBUTES = (Private, ); }; };
935EEB9E127761AC003322B8 /* WKBundleBackForwardList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 935EEB951277616D003322B8 /* WKBundleBackForwardList.cpp */; };
@@ -3434,6 +3435,7 @@
9321D5851A38EE3C008052BE /* WKImmediateActionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKImmediateActionController.h; sourceTree = "<group>"; };
9321D5871A38EE74008052BE /* WKImmediateActionController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKImmediateActionController.mm; sourceTree = "<group>"; };
9321D5891A38F196008052BE /* WKImmediateActionTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKImmediateActionTypes.h; sourceTree = "<group>"; };
+ 9323611D1B015DA800FA9232 /* _WKOverlayScrollbarStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKOverlayScrollbarStyle.h; sourceTree = "<group>"; };
934B724319F5B9BE00AE96D6 /* WKActionMenuItemTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKActionMenuItemTypes.h; sourceTree = "<group>"; };
935EEB8F1277615D003322B8 /* InjectedBundleBackForwardList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundleBackForwardList.cpp; sourceTree = "<group>"; };
935EEB901277615D003322B8 /* InjectedBundleBackForwardList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundleBackForwardList.h; sourceTree = "<group>"; };
@@ -5360,6 +5362,7 @@
37A64E5418F38E3C00EB30F1 /* _WKFormDelegate.h */,
37A64E5618F38F4600EB30F1 /* _WKFormInputSession.h */,
2D790A9C1AD7050D00AB90B3 /* _WKLayoutMode.h */,
+ 9323611D1B015DA800FA9232 /* _WKOverlayScrollbarStyle.h */,
1A43E828188F3CDC009E4D30 /* _WKProcessPoolConfiguration.h */,
1A43E827188F3CDC009E4D30 /* _WKProcessPoolConfiguration.mm */,
7C89D2D61A6C6BE6003A5FDE /* _WKProcessPoolConfigurationInternal.h */,
@@ -7879,6 +7882,7 @@
7C3F8C91173AF52D007B7F39 /* PluginInformation.h in Headers */,
1AEFCC1211D01F96008219D3 /* PluginInfoStore.h in Headers */,
1A3D610213A7CC2A00F95D4E /* PluginModuleInfo.h in Headers */,
+ 9323611E1B015DA800FA9232 /* _WKOverlayScrollbarStyle.h in Headers */,
1A043976124D034800FFBFB5 /* PluginProcess.h in Headers */,
1AC5FFC2174BFD1B0001483D /* PluginProcessAttributes.h in Headers */,
1A0EC906124C0AB8007EF4A5 /* PluginProcessConnection.h in Headers */,
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (184296 => 184297)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2015-05-13 19:28:21 UTC (rev 184297)
@@ -980,6 +980,11 @@
m_page->send(Messages::WebPageProxy::RecommendedScrollbarStyleDidChange(static_cast<int32_t>(newStyle)));
}
+WTF::Optional<ScrollbarOverlayStyle> WebChromeClient::preferredScrollbarOverlayStyle()
+{
+ return m_page->scrollbarOverlayStyle();
+}
+
Color WebChromeClient::underlayColor() const
{
return m_page->underlayColor();
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h (184296 => 184297)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h 2015-05-13 19:28:21 UTC (rev 184297)
@@ -276,6 +276,8 @@
virtual void notifyScrollerThumbIsVisibleInRect(const WebCore::IntRect&) override;
virtual void recommendedScrollbarStyleDidChange(WebCore::ScrollbarStyle newStyle) override;
+ virtual WTF::Optional<WebCore::ScrollbarOverlayStyle> preferredScrollbarOverlayStyle() override;
+
virtual WebCore::Color underlayColor() const override;
virtual void pageExtendedBackgroundColorDidChange(WebCore::Color) const override;
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (184296 => 184297)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2015-05-13 19:28:21 UTC (rev 184297)
@@ -450,6 +450,11 @@
setAutoSizingShouldExpandToViewHeight(parameters.autoSizingShouldExpandToViewHeight);
setScrollPinningBehavior(parameters.scrollPinningBehavior);
+ if (parameters.scrollbarOverlayStyle)
+ m_scrollbarOverlayStyle = static_cast<ScrollbarOverlayStyle>(parameters.scrollbarOverlayStyle.value());
+ else
+ m_scrollbarOverlayStyle = WTF::Optional<ScrollbarOverlayStyle>();
+
setBackgroundExtendsBeyondPage(parameters.backgroundExtendsBeyondPage);
setTopContentInset(parameters.topContentInset);
@@ -4849,6 +4854,15 @@
m_page->mainFrame().view()->setScrollPinningBehavior(m_scrollPinningBehavior);
}
+void WebPage::setScrollbarOverlayStyle(WTF::Optional<uint32_t> scrollbarStyle)
+{
+ if (scrollbarStyle)
+ m_scrollbarOverlayStyle = static_cast<ScrollbarOverlayStyle>(scrollbarStyle.value());
+ else
+ m_scrollbarOverlayStyle = WTF::Optional<ScrollbarOverlayStyle>();
+ m_page->mainFrame().view()->recalculateScrollbarOverlayStyle();
+}
+
PassRefPtr<DocumentLoader> WebPage::createDocumentLoader(Frame& frame, const ResourceRequest& request, const SubstituteData& substituteData)
{
RefPtr<WebDocumentLoader> documentLoader = WebDocumentLoader::create(request, substituteData);
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (184296 => 184297)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2015-05-13 19:28:21 UTC (rev 184297)
@@ -860,6 +860,9 @@
WebCore::ScrollPinningBehavior scrollPinningBehavior() { return m_scrollPinningBehavior; }
void setScrollPinningBehavior(uint32_t /* WebCore::ScrollPinningBehavior */ pinning);
+ WTF::Optional<WebCore::ScrollbarOverlayStyle> scrollbarOverlayStyle() { return m_scrollbarOverlayStyle; }
+ void setScrollbarOverlayStyle(WTF::Optional<uint32_t /* WebCore::ScrollbarOverlayStyle */> scrollbarStyle);
+
PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(WebCore::Frame&, const WebCore::ResourceRequest&, const WebCore::SubstituteData&);
void getBytecodeProfile(uint64_t callbackID);
@@ -1348,6 +1351,7 @@
unsigned m_maximumRenderingSuppressionToken;
WebCore::ScrollPinningBehavior m_scrollPinningBehavior;
+ WTF::Optional<WebCore::ScrollbarOverlayStyle> m_scrollbarOverlayStyle;
bool m_useAsyncScrolling;
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (184296 => 184297)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in 2015-05-13 19:26:50 UTC (rev 184296)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in 2015-05-13 19:28:21 UTC (rev 184297)
@@ -407,6 +407,7 @@
#endif
SetScrollPinningBehavior(uint32_t pinning)
+ SetScrollbarOverlayStyle(Optional<uint32_t> scrollbarStyle)
GetBytecodeProfile(uint64_t callbackID)