[Mac] Fullscreen mode for some applications shows only a black screen.
authorbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 1 Aug 2014 17:38:53 +0000 (17:38 +0000)
committerbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 1 Aug 2014 17:38:53 +0000 (17:38 +0000)
commite48a3bb72f40336838e2f7639fbf4273f1f26fab
tree6724b7ba8ce2468cde608925b5d3ae4bae243730
parent031ce5ba45b6da613f7b41684cf498491da69c9f
[Mac] Fullscreen mode for some applications shows only a black screen.
https://bugs.webkit.org/show_bug.cgi?id=135493
<rdar://problem/17628212>

Reviewed by Jer Noble.

In some applications, the window hosting the WKView is an InProcess layer hosting mode.
The fullscreen window created by the WKFullScreenWindowController defaults to an
OutOfProcess mode.

When this kind of mismatch is encountered, the WK2 layer in the UI process is supposed
to send a message back to the WebProcess indicating that the layer hosting mode of the
containing window is different, so that the WebProcess can adjust its logic accordingly.
Unfortunately, the notification that this had happened was not getting sent to the
WebProcess due to an optimization in window state change logic (see Bug 135509 for
details).

The fix is to check layer hosting mode state when a WKView is added to a window, and
notify the WebProcess when it needs to change state to match.

* UIProcess/API/mac/WKView.mm:
(-[WKView viewDidMoveToWindow]): When moving to a new window, always call
'layerHostingModeDidChange' to pick up any changes in the layer hosting mode.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171920 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/API/mac/WKView.mm