[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

mrobinson at webkit.org mrobinson at webkit.org
Wed Dec 22 11:38:43 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit bfc28f7a78539bcf1974220c3798443348aa9f28
Author: mrobinson at webkit.org <mrobinson at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Aug 2 17:07:34 2010 +0000

    2010-08-02  Martin Robinson  <mrobinson at igalia.com>
    
            Reviewed by Xan Lopez.
    
            [Gtk] DOM listeners get wrong keycodes for some keys
            https://bugs.webkit.org/show_bug.cgi?id=35170
    
            Modify some existing tests to test the generate key code of
            the keypad insert and delete keys as well as the print screen key.
    
            * fast/events/keydown-numpad-keys-expected.txt: Update expectations.
            * fast/events/script-tests/keydown-numpad-keys.js: Add test for keypad insert and delete.
            * fast/events/special-key-events-in-input-text-expected.txt: Update expectations.
            * fast/events/special-key-events-in-input-text.html: Add test for print screen.
    2010-08-02  Martin Robinson  <mrobinson at igalia.com>
    
            Reviewed by Xan Lopez.
    
            [Gtk] DOM listeners get wrong keycodes for some keys
            https://bugs.webkit.org/show_bug.cgi?id=35170
    
            Emit the proper DOM keyCode for the print screen, keypad insert,
            and keypad delete keys.
    
            * platform/gtk/KeyEventGtk.cpp:
            (WebCore::windowsKeyCodeForKeyEvent): Fix mapping between GDK key codes
            and Windows key codes.
    2010-08-02  Martin Robinson  <mrobinson at igalia.com>
    
            Reviewed by Xan Lopez.
    
            [Gtk] DOM listeners get wrong keycodes for some keys
            https://bugs.webkit.org/show_bug.cgi?id=35170
    
            Add support to all event senders for simulating keypad insert
            and print screen keys.
    
            * DumpRenderTree/chromium/EventSender.cpp:
            (EventSender::keyDown): Add support for generating keypad insert and print screen.
            * DumpRenderTree/gtk/EventSender.cpp:
            (keyDownCallback): Ditto.
            * DumpRenderTree/mac/EventSendingController.mm:
            (-[EventSendingController keyDown:withModifiers:withLocation:]): Ditto.
            * DumpRenderTree/qt/EventSenderQt.cpp:
            (EventSender::keyDown): Ditto.
            * DumpRenderTree/win/EventSender.cpp:
            (keyDownCallback): Ditto.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64470 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 4be50fd..80d085e 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,5 +1,20 @@
 2010-08-02  Martin Robinson  <mrobinson at igalia.com>
 
+        Reviewed by Xan Lopez.
+
+        [Gtk] DOM listeners get wrong keycodes for some keys
+        https://bugs.webkit.org/show_bug.cgi?id=35170
+
+        Modify some existing tests to test the generate key code of
+        the keypad insert and delete keys as well as the print screen key.
+
+        * fast/events/keydown-numpad-keys-expected.txt: Update expectations.
+        * fast/events/script-tests/keydown-numpad-keys.js: Add test for keypad insert and delete.
+        * fast/events/special-key-events-in-input-text-expected.txt: Update expectations.
+        * fast/events/special-key-events-in-input-text.html: Add test for print screen.
+
+2010-08-02  Martin Robinson  <mrobinson at igalia.com>
+
         [GTK] r64379 broke two tests
         https://bugs.webkit.org/show_bug.cgi?id=43361
 
diff --git a/LayoutTests/fast/events/keydown-numpad-keys-expected.txt b/LayoutTests/fast/events/keydown-numpad-keys-expected.txt
index 27a47e3..1fca312 100644
--- a/LayoutTests/fast/events/keydown-numpad-keys-expected.txt
+++ b/LayoutTests/fast/events/keydown-numpad-keys-expected.txt
@@ -29,6 +29,12 @@ PASS lastKeyboardEvent.type is "keydown"
 PASS lastKeyboardEvent.keyCode is 40
 PASS lastKeyboardEvent.keyLocation is 0
 PASS lastKeyboardEvent.type is "keydown"
+PASS lastKeyboardEvent.keyCode is 45
+PASS lastKeyboardEvent.keyLocation is 0
+PASS lastKeyboardEvent.type is "keydown"
+PASS lastKeyboardEvent.keyCode is 46
+PASS lastKeyboardEvent.keyLocation is 0
+PASS lastKeyboardEvent.type is "keydown"
 PASS lastKeyboardEvent.keyCode is 33
 PASS lastKeyboardEvent.keyLocation is 3
 PASS lastKeyboardEvent.type is "keydown"
@@ -52,6 +58,12 @@ PASS lastKeyboardEvent.keyLocation is 3
 PASS lastKeyboardEvent.type is "keydown"
 PASS lastKeyboardEvent.keyCode is 40
 PASS lastKeyboardEvent.keyLocation is 3
+PASS lastKeyboardEvent.type is "keydown"
+PASS lastKeyboardEvent.keyCode is 45
+PASS lastKeyboardEvent.keyLocation is 3
+PASS lastKeyboardEvent.type is "keydown"
+PASS lastKeyboardEvent.keyCode is 46
+PASS lastKeyboardEvent.keyLocation is 3
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/fast/events/script-tests/keydown-numpad-keys.js b/LayoutTests/fast/events/script-tests/keydown-numpad-keys.js
index bc1b3f4..2174cb9 100644
--- a/LayoutTests/fast/events/script-tests/keydown-numpad-keys.js
+++ b/LayoutTests/fast/events/script-tests/keydown-numpad-keys.js
@@ -40,6 +40,8 @@ if (window.eventSender) {
     testKeyEventWithLocation("rightArrow", 0, 39);
     testKeyEventWithLocation("upArrow", 0, 38);
     testKeyEventWithLocation("downArrow", 0, 40);
+    testKeyEventWithLocation("insert", 0, 45);
+    testKeyEventWithLocation("delete", 0, 46);
 
     // location=3 indicates that we send events as numeric-pad keys.
     testKeyEventWithLocation("pageUp", 3, 33);
@@ -50,6 +52,8 @@ if (window.eventSender) {
     testKeyEventWithLocation("rightArrow", 3, 39);
     testKeyEventWithLocation("upArrow", 3, 38);
     testKeyEventWithLocation("downArrow", 3, 40);
+    testKeyEventWithLocation("insert", 3, 45);
+    testKeyEventWithLocation("delete", 3, 46);
 } else {
     debug("This test requires DumpRenderTree.  To manually test, 1) focus on the textarea above and push numpad keys without locking NumLock and 2) see if the location= value is 3 (DOM_KEY_LOCATION_NUMPAD specified in DOM level 3).");
 }
diff --git a/LayoutTests/fast/events/special-key-events-in-input-text-expected.txt b/LayoutTests/fast/events/special-key-events-in-input-text-expected.txt
index b0b8627..78bfaf8 100644
--- a/LayoutTests/fast/events/special-key-events-in-input-text-expected.txt
+++ b/LayoutTests/fast/events/special-key-events-in-input-text-expected.txt
@@ -43,3 +43,7 @@ Backspace:
 INPUT - keydown - false,false,false,false - U+0008 - 8 - 0. Value: "0".
 INPUT - keyup - false,false,false,false - U+0008 - 8 - 0. Value: "".
 
+Print screen:
+INPUT - keydown - false,false,false,false - U+0000 - 44 - 0. Value: "".
+INPUT - keyup - false,false,false,false - U+0000 - 44 - 0. Value: "".
+
diff --git a/LayoutTests/fast/events/special-key-events-in-input-text.html b/LayoutTests/fast/events/special-key-events-in-input-text.html
index d0f8d96..32e653b 100644
--- a/LayoutTests/fast/events/special-key-events-in-input-text.html
+++ b/LayoutTests/fast/events/special-key-events-in-input-text.html
@@ -56,6 +56,8 @@ if (window.layoutTestController) {
    eventSender.keyDown("0", ["shiftKey"]);
    log("<br>Backspace:");
    eventSender.keyDown("\x08", []);
+   log("<br>Print screen:");
+   eventSender.keyDown("printScreen", []);
   }
 </script>
 </body></html>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d456209..459b9ae 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2010-08-02  Martin Robinson  <mrobinson at igalia.com>
+
+        Reviewed by Xan Lopez.
+
+        [Gtk] DOM listeners get wrong keycodes for some keys
+        https://bugs.webkit.org/show_bug.cgi?id=35170
+
+        Emit the proper DOM keyCode for the print screen, keypad insert,
+        and keypad delete keys.
+
+        * platform/gtk/KeyEventGtk.cpp:
+        (WebCore::windowsKeyCodeForKeyEvent): Fix mapping between GDK key codes
+        and Windows key codes.
+
 2010-08-02  Dirk Schulze  <krit at webkit.org>
 
         Unreviewed sort of XCode project file.
diff --git a/WebCore/platform/gtk/KeyEventGtk.cpp b/WebCore/platform/gtk/KeyEventGtk.cpp
index 193b7e5..e9756d8 100644
--- a/WebCore/platform/gtk/KeyEventGtk.cpp
+++ b/WebCore/platform/gtk/KeyEventGtk.cpp
@@ -264,15 +264,14 @@ static int windowsKeyCodeForKeyEvent(unsigned int keycode)
         case GDK_Select:
             return VK_SELECT; // (29) SELECT key
         case GDK_Print:
-            return VK_PRINT; // (2A) PRINT key
+            return VK_SNAPSHOT; // (2C) PRINT SCREEN key
         case GDK_Execute:
             return VK_EXECUTE;// (2B) EXECUTE key
-            //dunno on this
-            //case GDK_PrintScreen:
-            //      return VK_SNAPSHOT; // (2C) PRINT SCREEN key
         case GDK_Insert:
+        case GDK_KP_Insert:
             return VK_INSERT; // (2D) INS key
         case GDK_Delete:
+        case GDK_KP_Delete:
             return VK_DELETE; // (2E) DEL key
         case GDK_Help:
             return VK_HELP; // (2F) HELP key
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 897b97c..8dc3f6b 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,5 +1,26 @@
 2010-08-02  Martin Robinson  <mrobinson at igalia.com>
 
+        Reviewed by Xan Lopez.
+
+        [Gtk] DOM listeners get wrong keycodes for some keys
+        https://bugs.webkit.org/show_bug.cgi?id=35170
+
+        Add support to all event senders for simulating keypad insert
+        and print screen keys.
+
+        * DumpRenderTree/chromium/EventSender.cpp:
+        (EventSender::keyDown): Add support for generating keypad insert and print screen.
+        * DumpRenderTree/gtk/EventSender.cpp:
+        (keyDownCallback): Ditto.
+        * DumpRenderTree/mac/EventSendingController.mm:
+        (-[EventSendingController keyDown:withModifiers:withLocation:]): Ditto.
+        * DumpRenderTree/qt/EventSenderQt.cpp:
+        (EventSender::keyDown): Ditto.
+        * DumpRenderTree/win/EventSender.cpp:
+        (keyDownCallback): Ditto.
+
+2010-08-02  Martin Robinson  <mrobinson at igalia.com>
+
         Build fix for building against development versions of GTK+. GTK 2.22
         has not yet been released, so these function definitions must be conditionalized
         on the development version.
diff --git a/WebKitTools/DumpRenderTree/chromium/EventSender.cpp b/WebKitTools/DumpRenderTree/chromium/EventSender.cpp
index fd7ba2d..4e84c96 100644
--- a/WebKitTools/DumpRenderTree/chromium/EventSender.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/EventSender.cpp
@@ -541,6 +541,8 @@ void EventSender::keyDown(const CppArgumentList& arguments, CppVariant* result)
         code = base::VKEY_LEFT;
     else if ("upArrow" == codeStr)
         code = base::VKEY_UP;
+    else if ("insert" == codeStr)
+        code = base::VKEY_INSERT;
     else if ("delete" == codeStr)
         code = base::VKEY_DELETE;
     else if ("pageUp" == codeStr)
@@ -551,6 +553,8 @@ void EventSender::keyDown(const CppArgumentList& arguments, CppVariant* result)
         code = base::VKEY_HOME;
     else if ("end" == codeStr)
         code = base::VKEY_END;
+    else if ("printScreen" == codeStr)
+        code = base::VKEY_SNAPSHOT;
     else {
         // Compare the input string with the function-key names defined by the
         // DOM spec (i.e. "F1",...,"F24"). If the input string is a function-key
diff --git a/WebKitTools/DumpRenderTree/gtk/EventSender.cpp b/WebKitTools/DumpRenderTree/gtk/EventSender.cpp
index 437ee1b..4f4246f 100644
--- a/WebKitTools/DumpRenderTree/gtk/EventSender.cpp
+++ b/WebKitTools/DumpRenderTree/gtk/EventSender.cpp
@@ -472,9 +472,13 @@ static JSValueRef keyDownCallback(JSContextRef context, JSObjectRef function, JS
             gdkKeySym = GDK_KP_Home;
         else if (JSStringIsEqualToUTF8CString(character, "end"))
             gdkKeySym = GDK_KP_End;
+        else if (JSStringIsEqualToUTF8CString(character, "insert"))
+            gdkKeySym = GDK_KP_Insert;
+        else if (JSStringIsEqualToUTF8CString(character, "delete"))
+            gdkKeySym = GDK_KP_Delete;
         else
-            // Assume we only get arrow/pgUp/pgDn/home/end keys with
-            // location=NUMPAD for now.
+            // If we get some other key specified with the numpad location,
+            // crash here, so we add it sooner rather than later.
             g_assert_not_reached();
     } else {
         if (JSStringIsEqualToUTF8CString(character, "leftArrow"))
@@ -493,8 +497,12 @@ static JSValueRef keyDownCallback(JSContextRef context, JSObjectRef function, JS
             gdkKeySym = GDK_Home;
         else if (JSStringIsEqualToUTF8CString(character, "end"))
             gdkKeySym = GDK_End;
+        else if (JSStringIsEqualToUTF8CString(character, "insert"))
+            gdkKeySym = GDK_Insert;
         else if (JSStringIsEqualToUTF8CString(character, "delete"))
             gdkKeySym = GDK_Delete;
+        else if (JSStringIsEqualToUTF8CString(character, "printScreen"))
+            gdkKeySym = GDK_Print;
         else if (JSStringIsEqualToUTF8CString(character, "F1"))
             gdkKeySym = GDK_F1;
         else if (JSStringIsEqualToUTF8CString(character, "F2"))
diff --git a/WebKitTools/DumpRenderTree/mac/EventSendingController.mm b/WebKitTools/DumpRenderTree/mac/EventSendingController.mm
index 9d2fc75..77999bd 100644
--- a/WebKitTools/DumpRenderTree/mac/EventSendingController.mm
+++ b/WebKitTools/DumpRenderTree/mac/EventSendingController.mm
@@ -597,10 +597,18 @@ static int buildModifierFlags(const WebScriptObject* modifiers)
         const unichar ch = NSEndFunctionKey;
         eventCharacter = [NSString stringWithCharacters:&ch length:1];
         keyCode = 0x77;
+    } else if ([character isEqualToString:@"insert"]) {
+        const unichar ch = NSInsertFunctionKey;
+        eventCharacter = [NSString stringWithCharacters:&ch length:1];
+        keyCode = 0x72;
     } else if ([character isEqualToString:@"delete"]) {
         const unichar ch = NSDeleteFunctionKey;
         eventCharacter = [NSString stringWithCharacters:&ch length:1];
         keyCode = 0x75;
+    } else if ([character isEqualToString:@"printScreen"]) {
+        const unichar ch = NSPrintScreenFunctionKey;
+        eventCharacter = [NSString stringWithCharacters:&ch length:1];
+        keyCode = 0x0; // There is no known virtual key code for PrintScreen.
     }
 
     // Compare the input string with the function-key names defined by the DOM spec (i.e. "F1",...,"F24").
diff --git a/WebKitTools/DumpRenderTree/qt/EventSenderQt.cpp b/WebKitTools/DumpRenderTree/qt/EventSenderQt.cpp
index 1e495b1..63dbd2a 100644
--- a/WebKitTools/DumpRenderTree/qt/EventSenderQt.cpp
+++ b/WebKitTools/DumpRenderTree/qt/EventSenderQt.cpp
@@ -334,9 +334,15 @@ void EventSender::keyDown(const QString& string, const QStringList& modifiers, u
         } else if (string == QLatin1String("end")) {
             s = QString();
             code = Qt::Key_End;
+        } else if (string == QLatin1String("insert")) {
+            s = QString();
+            code = Qt::Key_Insert;
         } else if (string == QLatin1String("delete")) {
             s = QString();
             code = Qt::Key_Delete;
+        } else if (string == QLatin1String("printScreen")) {
+            s = QString();
+            code = Qt::Key_Print;
         }
     }
     QKeyEvent event(QEvent::KeyPress, code, modifs, s);
diff --git a/WebKitTools/DumpRenderTree/win/EventSender.cpp b/WebKitTools/DumpRenderTree/win/EventSender.cpp
index c9749e7..94f0945 100644
--- a/WebKitTools/DumpRenderTree/win/EventSender.cpp
+++ b/WebKitTools/DumpRenderTree/win/EventSender.cpp
@@ -467,8 +467,12 @@ static JSValueRef keyDownCallback(JSContextRef context, JSObjectRef function, JS
         virtualKeyCode = VK_HOME;
     else if (JSStringIsEqualToUTF8CString(character, "end"))
         virtualKeyCode = VK_END;
+    else if (JSStringIsEqualToUTF8CString(character, "insert"))
+        virtualKeyCode = VK_INSERT;
     else if (JSStringIsEqualToUTF8CString(character, "delete"))
         virtualKeyCode = VK_DELETE;
+    else if (JSStringIsEqualToUTF8CString(character, "printScreen"))
+        virtualKeyCode = VK_SNAPSHOT;
     else {
         charCode = JSStringGetCharactersPtr(character)[0];
         virtualKeyCode = LOBYTE(VkKeyScan(charCode));

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list