WebPageProxy::setCursor does not check that the view is still in an active window
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 19 Aug 2012 19:12:28 +0000 (19:12 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 19 Aug 2012 19:12:28 +0000 (19:12 +0000)
https://bugs.webkit.org/show_bug.cgi?id=94427

Reviewed by Alexey Proskuryakov.

The Web process may ask to change the cursor when the view is in an active window, but
if by the time the UI process receives the message, the view is no longer in a window or the
window is not active , then the cursor should not change.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setCursor): Added a check that the view is in an active window before
allowing the page to change the cursor.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@125979 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/WebPageProxy.cpp

index 20b3415..9da187d 100644 (file)
@@ -1,3 +1,18 @@
+2012-08-19  Dan Bernstein  <mitz@apple.com>
+
+        WebPageProxy::setCursor does not check that the view is still in an active window
+        https://bugs.webkit.org/show_bug.cgi?id=94427
+
+        Reviewed by Alexey Proskuryakov.
+
+        The Web process may ask to change the cursor when the view is in an active window, but
+        if by the time the UI process receives the message, the view is no longer in a window or the
+        window is not active , then the cursor should not change.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::setCursor): Added a check that the view is in an active window before
+        allowing the page to change the cursor.
+
 2012-08-19  Sheriff Bot  <webkit.review.bot@gmail.com>
 
         Unreviewed, rolling out r125972.
index cc69975..8d5cc32 100644 (file)
@@ -3196,7 +3196,10 @@ void WebPageProxy::setToolTip(const String& toolTip)
 
 void WebPageProxy::setCursor(const WebCore::Cursor& cursor)
 {
-    m_pageClient->setCursor(cursor);
+    // The Web process may have asked to change the cursor when the view was in an active window, but
+    // if it is no longer in a window or the window is not active, then the cursor should not change.
+    if (m_pageClient->isViewWindowActive())
+        m_pageClient->setCursor(cursor);
 }
 
 void WebPageProxy::setCursorHiddenUntilMouseMoves(bool hiddenUntilMouseMoves)