summaryrefslogtreecommitdiff
path: root/Source/WebCore/page/PointerLockController.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-08-12 09:27:39 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-08-12 09:27:39 +0200
commit3749d61e1f7a59f5ec5067e560af1eb610c82015 (patch)
tree73dc228333948738bbe02976cacca8cd382bc978 /Source/WebCore/page/PointerLockController.cpp
parentb32b4dcd9a51ab8de6afc53d9e17f8707e1f7a5e (diff)
downloadqtwebkit-3749d61e1f7a59f5ec5067e560af1eb610c82015.tar.gz
Imported WebKit commit a77350243e054f3460d1137301d8b3faee3d2052 (http://svn.webkit.org/repository/webkit/trunk@125365)
New snapshot with build fixes for latest API changes in Qt and all WK1 Win MSVC fixes upstream
Diffstat (limited to 'Source/WebCore/page/PointerLockController.cpp')
-rw-r--r--Source/WebCore/page/PointerLockController.cpp69
1 files changed, 10 insertions, 59 deletions
diff --git a/Source/WebCore/page/PointerLockController.cpp b/Source/WebCore/page/PointerLockController.cpp
index abbfc80f4..ad7960962 100644
--- a/Source/WebCore/page/PointerLockController.cpp
+++ b/Source/WebCore/page/PointerLockController.cpp
@@ -46,40 +46,25 @@ PassOwnPtr<PointerLockController> PointerLockController::create(Page* page)
return adoptPtr(new PointerLockController(page));
}
-void PointerLockController::requestPointerLock(Element* target, PassRefPtr<VoidCallback> successCallback, PassRefPtr<VoidCallback> failureCallback)
+void PointerLockController::requestPointerLock(Element* target)
{
- if (!target || !target->inDocument() || m_documentOfRemovedElementWhileWaitingForUnlock) {
+ if (!target || !target->inDocument() || m_documentOfRemovedElementWhileWaitingForUnlock
+ || target->document()->isSandboxed(SandboxPointerLock)) {
enqueueEvent(eventNames().webkitpointerlockerrorEvent, target);
return;
}
if (m_element) {
- // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402)
- enqueueEvent(eventNames().webkitpointerlockchangeEvent, target);
- if (m_element->document() != target->document())
- enqueueEvent(eventNames().webkitpointerlockchangeEvent, m_element.get());
-
- // FIXME: Remove callback usage, keep assignment of m_element = target. (https://bugs.webkit.org/show_bug.cgi?id=84402)
- if (m_element == target) {
- if (successCallback)
- successCallback->handleEvent();
- } else {
- didLosePointerLock(false);
- m_element = target;
- if (successCallback)
- successCallback->handleEvent();
+ if (m_element->document() != target->document()) {
+ enqueueEvent(eventNames().webkitpointerlockerrorEvent, target);
+ return;
}
+ enqueueEvent(eventNames().webkitpointerlockchangeEvent, target);
+ m_element = target;
} else if (m_page->chrome()->client()->requestPointerLock()) {
m_element = target;
- m_successCallback = successCallback;
- m_failureCallback = failureCallback;
} else {
- // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402)
enqueueEvent(eventNames().webkitpointerlockerrorEvent, target);
-
- // FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402)
- if (failureCallback)
- failureCallback->handleEvent();
}
}
@@ -107,11 +92,6 @@ void PointerLockController::documentDetached(Document* document)
}
}
-bool PointerLockController::isLocked()
-{
- return m_page->chrome()->client()->isPointerLocked();
-}
-
Element* PointerLockController::element() const
{
return m_element.get();
@@ -119,49 +99,20 @@ Element* PointerLockController::element() const
void PointerLockController::didAcquirePointerLock()
{
- // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402)
enqueueEvent(eventNames().webkitpointerlockchangeEvent, m_element.get());
-
- // FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402)
- RefPtr<Element> elementToNotify(m_element);
- RefPtr<VoidCallback> callbackToIssue(m_successCallback);
- m_successCallback = 0;
- m_failureCallback = 0;
-
- if (callbackToIssue && elementToNotify && elementToNotify->document()->frame())
- callbackToIssue->handleEvent();
}
void PointerLockController::didNotAcquirePointerLock()
{
- // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402)
enqueueEvent(eventNames().webkitpointerlockerrorEvent, m_element.get());
-
- // FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402)
- RefPtr<Element> elementToNotify(m_element);
- RefPtr<VoidCallback> callbackToIssue(m_failureCallback);
m_element = 0;
- m_successCallback = 0;
- m_failureCallback = 0;
-
- if (callbackToIssue && elementToNotify && elementToNotify->document()->frame())
- callbackToIssue->handleEvent();
}
-void PointerLockController::didLosePointerLock(bool sendChangeEvent)
+void PointerLockController::didLosePointerLock()
{
- // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402)
- if (sendChangeEvent)
- enqueueEvent(eventNames().webkitpointerlockchangeEvent, m_element ? m_element->document() : m_documentOfRemovedElementWhileWaitingForUnlock.get());
-
- // FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402)
- RefPtr<Element> elementToNotify(m_element);
+ enqueueEvent(eventNames().webkitpointerlockchangeEvent, m_element ? m_element->document() : m_documentOfRemovedElementWhileWaitingForUnlock.get());
m_element = 0;
m_documentOfRemovedElementWhileWaitingForUnlock = 0;
- m_successCallback = 0;
- m_failureCallback = 0;
- if (elementToNotify && elementToNotify->document()->frame())
- elementToNotify->dispatchEvent(Event::create(eventNames().webkitpointerlocklostEvent, true, false));
}
void PointerLockController::dispatchLockedMouseEvent(const PlatformMouseEvent& event, const AtomicString& eventType)