2011-05-16 Jeremy Noble <[email protected]>
Reviewed by Darin Adler.
Disable keyboard input (with exceptions) in full-screen mode.
https://bugs.webkit.org/show_bug.cgi?id=60943
* fullscreen/full-screen-keyboard-disabled-expected.txt: Added.
* fullscreen/full-screen-keyboard-disabled.html: Added.
* fullscreen/full-screen-keyboard-enabled-expected.txt: Added.
* fullscreen/full-screen-keyboard-enabled.html: Added.
2011-05-16 Jeremy Noble <[email protected]>
Reviewed by Darin Adler.
Disable keyboard input (with exceptions) in full-screen mode.
https://bugs.webkit.org/show_bug.cgi?id=60943
Tests: fullscreen/full-screen-keyboard-disabled.html
fullscreen/full-screen-keyboard-enabled.html
* page/EventHandler.cpp:
(WebCore::EventHandler::isKeyEventAllowedInFullScreen): Added. Implements the
list of allowed keyboard events in the proposed API.
(WebCore::EventHandler::keyEvent): Discard events which are not allowed in
full-screen mode.
* page/EventHandler.h:
git-svn-id: svn://svn.chromium.org/blink/trunk@86741 bbb929c8-8fbe-4397-9dbb-9b2b20218538
diff --git a/third_party/WebKit/LayoutTests/fullscreen/full-screen-keyboard-enabled.html b/third_party/WebKit/LayoutTests/fullscreen/full-screen-keyboard-enabled.html
new file mode 100644
index 0000000..e1726cb
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fullscreen/full-screen-keyboard-enabled.html
@@ -0,0 +1,37 @@
+<body>
+<script src="full-screen-test.js"></script>
+<p>This tests that full screen mode does not allow alphanumeric key events. Press space to continue, then press the 'a' key.
+<span></span>
+<script>
+ // Bail out early if the full screen API is not enabled or is missing:
+ if (Element.prototype.webkitRequestFullScreen == undefined) {
+ logResult(false, "Element.prototype.webkitRequestFullScreen == undefined");
+ endTest();
+ } else {
+ var callback;
+ var fullscreenChanged = function(event)
+ {
+ if (callback)
+ callback(event)
+ };
+ waitForEvent(document, 'webkitfullscreenchange', fullscreenChanged);
+
+ var spanEnteredFullScreen = function() {
+ callback = null;
+ testExpected("document.webkitIsFullScreen", true);
+ if (window.layoutTestController && eventSender.keyDown) {
+ waitForEvent(document, 'keypress', keyPressed);
+ eventSender.keyDown('a', []);
+ }
+ };
+
+ var keyPressed = function(event) {
+ testExpected('event.keyCode', 97); // 'A'
+ endTest();
+ }
+
+ var span = document.getElementsByTagName('span')[0];
+ callback = spanEnteredFullScreen;
+ runWithKeyDown(function(){span.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)});
+ }
+</script>