Title: [282924] trunk
Revision
282924
Author
j...@apple.com
Date
2021-09-22 22:05:02 -0700 (Wed, 22 Sep 2021)

Log Message

Make SharedBuffer inherit from ThreadSafeRefCounted
https://bugs.webkit.org/show_bug.cgi?id=230662
rdar://83419269

Source/WebCore:

The SourceBufferPrivateAVFObjC uses dispatch_async that takes an objective-C class.
This copies its argument rather than move it and we end up with the SharedBuffer
captured in the lambda to have its ref count be > 1.
The easiest workaround is to make SharedBuffer use thread-safe refcount.
Of course, this doesn't make a SharedBuffer a thread-safe class, but it allows
to safely move it between threads.

Already covered by existing tests.

Reviewed by Chris Dumez.

* platform/SharedBuffer.h:

LayoutTests:

Revert bug 230644.

Reviewed by Chris Dumez.

* platform/mac-wk1/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (282923 => 282924)


--- trunk/LayoutTests/ChangeLog	2021-09-23 04:56:05 UTC (rev 282923)
+++ trunk/LayoutTests/ChangeLog	2021-09-23 05:05:02 UTC (rev 282924)
@@ -1,3 +1,15 @@
+2021-09-22  Jean-Yves Avenard  <j...@apple.com>
+
+        Make SharedBuffer inherit from ThreadSafeRefCounted
+        https://bugs.webkit.org/show_bug.cgi?id=230662
+        rdar://83419269
+
+        Revert bug 230644.
+
+        Reviewed by Chris Dumez.
+
+        * platform/mac-wk1/TestExpectations:
+
 2021-09-22  Andres Gonzalez  <andresg...@apple.com>
 
         Fix for LayoutTests/accessibility/heading-level.html in isolated tree mode.

Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (282923 => 282924)


--- trunk/LayoutTests/platform/mac-wk1/TestExpectations	2021-09-23 04:56:05 UTC (rev 282923)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations	2021-09-23 05:05:02 UTC (rev 282924)
@@ -1300,13 +1300,6 @@
 [ BigSur+ ] imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framerate.html [ Skip ]
 [ BigSur+ ] imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html [ Skip ]
 
-webkit.org/b/230644 [ Debug ] imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-negative.html [ Pass Crash ]
-webkit.org/b/230644 [ Debug ] imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-implicit.html [ Pass Crash ]
-webkit.org/b/230644 [ Debug ] media/media-source/media-source-abort-resets-parser.html [ Pass Crash ]
-webkit.org/b/230644 [ Debug ] media/media-source/media-source-resize.html [ Pass Crash ]
-webkit.org/b/230644 [ Debug ] media/media-source/media-source-trackid-change.html [ Pass Crash ]
-webkit.org/b/230644 [ Debug ] media/media-source/only-bcp47-language-tags-accepted-as-valid.html [ Pass Crash ]
-
 [ BigSur ] imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-filter-order.html [ Pass ImageOnlyFailure ]
 
 [ BigSur ] imported/w3c/web-platform-tests/css/css-will-change/will-change-fixpos-cb-transform-1.html [ Pass ImageOnlyFailure ]

Modified: trunk/Source/WebCore/ChangeLog (282923 => 282924)


--- trunk/Source/WebCore/ChangeLog	2021-09-23 04:56:05 UTC (rev 282923)
+++ trunk/Source/WebCore/ChangeLog	2021-09-23 05:05:02 UTC (rev 282924)
@@ -1,3 +1,22 @@
+2021-09-22  Jean-Yves Avenard  <j...@apple.com>
+
+        Make SharedBuffer inherit from ThreadSafeRefCounted
+        https://bugs.webkit.org/show_bug.cgi?id=230662
+        rdar://83419269
+
+        The SourceBufferPrivateAVFObjC uses dispatch_async that takes an objective-C class.
+        This copies its argument rather than move it and we end up with the SharedBuffer
+        captured in the lambda to have its ref count be > 1.
+        The easiest workaround is to make SharedBuffer use thread-safe refcount.
+        Of course, this doesn't make a SharedBuffer a thread-safe class, but it allows
+        to safely move it between threads.
+
+        Already covered by existing tests.
+
+        Reviewed by Chris Dumez.
+
+        * platform/SharedBuffer.h:
+
 2021-09-22  Myles C. Maxfield  <mmaxfi...@apple.com>
 
         [Cocoa] Hook up palettes to CoreText

Modified: trunk/Source/WebCore/platform/SharedBuffer.h (282923 => 282924)


--- trunk/Source/WebCore/platform/SharedBuffer.h	2021-09-23 04:56:05 UTC (rev 282923)
+++ trunk/Source/WebCore/platform/SharedBuffer.h	2021-09-23 05:05:02 UTC (rev 282924)
@@ -30,7 +30,6 @@
 #include <wtf/FileSystem.h>
 #include <wtf/Forward.h>
 #include <wtf/Function.h>
-#include <wtf/RefCounted.h>
 #include <wtf/Span.h>
 #include <wtf/ThreadSafeRefCounted.h>
 #include <wtf/Variant.h>
@@ -65,7 +64,7 @@
 
 class SharedBufferDataView;
 
-class WEBCORE_EXPORT SharedBuffer : public RefCounted<SharedBuffer> {
+class WEBCORE_EXPORT SharedBuffer : public ThreadSafeRefCounted<SharedBuffer> {
 public:
     static Ref<SharedBuffer> create() { return adoptRef(*new SharedBuffer); }
     static Ref<SharedBuffer> create(const uint8_t* data, size_t size) { return adoptRef(*new SharedBuffer(data, size)); }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to