Title: [242128] trunk/Source
Revision
242128
Author
[email protected]
Date
2019-02-27 08:59:08 -0800 (Wed, 27 Feb 2019)

Log Message

REGRESSION: WebKit content crash in Base System (because NSAppearance is NULL).
https://bugs.webkit.org/show_bug.cgi?id=195086
rdar://problem/48419124

Reviewed by Tim Horton.

Source/WebCore:

* platform/mac/ScrollAnimatorMac.mm:
(-[WebScrollerImpDelegate effectiveAppearanceForScrollerImp:]): Always return a valid NSAppearance.

Source/WebKit:

* UIProcess/RemoteLayerTree/mac/ScrollerMac.mm:
(-[WKScrollerImpDelegate effectiveAppearanceForScrollerImp:]): Always return a valid NSAppearance.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (242127 => 242128)


--- trunk/Source/WebCore/ChangeLog	2019-02-27 07:50:04 UTC (rev 242127)
+++ trunk/Source/WebCore/ChangeLog	2019-02-27 16:59:08 UTC (rev 242128)
@@ -1,3 +1,14 @@
+2019-02-27  Timothy Hatcher  <[email protected]>
+
+        REGRESSION: WebKit content crash in Base System (because NSAppearance is NULL).
+        https://bugs.webkit.org/show_bug.cgi?id=195086
+        rdar://problem/48419124
+
+        Reviewed by Tim Horton.
+
+        * platform/mac/ScrollAnimatorMac.mm:
+        (-[WebScrollerImpDelegate effectiveAppearanceForScrollerImp:]): Always return a valid NSAppearance.
+
 2019-02-26  Wenson Hsieh  <[email protected]>
 
         Remove conditional compile guard for InsertIntoTextNodeCommand::doReapply

Modified: trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm (242127 => 242128)


--- trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm	2019-02-27 07:50:04 UTC (rev 242127)
+++ trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm	2019-02-27 16:59:08 UTC (rev 242128)
@@ -536,8 +536,11 @@
         return [NSAppearance currentAppearance];
 
     // Keep this in sync with FrameView::paintScrollCorner.
+    // The base system does not support dark Aqua, so we might get a null result.
     bool useDarkAppearance = _scrollbar->scrollableArea().useDarkAppearanceForScrollbars();
-    return [NSAppearance appearanceNamed:useDarkAppearance ? NSAppearanceNameDarkAqua : NSAppearanceNameAqua];
+    if (auto *appearance = [NSAppearance appearanceNamed:useDarkAppearance ? NSAppearanceNameDarkAqua : NSAppearanceNameAqua])
+        return appearance;
+    return [NSAppearance currentAppearance];
 }
 #endif
 

Modified: trunk/Source/WebKit/ChangeLog (242127 => 242128)


--- trunk/Source/WebKit/ChangeLog	2019-02-27 07:50:04 UTC (rev 242127)
+++ trunk/Source/WebKit/ChangeLog	2019-02-27 16:59:08 UTC (rev 242128)
@@ -1,3 +1,14 @@
+2019-02-27  Timothy Hatcher  <[email protected]>
+
+        REGRESSION: WebKit content crash in Base System (because NSAppearance is NULL).
+        https://bugs.webkit.org/show_bug.cgi?id=195086
+        rdar://problem/48419124
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/RemoteLayerTree/mac/ScrollerMac.mm:
+        (-[WKScrollerImpDelegate effectiveAppearanceForScrollerImp:]): Always return a valid NSAppearance.
+
 2019-02-26  Chris Dumez  <[email protected]>
 
         [PSON] Add mechanism to clear suspended pages while bypassing the WebProcess cache

Modified: trunk/Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollerMac.mm (242127 => 242128)


--- trunk/Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollerMac.mm	2019-02-27 07:50:04 UTC (rev 242127)
+++ trunk/Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollerMac.mm	2019-02-27 16:59:08 UTC (rev 242128)
@@ -203,7 +203,10 @@
     if (!_scroller)
         return [NSAppearance currentAppearance];
 
-    return [NSAppearance appearanceNamed:_scroller->pair().useDarkAppearance() ? NSAppearanceNameDarkAqua : NSAppearanceNameAqua];
+    // The base system does not support dark Aqua, so we might get a null result.
+    if (auto *appearance = [NSAppearance appearanceNamed:_scroller->pair().useDarkAppearance() ? NSAppearanceNameDarkAqua : NSAppearanceNameAqua])
+        return appearance;
+    return [NSAppearance currentAppearance];
 }
 #endif
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to