From Adam Roben: To reproduce: 1. Go to http://flexibits.com/fantastical 2. Click on "Watch the screencast" 3. Click the fullscreen button in the video controls to enter fullscreen Sometimes, the taskbar will appear in front of the fullscreen window. This obscures the video controls, including the "exit fullscreen" button.
This appears to only happen the first time you take a video fullscreen. If I exit full screen and enter it again, the taskbar is hidden.
Going to fullscreen involves: 1) Creating two initially hidden fullscreen windows, specifically MediaPlayerPrivateFullscreenWindow, one for the black "background" and one that contains the content. 2) Calling AnimateWindow() on the background window to animate showing it. 3) Forcing the WebView to repaint (which is synchronous in WK1, async in WK2). 4) When FullScreenController is notified that the WebView has repainted, it uses AnimateWindow() on the real fullscreen window to animate showing it. When the taskbar is hidden correctly, it appears to hide during step 2, which makes sense since showing the background window is the first time we show a fullscreen window. This would also seem to rule out any differences between WK1 and WK2, since the first call to AnimateWindow() happens before any web process messaging. I verified that after the calls to AnimateWindow() in step 2 and 4, the fullscreen window we just animated showing is the active window, which in theory should force Windows to hide the taskbar.
I tried replacing the calls to AnimateWindow() with SetWindowPos(), but this bug still occurs.
Jer and I found a kind of ugly workaround for this that involves making the fullscreen window a topmost window before animating it. The task bar is still visible when the background window animates in, but it disappears when the real fullscreen window animates in.
<rdar://problem/9454315>
Created attachment 95056 [details] Patch to make fullscreen window a topmost window.
Attachment 95056 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1 Source/WebCore/platform/graphics/win/FullScreenController.cpp:89: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] Total errors found: 1 in 2 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 95056 [details] Patch to make fullscreen window a topmost window. You should change wParam == 0 to !wParam
I'll fix this before landing the patch.
Committed <http://trac.webkit.org/changeset/87442>