Prevent flicker when exiting fullscreen by synchronizing transactions.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 Feb 2015 23:41:47 +0000 (23:41 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 Feb 2015 23:41:47 +0000 (23:41 +0000)
commitb40a7a95c4f8b9340febd679f8eb086ab83f2a58
tree517d03b17d8fb72b95cd38bab231864b7e4eed86
parentb85225bc51933461ea507862a53d3aa433c05fcb
Prevent flicker when exiting fullscreen by synchronizing transactions.
https://bugs.webkit.org/show_bug.cgi?id=140897

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-02-03
Reviewed by Tim Horton.

Source/WebCore:

Synchronize across CAContexts when moving the video layer between layer hierarchies.
Normally transactions involving multiple CAContexts are not synchronized.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
* platform/spi/cocoa/QuartzCoreSPI.h: add additional CAContext SPI declarations.

Source/WebKit2:

Flush transactions before removing layerHost. This allows existing transactions to be completed before the hosting layer disappears.

* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@179574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm
Source/WebCore/platform/spi/cocoa/QuartzCoreSPI.h
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm