summaryrefslogtreecommitdiff
path: root/Source/WebCore/page/PointerLockController.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-09-13 12:51:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-19 20:50:05 +0200
commitd441d6f39bb846989d95bcf5caf387b42414718d (patch)
treee367e64a75991c554930278175d403c072de6bb8 /Source/WebCore/page/PointerLockController.cpp
parent0060b2994c07842f4c59de64b5e3e430525c4b90 (diff)
downloadqtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebCore/page/PointerLockController.cpp')
-rw-r--r--Source/WebCore/page/PointerLockController.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/Source/WebCore/page/PointerLockController.cpp b/Source/WebCore/page/PointerLockController.cpp
index ddbb84fd0..974b98da5 100644
--- a/Source/WebCore/page/PointerLockController.cpp
+++ b/Source/WebCore/page/PointerLockController.cpp
@@ -28,6 +28,7 @@
#include "Chrome.h"
#include "ChromeClient.h"
#include "Element.h"
+#include "Event.h"
#include "Page.h"
#include "PlatformMouseEvent.h"
#include "VoidCallback.h"
@@ -48,8 +49,14 @@ PassOwnPtr<PointerLockController> PointerLockController::create(Page* page)
void PointerLockController::requestPointerLock(Element* target)
{
- if (!target || !target->inDocument() || m_documentOfRemovedElementWhileWaitingForUnlock
- || target->document()->isSandboxed(SandboxPointerLock)) {
+ if (!target || !target->inDocument() || m_documentOfRemovedElementWhileWaitingForUnlock) {
+ enqueueEvent(eventNames().webkitpointerlockerrorEvent, target);
+ return;
+ }
+
+ if (target->document()->isSandboxed(SandboxPointerLock)) {
+ // FIXME: This message should be moved off the console once a solution to https://bugs.webkit.org/show_bug.cgi?id=103274 exists.
+ target->document()->addConsoleMessage(SecurityMessageSource, ErrorMessageLevel, "Blocked pointer lock on an element because the element's frame is sandboxed and the 'allow-pointer-lock' permission is not set.");
enqueueEvent(eventNames().webkitpointerlockerrorEvent, target);
return;
}
@@ -61,7 +68,7 @@ void PointerLockController::requestPointerLock(Element* target)
}
enqueueEvent(eventNames().webkitpointerlockchangeEvent, target);
m_element = target;
- } else if (m_page->chrome()->client()->requestPointerLock()) {
+ } else if (m_page->chrome().client()->requestPointerLock()) {
m_lockPending = true;
m_element = target;
} else {
@@ -71,7 +78,7 @@ void PointerLockController::requestPointerLock(Element* target)
void PointerLockController::requestPointerUnlock()
{
- return m_page->chrome()->client()->requestPointerUnlock();
+ return m_page->chrome().client()->requestPointerUnlock();
}
void PointerLockController::elementRemoved(Element* element)