Title: [280841] trunk/Source/WebKit
Revision
280841
Author
[email protected]
Date
2021-08-10 08:20:38 -0700 (Tue, 10 Aug 2021)

Log Message

ThreadSanitizer: data race in WTF::StringImpl::deref() under WebKit::WebProcessPool::setMediaAccessibilityPreferences()
<https://webkit.org/b/228932>

Reviewed by Chris Dumez.

Covered by numerous layout tests running with TSan including:
    crypto/crypto-random-values-types.html

* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::setMediaAccessibilityPreferences):
- Make an isolatedCopy() of Vector<String> object before passing
  it to the main thread.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (280840 => 280841)


--- trunk/Source/WebKit/ChangeLog	2021-08-10 14:31:51 UTC (rev 280840)
+++ trunk/Source/WebKit/ChangeLog	2021-08-10 15:20:38 UTC (rev 280841)
@@ -1,3 +1,18 @@
+2021-08-10  David Kilzer  <[email protected]>
+
+        ThreadSanitizer: data race in WTF::StringImpl::deref() under WebKit::WebProcessPool::setMediaAccessibilityPreferences()
+        <https://webkit.org/b/228932>
+
+        Reviewed by Chris Dumez.
+
+        Covered by numerous layout tests running with TSan including:
+            crypto/crypto-random-values-types.html
+
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::WebProcessPool::setMediaAccessibilityPreferences):
+        - Make an isolatedCopy() of Vector<String> object before passing
+          it to the main thread.
+
 2021-08-09  Chris Dumez  <[email protected]>
 
         Blob URL changes after loading it

Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (280840 => 280841)


--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2021-08-10 14:31:51 UTC (rev 280840)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2021-08-10 15:20:38 UTC (rev 280841)
@@ -189,7 +189,7 @@
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), [weakProcess = makeWeakPtr(process)] {
         auto captionDisplayMode = WebCore::CaptionUserPreferencesMediaAF::platformCaptionDisplayMode();
         auto preferredLanguages = WebCore::CaptionUserPreferencesMediaAF::platformPreferredLanguages();
-        callOnMainRunLoop([weakProcess, captionDisplayMode, preferredLanguages] {
+        callOnMainRunLoop([weakProcess, captionDisplayMode, preferredLanguages = WTFMove(preferredLanguages).isolatedCopy()] {
             if (weakProcess)
                 weakProcess->send(Messages::WebProcess::SetMediaAccessibilityPreferences(captionDisplayMode, preferredLanguages), 0);
         });
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to