Title: [275188] trunk/Source/WebKit
Revision
275188
Author
achristen...@apple.com
Date
2021-03-29 15:57:19 -0700 (Mon, 29 Mar 2021)

Log Message

[Big Sur arm64] TestWebKitAPI.WebKit.AccessibilityReduceMotion is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=222824

Reviewed by Tim Horton.

Use smart pointers instead of storing raw ObjC pointers as ivars.

* UIProcess/Cocoa/PreferenceObserver.mm:
(-[WKUserDefaults findPreferenceChangesAndNotifyForKeys:toValuesForKeys:]):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (275187 => 275188)


--- trunk/Source/WebKit/ChangeLog	2021-03-29 22:55:49 UTC (rev 275187)
+++ trunk/Source/WebKit/ChangeLog	2021-03-29 22:57:19 UTC (rev 275188)
@@ -1,3 +1,15 @@
+2021-03-29  Alex Christensen  <achristen...@webkit.org>
+
+        [Big Sur arm64] TestWebKitAPI.WebKit.AccessibilityReduceMotion is a flaky crash
+        https://bugs.webkit.org/show_bug.cgi?id=222824
+
+        Reviewed by Tim Horton.
+
+        Use smart pointers instead of storing raw ObjC pointers as ivars.
+
+        * UIProcess/Cocoa/PreferenceObserver.mm:
+        (-[WKUserDefaults findPreferenceChangesAndNotifyForKeys:toValuesForKeys:]):
+
 2021-03-29  Wenson Hsieh  <wenson_hs...@apple.com>
 
         Add a way for internal clients to hit-test for selectable text in user agent shadow roots

Modified: trunk/Source/WebKit/UIProcess/Cocoa/PreferenceObserver.mm (275187 => 275188)


--- trunk/Source/WebKit/UIProcess/Cocoa/PreferenceObserver.mm	2021-03-29 22:55:49 UTC (rev 275187)
+++ trunk/Source/WebKit/UIProcess/Cocoa/PreferenceObserver.mm	2021-03-29 22:57:19 UTC (rev 275188)
@@ -28,12 +28,13 @@
 
 #import "WebProcessPool.h"
 #import <pal/spi/cocoa/NSUserDefaultsSPI.h>
+#import <wtf/WeakObjCPtr.h>
 
 @interface WKUserDefaults : NSUserDefaults {
 @private
-    NSString *m_suiteName;
+    RetainPtr<NSString> m_suiteName;
 @public
-    WKPreferenceObserver *m_observer;
+    WeakObjCPtr<WKPreferenceObserver> m_observer;
 }
 - (void)findPreferenceChangesAndNotifyForKeys:(NSDictionary<NSString *, id> *)oldValues toValuesForKeys:(NSDictionary<NSString *, id> *)newValues;
 @end
@@ -71,7 +72,7 @@
         }
 
         auto globalValue = adoptCF(CFPreferencesCopyValue((__bridge CFStringRef)key, kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesAnyHost));
-        auto domainValue = adoptCF(CFPreferencesCopyValue((__bridge CFStringRef)key, (__bridge CFStringRef)m_suiteName, kCFPreferencesCurrentUser, kCFPreferencesAnyHost));
+        auto domainValue = adoptCF(CFPreferencesCopyValue((__bridge CFStringRef)key, (__bridge CFStringRef)m_suiteName.get(), kCFPreferencesCurrentUser, kCFPreferencesAnyHost));
 
         auto preferenceValuesAreEqual = [] (id a, id b) {
             return a == b || [a isEqual:b];
@@ -81,7 +82,7 @@
             [m_observer preferenceDidChange:nil key:key encodedValue:encodedString];
 
         if (preferenceValuesAreEqual((__bridge id)domainValue.get(), newValue))
-            [m_observer preferenceDidChange:m_suiteName key:key encodedValue:encodedString];
+            [m_observer preferenceDidChange:m_suiteName.get() key:key encodedValue:encodedString];
     }
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to