Title: [122169] trunk
- Revision
- 122169
- Author
- [email protected]
- Date
- 2012-07-09 17:08:36 -0700 (Mon, 09 Jul 2012)
Log Message
Pointer Lock requestPointerLock rejects locking an element not in a document.
https://bugs.webkit.org/show_bug.cgi?id=90821
Reviewed by Adrienne Walker.
Source/WebCore:
Test: pointer-lock/lock-element-not-in-dom.html
* page/PointerLockController.cpp:
(WebCore::PointerLockController::requestPointerLock):
LayoutTests:
* pointer-lock/lock-element-not-in-dom-expected.txt: Added.
* pointer-lock/lock-element-not-in-dom.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (122168 => 122169)
--- trunk/LayoutTests/ChangeLog 2012-07-09 23:48:14 UTC (rev 122168)
+++ trunk/LayoutTests/ChangeLog 2012-07-10 00:08:36 UTC (rev 122169)
@@ -1,3 +1,13 @@
+2012-07-09 Vincent Scheib <[email protected]>
+
+ Pointer Lock requestPointerLock rejects locking an element not in a document.
+ https://bugs.webkit.org/show_bug.cgi?id=90821
+
+ Reviewed by Adrienne Walker.
+
+ * pointer-lock/lock-element-not-in-dom-expected.txt: Added.
+ * pointer-lock/lock-element-not-in-dom.html: Added.
+
2012-07-09 Eric Seidel <[email protected]>
document.write of scripts that also document.write sometimes writes async
Added: trunk/LayoutTests/pointer-lock/lock-element-not-in-dom-expected.txt (0 => 122169)
--- trunk/LayoutTests/pointer-lock/lock-element-not-in-dom-expected.txt (rev 0)
+++ trunk/LayoutTests/pointer-lock/lock-element-not-in-dom-expected.txt 2012-07-10 00:08:36 UTC (rev 122169)
@@ -0,0 +1,13 @@
+Test locking an element not in a document is rejected and pointerlockerror event dispatched.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS targetDiv1.parentElement is not null
+ Remove targetDiv1 from document, and try to lock it.
+PASS targetDiv1.parentElement is null
+PASS onwebkitpointerlockerror received after: Remove targetDiv1 from document, and try to lock it.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Property changes on: trunk/LayoutTests/pointer-lock/lock-element-not-in-dom-expected.txt
___________________________________________________________________
Added: svn:eol-style
Added: trunk/LayoutTests/pointer-lock/lock-element-not-in-dom.html (0 => 122169)
--- trunk/LayoutTests/pointer-lock/lock-element-not-in-dom.html (rev 0)
+++ trunk/LayoutTests/pointer-lock/lock-element-not-in-dom.html 2012-07-10 00:08:36 UTC (rev 122169)
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<script src=""
+<script src=""
+</head>
+<body>
+<div>
+ <div id="target1"></div>
+</div>
+<script>
+ description("Test locking an element not in a document is rejected and pointerlockerror event dispatched.")
+ window.jsTestIsAsync = true;
+
+ targetDiv1 = document.getElementById("target1");
+
+ todo = [
+ function () {
+ shouldNotBe("targetDiv1.parentElement", "null");
+ expectOnlyErrorEvent("Remove targetDiv1 from document, and try to lock it.");
+ targetDiv1.parentElement.removeChild(targetDiv1);
+ shouldBe("targetDiv1.parentElement", "null");
+ targetDiv1.webkitRequestPointerLock();
+ // doNextStep called by event handler.
+ },
+ ];
+ doNextStepWithUserGesture();
+</script>
+<script src=""
+</body>
+</html>
Property changes on: trunk/LayoutTests/pointer-lock/lock-element-not-in-dom.html
___________________________________________________________________
Added: svn:eol-style
Modified: trunk/Source/WebCore/ChangeLog (122168 => 122169)
--- trunk/Source/WebCore/ChangeLog 2012-07-09 23:48:14 UTC (rev 122168)
+++ trunk/Source/WebCore/ChangeLog 2012-07-10 00:08:36 UTC (rev 122169)
@@ -1,3 +1,15 @@
+2012-07-09 Vincent Scheib <[email protected]>
+
+ Pointer Lock requestPointerLock rejects locking an element not in a document.
+ https://bugs.webkit.org/show_bug.cgi?id=90821
+
+ Reviewed by Adrienne Walker.
+
+ Test: pointer-lock/lock-element-not-in-dom.html
+
+ * page/PointerLockController.cpp:
+ (WebCore::PointerLockController::requestPointerLock):
+
2012-07-09 Eric Seidel <[email protected]>
document.write of scripts that also document.write sometimes writes async
Modified: trunk/Source/WebCore/page/PointerLockController.cpp (122168 => 122169)
--- trunk/Source/WebCore/page/PointerLockController.cpp 2012-07-09 23:48:14 UTC (rev 122168)
+++ trunk/Source/WebCore/page/PointerLockController.cpp 2012-07-10 00:08:36 UTC (rev 122169)
@@ -51,6 +51,11 @@
if (!target)
return;
+ if (!target->inDocument()) {
+ enqueueEvent(eventNames().webkitpointerlockerrorEvent, target);
+ return;
+ }
+
if (isLocked()) {
// FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402)
enqueueEvent(eventNames().webkitpointerlockchangeEvent, target);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes