From 3749d61e1f7a59f5ec5067e560af1eb610c82015 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Sun, 12 Aug 2012 09:27:39 +0200 Subject: 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 --- Source/WebCore/page/PointerLockController.cpp | 69 ++++----------------------- 1 file changed, 10 insertions(+), 59 deletions(-) (limited to 'Source/WebCore/page/PointerLockController.cpp') 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::create(Page* page) return adoptPtr(new PointerLockController(page)); } -void PointerLockController::requestPointerLock(Element* target, PassRefPtr successCallback, PassRefPtr 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 elementToNotify(m_element); - RefPtr 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 elementToNotify(m_element); - RefPtr 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 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) -- cgit v1.2.1