Title: [223437] trunk/Source/WebKit
- Revision
- 223437
- Author
- [email protected]
- Date
- 2017-10-16 14:02:48 -0700 (Mon, 16 Oct 2017)
Log Message
Expose more WKView properties as WKWebViewPrivate SPI
https://bugs.webkit.org/show_bug.cgi?id=178349
<rdar://problem/34980919>
Reviewed by Tim Horton.
_backgroundExtendsBeyondPage was already exposed on iOS, but we need it on Mac, too.
A few other properties also need exposing.
* UIProcess/API/Cocoa/WKWebView.mm:
(toAPIScrollbarStyle):
(toCoreScrollbarStyle):
(-[WKWebView _setBackgroundExtendsBeyondPage:]):
(-[WKWebView _backgroundExtendsBeyondPage]):
(-[WKWebView _setOverlayScrollbarStyle:]):
(-[WKWebView _overlayScrollbarStyle]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (223436 => 223437)
--- trunk/Source/WebKit/ChangeLog 2017-10-16 20:52:04 UTC (rev 223436)
+++ trunk/Source/WebKit/ChangeLog 2017-10-16 21:02:48 UTC (rev 223437)
@@ -1,3 +1,23 @@
+2017-10-16 Alex Christensen <[email protected]>
+
+ Expose more WKView properties as WKWebViewPrivate SPI
+ https://bugs.webkit.org/show_bug.cgi?id=178349
+ <rdar://problem/34980919>
+
+ Reviewed by Tim Horton.
+
+ _backgroundExtendsBeyondPage was already exposed on iOS, but we need it on Mac, too.
+ A few other properties also need exposing.
+
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (toAPIScrollbarStyle):
+ (toCoreScrollbarStyle):
+ (-[WKWebView _setBackgroundExtendsBeyondPage:]):
+ (-[WKWebView _backgroundExtendsBeyondPage]):
+ (-[WKWebView _setOverlayScrollbarStyle:]):
+ (-[WKWebView _overlayScrollbarStyle]):
+ * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+
2017-10-16 Chris Dumez <[email protected]>
Log using differential privacy domains where the WebContent process crashes
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (223436 => 223437)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2017-10-16 20:52:04 UTC (rev 223436)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2017-10-16 21:02:48 UTC (rev 223437)
@@ -210,6 +210,40 @@
return pageToViewMap().get(&page);
}
+#if PLATFORM(MAC)
+static _WKOverlayScrollbarStyle toAPIScrollbarStyle(std::optional<WebCore::ScrollbarOverlayStyle> coreScrollbarStyle)
+{
+ if (!coreScrollbarStyle)
+ return _WKOverlayScrollbarStyleAutomatic;
+
+ switch (coreScrollbarStyle.value()) {
+ case WebCore::ScrollbarOverlayStyleDark:
+ return _WKOverlayScrollbarStyleDark;
+ case WebCore::ScrollbarOverlayStyleLight:
+ return _WKOverlayScrollbarStyleLight;
+ case WebCore::ScrollbarOverlayStyleDefault:
+ return _WKOverlayScrollbarStyleDefault;
+ }
+ ASSERT_NOT_REACHED();
+ return _WKOverlayScrollbarStyleAutomatic;
+}
+
+static std::optional<WebCore::ScrollbarOverlayStyle> toCoreScrollbarStyle(_WKOverlayScrollbarStyle scrollbarStyle)
+{
+ switch (scrollbarStyle) {
+ case _WKOverlayScrollbarStyleDark:
+ return WebCore::ScrollbarOverlayStyleDark;
+ case _WKOverlayScrollbarStyleLight:
+ return WebCore::ScrollbarOverlayStyleLight;
+ case _WKOverlayScrollbarStyleDefault:
+ return WebCore::ScrollbarOverlayStyleDefault;
+ case _WKOverlayScrollbarStyleAutomatic:
+ break;
+ }
+ return std::nullopt;
+}
+#endif
+
@implementation WKWebView {
std::unique_ptr<WebKit::NavigationState> _navigationState;
std::unique_ptr<WebKit::UIDelegate> _uiDelegate;
@@ -3714,7 +3748,7 @@
{
}
-#if ENABLE(DRAG_SUPPORT) && WK_API_ENABLED
+#if ENABLE(DRAG_SUPPORT)
- (WKDragDestinationAction)_web_dragDestinationActionForDraggingInfo:(id <NSDraggingInfo>)draggingInfo
{
@@ -4592,6 +4626,16 @@
_page->setFixedLayoutSize(WebCore::expandedIntSize(WebCore::FloatSize(fixedLayoutSize)));
}
+- (void)_setBackgroundExtendsBeyondPage:(BOOL)backgroundExtends
+{
+ _page->setBackgroundExtendsBeyondPage(backgroundExtends);
+}
+
+- (BOOL)_backgroundExtendsBeyondPage
+{
+ return _page->backgroundExtendsBeyondPage();
+}
+
- (CGFloat)_viewScale
{
return _page->viewScaleFactor();
@@ -4828,16 +4872,6 @@
[self _dispatchSetMaximumUnobscuredSize:WebCore::FloatSize(size)];
}
-- (void)_setBackgroundExtendsBeyondPage:(BOOL)backgroundExtends
-{
- _page->setBackgroundExtendsBeyondPage(backgroundExtends);
-}
-
-- (BOOL)_backgroundExtendsBeyondPage
-{
- return _page->backgroundExtendsBeyondPage();
-}
-
- (void)_setAllowsViewportShrinkToFit:(BOOL)allowShrinkToFit
{
_allowsViewportShrinkToFit = allowShrinkToFit;
@@ -5250,7 +5284,6 @@
[self _setDrawsBackground:!drawsTransparentBackground];
}
-#if WK_API_ENABLED
- (NSView *)_inspectorAttachmentView
{
return _impl->inspectorAttachmentView();
@@ -5260,8 +5293,17 @@
{
_impl->setInspectorAttachmentView(newView);
}
-#endif
+- (void)_setOverlayScrollbarStyle:(_WKOverlayScrollbarStyle)scrollbarStyle
+{
+ _impl->setOverlayScrollbarStyle(toCoreScrollbarStyle(scrollbarStyle));
+}
+
+- (_WKOverlayScrollbarStyle)_overlayScrollbarStyle
+{
+ return toAPIScrollbarStyle(_impl->overlayScrollbarStyle());
+}
+
- (BOOL)_windowOcclusionDetectionEnabled
{
return _impl->windowOcclusionDetectionEnabled();
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h (223436 => 223437)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h 2017-10-16 20:52:04 UTC (rev 223436)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h 2017-10-16 21:02:48 UTC (rev 223437)
@@ -30,6 +30,7 @@
#import <WebKit/_WKActivatedElementInfo.h>
#import <WebKit/_WKFindOptions.h>
#import <WebKit/_WKLayoutMode.h>
+#import <WebKit/_WKOverlayScrollbarStyle.h>
#import <WebKit/_WKRenderingProgressEvents.h>
typedef NS_ENUM(NSInteger, _WKPaginationMode) {
@@ -173,6 +174,8 @@
@property (nonatomic, setter=_setViewScale:) CGFloat _viewScale;
+@property (nonatomic, setter=_setBackgroundExtendsBeyondPage:) BOOL _backgroundExtendsBeyondPage WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(8.0));
+
#if TARGET_OS_IPHONE
// DERECATED: The setters of the three following function are deprecated, please use overrideLayoutParameters.
// Define the smallest size a page take with a regular viewport.
@@ -196,8 +199,6 @@
@property (nonatomic, setter=_setAllowsViewportShrinkToFit:) BOOL _allowsViewportShrinkToFit;
-@property (nonatomic, setter=_setBackgroundExtendsBeyondPage:) BOOL _backgroundExtendsBeyondPage;
-
// FIXME: Remove these three properties once we expose WKWebViewContentProvider as API.
@property (nonatomic, readonly, getter=_isDisplayingPDF) BOOL _displayingPDF;
@property (nonatomic, readonly) NSData *_dataForDisplayedPDF;
@@ -285,6 +286,9 @@
- (void)_prepareForMoveToWindow:(NSWindow *)targetWindow completionHandler:(void(^)(void))completionHandler WK_API_AVAILABLE(macosx(10.13));
+@property (nonatomic, setter=_setOverlayScrollbarStyle:) _WKOverlayScrollbarStyle _overlayScrollbarStyle WK_API_AVAILABLE(macosx(WK_MAC_TBA));
+@property (strong, nonatomic, setter=_setInspectorAttachmentView:) NSView *_inspectorAttachmentView WK_API_AVAILABLE(macosx(WK_MAC_TBA));
+
#endif
- (WKNavigation *)_reloadWithoutContentBlockers WK_API_AVAILABLE(macosx(10.12), ios(10.0));
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes