Let clients override _WKThumbnailView's background color
authorrmondello@apple.com <rmondello@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Jul 2018 01:19:40 +0000 (01:19 +0000)
committerrmondello@apple.com <rmondello@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Jul 2018 01:19:40 +0000 (01:19 +0000)
https://bugs.webkit.org/show_bug.cgi?id=187788

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/_WKThumbnailView.h: Declare a property.
* UIProcess/API/Cocoa/_WKThumbnailView.mm: Define an ivar.
(-[_WKThumbnailView updateLayer]): Consult the background color.
(-[_WKThumbnailView setOverrideBackgroundColor:]): Notably, call -updateLayer.
(-[_WKThumbnailView overrideBackgroundColor]): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233945 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/ChangeLog
Source/WebKit/UIProcess/API/Cocoa/_WKThumbnailView.h
Source/WebKit/UIProcess/API/Cocoa/_WKThumbnailView.mm

index b9ae83c..0c91fa0 100644 (file)
@@ -1,3 +1,17 @@
+2018-07-18  Ricky Mondello  <rmondello@apple.com>
+
+        Let clients override _WKThumbnailView's background color
+
+        https://bugs.webkit.org/show_bug.cgi?id=187788
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/API/Cocoa/_WKThumbnailView.h: Declare a property.
+        * UIProcess/API/Cocoa/_WKThumbnailView.mm: Define an ivar.
+        (-[_WKThumbnailView updateLayer]): Consult the background color.
+        (-[_WKThumbnailView setOverrideBackgroundColor:]): Notably, call -updateLayer.
+        (-[_WKThumbnailView overrideBackgroundColor]): Added.
+
 2018-07-18  Jer Noble  <jer.noble@apple.com>
 
         CRASH at WebKit: WebKit::WebFullScreenManagerProxy::saveScrollPosition
index b31a05f..d535edb 100644 (file)
@@ -48,6 +48,8 @@ WK_CLASS_AVAILABLE(macosx(10.10), ios(8.0))
 // Defaults to NO.
 @property (nonatomic) BOOL shouldKeepSnapshotWhenRemovedFromSuperview;
 
+@property (strong, nonatomic) NSColor *overrideBackgroundColor;
+
 // This should be removed when all clients go away; it is always YES now.
 @property (nonatomic) BOOL usesSnapshot;
 
index f89218a..5d76723 100644 (file)
@@ -57,6 +57,8 @@ using namespace WebKit;
     BOOL _snapshotWasDeferred;
     CGFloat _lastSnapshotScale;
     CGSize _lastSnapshotMaximumSize;
+
+    RetainPtr<NSColor *> _overrideBackgroundColor;
 }
 
 @synthesize snapshotSize=_snapshotSize;
@@ -111,7 +113,8 @@ using namespace WebKit;
 {
     [super updateLayer];
 
-    self.layer.backgroundColor = [NSColor quaternaryLabelColor].CGColor;
+    NSColor *backgroundColor = self.overrideBackgroundColor ?: [NSColor quaternaryLabelColor];
+    self.layer.backgroundColor = backgroundColor.CGColor;
 }
 
 - (void)requestSnapshot
@@ -147,6 +150,20 @@ using namespace WebKit;
     });
 }
 
+- (void)setOverrideBackgroundColor:(NSColor *)overrideBackgroundColor
+{
+    if ([_overrideBackgroundColor isEqual:overrideBackgroundColor])
+        return;
+
+    _overrideBackgroundColor = overrideBackgroundColor;
+    [self setNeedsDisplay:YES];
+}
+
+- (NSColor *)overrideBackgroundColor
+{
+    return _overrideBackgroundColor.get();
+}
+
 - (void)_viewWasUnparented
 {
     if (!_exclusivelyUsesSnapshot) {