If you enter full screen video mode, and then exit using the "Escape" key, WebKit will not re-enter fullscreen mode. If you use the media control to enter/exit fullscreen mode, everything works properly.
This bug is caused by improper cleanup of the Document::m_fullScreenElementStack member:
The 'escape' key handler in Windows calls Document::webkitWillExitFullScreenForElement(Element*), which bypasses the pop operation and leaves the element on the stack. Subsequent calls to enter full screen mode fail because WebCore believes a full screen controller is already in place.
The proposed solution is to modify the WebKit/win/WebView implementation to use "webkitExitFullscreen" rather than "webkitWillExitFullScreenForElement" to more closely match that logic of the media control interface.
Created attachment 218520 [details]
Comment on attachment 218520 [details]
View in context: https://bugs.webkit.org/attachment.cgi?id=218520&action=review
r=me, with nit.
> - m_fullScreenElement->document().webkitWillExitFullScreenForElement(m_fullScreenElement.get());
> + m_fullScreenElement->document().webkitExitFullscreen();
This should probably use webkitCancelFullScreen(), which will pop the entire full screen element stack.
Committed r160184: <http://trac.webkit.org/changeset/160184>