Title: [146622] trunk/Source/WebCore
Revision
146622
Author
[email protected]
Date
2013-03-22 09:24:48 -0700 (Fri, 22 Mar 2013)

Log Message

REGRESSION: -webkit-box-reflect does not show on video elements
https://bugs.webkit.org/show_bug.cgi?id=112397

Reviewed by Eric Carlson.

Work around the ASSERTs generated when setting an AVPlayerLayer's player property
during a CA flush by setting the player property during the next runloop, outside
of a CA flush.

* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::clone):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (146621 => 146622)


--- trunk/Source/WebCore/ChangeLog	2013-03-22 16:22:26 UTC (rev 146621)
+++ trunk/Source/WebCore/ChangeLog	2013-03-22 16:24:48 UTC (rev 146622)
@@ -1,3 +1,17 @@
+2013-03-22  Jer Noble  <[email protected]>
+
+        REGRESSION: -webkit-box-reflect does not show on video elements
+        https://bugs.webkit.org/show_bug.cgi?id=112397
+
+        Reviewed by Eric Carlson.
+
+        Work around the ASSERTs generated when setting an AVPlayerLayer's player property
+        during a CA flush by setting the player property during the next runloop, outside
+        of a CA flush.
+
+        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+        (PlatformCALayer::clone):
+
 2013-03-22  [email protected]  <[email protected]>
 
         [Curl] Performance fix, avoid loading cookie file on every request.

Modified: trunk/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm (146621 => 146622)


--- trunk/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm	2013-03-22 16:22:26 UTC (rev 146621)
+++ trunk/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm	2013-03-22 16:24:48 UTC (rev 146622)
@@ -249,10 +249,8 @@
         type = LayerTypeTransformLayer;
         break;
     case LayerTypeAVPlayerLayer:
-// FIXME: This is causing assertions, so disable for now
-// https://bugs.webkit.org/show_bug.cgi?id=112490
-//        type = LayerTypeAVPlayerLayer;
-//        break;
+        type = LayerTypeAVPlayerLayer;
+        break;
     case LayerTypeLayer:
     default:
         type = LayerTypeLayer;
@@ -275,8 +273,13 @@
     newLayer->copyFiltersFrom(this);
 #endif
 
-    if (type == LayerTypeAVPlayerLayer)
-        [newLayer->playerLayer() setPlayer:[playerLayer() player]];
+    if (type == LayerTypeAVPlayerLayer) {
+        AVPlayerLayer* destinationPlayerLayer = newLayer->playerLayer();
+        AVPlayerLayer* sourcePlayerLayer = playerLayer();
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [destinationPlayerLayer setPlayer:[sourcePlayerLayer player]];
+        });
+    }
 
     return newLayer;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to