One esc to exit fullscreen and pointer lock
https://bugs.webkit.org/show_bug.cgi?id=165416
rdar://problem/29430711

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-12-07
Reviewed by Jer Noble.

Source/WebCore:

Test: pointer-lock/lock-lost-on-esc-in-fullscreen.html

When handling escape, also exit fullscreen on escape.
This also means that escape can exit fullscreen in TestRunner.

* page/EventHandler.cpp:
(WebCore::EventHandler::keyEvent):

Source/WebKit2:

Fix a crash when didLosePointerLock is not specified.

* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):

Tools:

Implement WKPageUIClientV8 for pointer lock support.
Add "escape" key support in EventSenderProxy.

* WebKitTestRunner/TestController.cpp:
(WTR::requestPointerLock):
(WTR::TestController::createOtherPage):
(WTR::TestController::createWebViewWithOptions):
* WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::keyDown):

LayoutTests:

* platform/mac-wk2/TestExpectations:
* pointer-lock/lock-lost-on-esc-in-fullscreen-expected.txt: Added.
* pointer-lock/lock-lost-on-esc-in-fullscreen.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@209504 268f45cc-cd09-0410-ab3c-d52691b4dbfc
11 files changed