Title: [91416] trunk
Revision
91416
Author
commit-qu...@webkit.org
Date
2011-07-20 16:15:31 -0700 (Wed, 20 Jul 2011)

Log Message

Source/WebCore: mouseover reporting incorrect mouse button, when the button isn't
down. https://bugs.webkit.org/show_bug.cgi?id=64882

Patch by Scott Graham <scot...@chromium.org> on 2011-07-20
Reviewed by Eric Seidel.

Don't increment the button returned in 'which' unless the button is
actually down.

Test: fast/events/mouseover-button.html

* dom/MouseEvent.cpp:
(WebCore::MouseEvent::which):

LayoutTests: mouseover event reporting incorrect button in 'which'.
https://bugs.webkit.org/show_bug.cgi?id=64882

New test, move in/out of iframe with none/left/middle buttons down.

Patch by Scott Graham <scot...@chromium.org> on 2011-07-20
Reviewed by Eric Seidel.

* fast/events/mouseover-button-expected.txt: Added.
* fast/events/mouseover-button.html: Added.
* fast/events/resources/mouseover-button-iframe.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (91415 => 91416)


--- trunk/LayoutTests/ChangeLog	2011-07-20 23:15:26 UTC (rev 91415)
+++ trunk/LayoutTests/ChangeLog	2011-07-20 23:15:31 UTC (rev 91416)
@@ -1,3 +1,16 @@
+2011-07-20  Scott Graham  <scot...@chromium.org>
+
+        mouseover event reporting incorrect button in 'which'.
+        https://bugs.webkit.org/show_bug.cgi?id=64882
+
+        New test, move in/out of iframe with none/left/middle buttons down.
+
+        Reviewed by Eric Seidel.
+
+        * fast/events/mouseover-button-expected.txt: Added.
+        * fast/events/mouseover-button.html: Added.
+        * fast/events/resources/mouseover-button-iframe.html: Added.
+
 2011-07-20  Kenneth Russell  <k...@google.com>
 
         Add restoreContext() to WEBKIT_lose_context

Added: trunk/LayoutTests/fast/events/mouseover-button-expected.txt (0 => 91416)


--- trunk/LayoutTests/fast/events/mouseover-button-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/events/mouseover-button-expected.txt	2011-07-20 23:15:31 UTC (rev 91416)
@@ -0,0 +1,13 @@
+Test for bugs cr 87473, 64882.
+
+This test verifies that we get the correct button on mouseover events in .which when entering a document.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+
+PASS document.events['A-no-press'].which is 0
+PASS document.events['B-left'].which is 1
+PASS document.events['C-no-press'].which is 0
+PASS document.events['D-middle'].which is 2
+

Added: trunk/LayoutTests/fast/events/mouseover-button.html (0 => 91416)


--- trunk/LayoutTests/fast/events/mouseover-button.html	                        (rev 0)
+++ trunk/LayoutTests/fast/events/mouseover-button.html	2011-07-20 23:15:31 UTC (rev 91416)
@@ -0,0 +1,87 @@
+<html>
+    <head>
+        <link rel="stylesheet" href=""
+        <script src=""
+    </head>
+
+<body>
+<p>Test for bugs 
+<a href="" 87473</a>, <a href=""
+
+<p id="description"></p>
+<iframe style='height: 50; width: 50; top:100;left:100; position:absolute; border-width:0' src=''
+    ></iframe>
+<div id="console"></div>
+
+<script>
+
+document.events = {};
+document.saveWhere = null;
+
+function runTest() {
+    if (window.layoutTestController) {
+        layoutTestController.dumpAsText();
+        layoutTestController.waitUntilDone();
+
+        eventSender.mouseMoveTo(1,1);
+        eventSender.mouseDown();
+        eventSender.mouseUp();
+
+        state('A-no-press');
+        
+        eventSender.mouseMoveTo(125, 125);
+
+        state('B-left');
+        eventSender.mouseDown(0);
+        eventSender.mouseMoveTo(300, 300);
+
+        eventSender.mouseMoveTo(125, 125);
+
+        eventSender.mouseMoveTo(1, 1);
+        eventSender.mouseUp();
+
+        state('C-no-press');
+        eventSender.mouseMoveTo(125, 125);
+
+        state('D-middle');
+        eventSender.mouseDown(1);
+        eventSender.mouseMoveTo(300, 300);
+        eventSender.mouseMoveTo(125, 125);
+
+        eventSender.mouseUp();
+
+        eventSender.mouseMoveTo(1, 1);
+
+        window.setTimeout('finish()', 0);
+    }
+}
+
+function state(name)
+{
+    document.saveWhere = name;
+    document.events[name] = null;
+}
+
+function finish()
+{
+    shouldBe("document.events['A-no-press'].which", "0");
+    shouldBe("document.events['B-left'].which", "1");
+    shouldBe("document.events['C-no-press'].which", "0");
+    shouldBe("document.events['D-middle'].which", "2");
+
+    layoutTestController.notifyDone()
+}
+
+description("This test verifies that we get the correct button on mouseover events in .which when entering a document.");
+var successfullyParsed = true;
+
+window._onload_ = function()
+{
+    recentEvent = null;
+    runTest();
+}
+
+</script>
+
+</body>
+</html>

Added: trunk/LayoutTests/fast/events/resources/mouseover-button-iframe.html (0 => 91416)


--- trunk/LayoutTests/fast/events/resources/mouseover-button-iframe.html	                        (rev 0)
+++ trunk/LayoutTests/fast/events/resources/mouseover-button-iframe.html	2011-07-20 23:15:31 UTC (rev 91416)
@@ -0,0 +1,12 @@
+<body style="margin-left:0; margin-top:0">
+    <script>
+        function doOnMouseEvent(evt)
+        {
+            top.document.events[top.document.saveWhere] = evt;
+        }
+
+    </script>
+    <div style="height: 50; width: 50; background:violet; top:0;left:0; position:absolute;"
+        _onMouseOver_="doOnMouseEvent(event);"
+        >1</div>
+</body>

Modified: trunk/Source/WebCore/ChangeLog (91415 => 91416)


--- trunk/Source/WebCore/ChangeLog	2011-07-20 23:15:26 UTC (rev 91415)
+++ trunk/Source/WebCore/ChangeLog	2011-07-20 23:15:31 UTC (rev 91416)
@@ -1,3 +1,18 @@
+2011-07-20  Scott Graham  <scot...@chromium.org>
+
+        mouseover reporting incorrect mouse button, when the button isn't
+        down. https://bugs.webkit.org/show_bug.cgi?id=64882
+
+        Reviewed by Eric Seidel.
+
+        Don't increment the button returned in 'which' unless the button is
+        actually down.
+
+        Test: fast/events/mouseover-button.html
+
+        * dom/MouseEvent.cpp:
+        (WebCore::MouseEvent::which):
+
 2011-07-20  Kenneth Russell  <k...@google.com>
 
         Add restoreContext() to WEBKIT_lose_context

Modified: trunk/Source/WebCore/dom/MouseEvent.cpp (91415 => 91416)


--- trunk/Source/WebCore/dom/MouseEvent.cpp	2011-07-20 23:15:26 UTC (rev 91415)
+++ trunk/Source/WebCore/dom/MouseEvent.cpp	2011-07-20 23:15:31 UTC (rev 91416)
@@ -109,6 +109,8 @@
     // For the DOM, the return values for left, middle and right mouse buttons are 0, 1, 2, respectively.
     // For the Netscape "which" property, the return values for left, middle and right mouse buttons are 1, 2, 3, respectively. 
     // So we must add 1.
+    if (!m_buttonDown)
+        return 0;
     return m_button + 1;
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to