Some WebKit2 client applications that attempt to enter Fullscreen mode end up with a black screen instead of seeing the fullscreen element. You can exit fullscreen mode and return to the full page, but this renders full screen mode unusable for these kinds of clients.
This turned out to be due to a mismatch between the type of window hosting the fullscreen view. In some applications, the NSWindow in the non-fullscreen mode is marked as InProcess only. The fullscreen NSWindow expects to be hosted in the display server (OutOfProcess). When this kind of mismatch is encountered, the WK2 layer in the UI process is supposed to relay a message back to the WebProcess application indicating that the window hosting mode has changed. Unfortunately, this step was not happening properly resulting in the failure.
<rdar://problem/17628212>
Created attachment 235891 [details] Patch
Comment on attachment 235891 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=235891&action=review r=me, with nit. > Source/WebKit2/UIProcess/API/mac/WKView.mm:2511 > + // TODO: This can be removed when https://bugs.webkit.org/show_bug.cgi?id=135509 is resolved. > + _data->_page->layerHostingModeDidChange(); > + Nit: this should be a "// FIXME(135509):" comment instead.
This patch works around Bug 135509.
(In reply to comment #5) > This patch works around Bug 135509. Yeah, so "FIXME(135509): This call becomes unnecessary once 135509 is fixed; remove."
Comment on attachment 235891 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=235891&action=review >> Source/WebKit2/UIProcess/API/mac/WKView.mm:2511 >> + > > Nit: this should be a "// FIXME(135509):" comment instead. OK!
Committed r171920: <http://trac.webkit.org/changeset/171920>