Title: [248101] trunk/Source/WebCore
Revision
248101
Author
cdu...@apple.com
Date
2019-08-01 07:05:13 -0700 (Thu, 01 Aug 2019)

Log Message

[iOS][WK1] Unsafe unsafe of WeakPtr<Document> from UIThread under PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit()
https://bugs.webkit.org/show_bug.cgi?id=200324

Reviewed by Ryosuke Niwa.

The Document is a WebThread object, but a WeakPtr<Document> was dereferenced from the
UIThread in HTMLMediaElement::supportsSeeking(), from the PlaybackSessionInterfaceAVKit
constructor. To address the issue we now grab the WebThread lock before constructing
the PlaybackSessionInterfaceAVKit.

* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(VideoFullscreenControllerContext::setUpFullscreen):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (248100 => 248101)


--- trunk/Source/WebCore/ChangeLog	2019-08-01 13:36:44 UTC (rev 248100)
+++ trunk/Source/WebCore/ChangeLog	2019-08-01 14:05:13 UTC (rev 248101)
@@ -1,3 +1,18 @@
+2019-08-01  Chris Dumez  <cdu...@apple.com>
+
+        [iOS][WK1] Unsafe unsafe of WeakPtr<Document> from UIThread under PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit()
+        https://bugs.webkit.org/show_bug.cgi?id=200324
+
+        Reviewed by Ryosuke Niwa.
+
+        The Document is a WebThread object, but a WeakPtr<Document> was dereferenced from the
+        UIThread in HTMLMediaElement::supportsSeeking(), from the PlaybackSessionInterfaceAVKit
+        constructor. To address the issue we now grab the WebThread lock before constructing
+        the PlaybackSessionInterfaceAVKit.
+
+        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
+        (VideoFullscreenControllerContext::setUpFullscreen):
+
 2019-08-01  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [SOUP] Switch to use libsoup WebSockets API

Modified: trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm (248100 => 248101)


--- trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm	2019-08-01 13:36:44 UTC (rev 248100)
+++ trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm	2019-08-01 14:05:13 UTC (rev 248101)
@@ -977,6 +977,7 @@
 
     dispatch_async(dispatch_get_main_queue(), [protectedThis = makeRefPtr(this), this, videoElementClientRect, viewRef, mode, allowsPictureInPicture] {
         ASSERT(isUIThread());
+        WebThreadLock();
 
         Ref<PlaybackSessionInterfaceAVKit> sessionInterface = PlaybackSessionInterfaceAVKit::create(*this);
         m_interface = VideoFullscreenInterfaceAVKit::create(sessionInterface.get());
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to