Commit Graph

13 Commits

Author SHA1 Message Date
Masayuki Nakano
ba87e77045 Bug 1300937 part.3 NativeKeyCodes.js should specify scan code to WIN_VK_ABNT_C1 explicitly for avoiding (perhaps) a bug of MapVirtualKeyEx() API r=smaug
Unfortunately, MapVirtualKeyEx() doesn't compute ABNT C1's scan code from its virtual keycode, 0xC1.  Therefore, NativeKeyCodes.js should specify 0x0056 explicitly.  Fortunately, this key in physical keyboard always generates the scan code value with any keyboard layouts.  Therefore, this can test new regressions as expected.

FYI: ABNT C1 key is a key in Brazilian keyboard.  It's at between "ShiftLeft" and "KeyZ".

MozReview-Commit-ID: GmpnFKOsnKD
2016-09-13 19:55:29 +09:00
Masayuki Nakano
e33067bf37 Bug 1300937 part.2 Automated tests which synthesize native key events on Windows should specify scan code value explicitly r=smaug
On Windows, some keys are called "extended key".  Their scan code include 0xE000.  For example, Enter key in standard position is 0x001C but Numpad's Enter key is 0xE01C.  Unfortunately, both of them cause same virtual keycode value, VK_RETURN.  Therefore, currently, nsIDOMWindowUtils.sendNativeKey() can synthesize only one native key event of them (only non-extended key's event).  Additionally, MapVirtualKeyEx() API with MAPVK_VK_TO_VSC (even with MAPVK_VK_TO_VSC_EX) don't return extended scancode value as expected.

For solving these issues, we should include scan code value to the virtual keycode value at calling sendNativeKey().

Fortunately, virtual keycode value on Windows is 0 ~ 255 (0x00 ~ 0xFF) but aNativeKeyCode of sendNativeKey() is int32_t.  So, we can use upper 16 bit for specifying scan code.

This patch explicitly specifies scan code value at defining WIN_VK_* in NativeKeyCodes.js.  Additionally, this patch duplicates native virtual keycode definition for Home, End, Insert, Delete, PageUp, PageDown, ArrowUp, ArrowLeft, ArrowDown, ArrowRight and Enter as WIN_VK_* and WIN_VK_NUMPAD_*.  This makes automated tests can specify both positions' keys explicitly.

Finally, this patch adds some tests to test_keycodes.xul for testing KeyboardEvent.code value of those keys in both positions.

MozReview-Commit-ID: 8n1rQ71dilg
2016-09-13 19:38:23 +09:00
Masayuki Nakano
0e368c3bb2 Bug 1300937 part.1 Check KeyboardEvent.key and KeyboardEvent.code in test_keycodes.xul r=smaug
MozReview-Commit-ID: AntOqvmTCcW
2016-09-13 21:48:45 +09:00
Carsten "Tomcat" Book
9e45adacec Backed out changeset 6a8bf7596f42 (bug 1300937) for m-oth test failures 2016-09-15 17:04:33 +02:00
Carsten "Tomcat" Book
7a5c0420ad Backed out changeset be88a60abb7a (bug 1300937) 2016-09-15 17:04:16 +02:00
Carsten "Tomcat" Book
064fd5bae7 Backed out changeset e94d6d577103 (bug 1300937) 2016-09-15 17:04:14 +02:00
Masayuki Nakano
3acc1e6bee Bug 1300937 part.3 NativeKeyCodes.js should specify scan code to WIN_VK_ABNT_C1 explicitly for avoiding (perhaps) a bug of MapVirtualKeyEx() API r=smaug
Unfortunately, MapVirtualKeyEx() doesn't compute ABNT C1's scan code from its virtual keycode, 0xC1.  Therefore, NativeKeyCodes.js should specify 0x0056 explicitly.  Fortunately, this key in physical keyboard always generates the scan code value with any keyboard layouts.  Therefore, this can test new regressions as expected.

FYI: ABNT C1 key is a key in Brazilian keyboard.  It's at between "ShiftLeft" and "KeyZ".

MozReview-Commit-ID: GmpnFKOsnKD
2016-09-13 19:55:29 +09:00
Masayuki Nakano
fa5b463ca3 Bug 1300937 part.2 Automated tests which synthesize native key events on Windows should specify scan code value explicitly r=smaug
On Windows, some keys are called "extended key".  Their scan code include 0xE000.  For example, Enter key in standard position is 0x001C but Numpad's Enter key is 0xE01C.  Unfortunately, both of them cause same virtual keycode value, VK_RETURN.  Therefore, currently, nsIDOMWindowUtils.sendNativeKey() can synthesize only one native key event of them (only non-extended key's event).  Additionally, MapVirtualKeyEx() API with MAPVK_VK_TO_VSC (even with MAPVK_VK_TO_VSC_EX) don't return extended scancode value as expected.

For solving these issues, we should include scan code value to the virtual keycode value at calling sendNativeKey().

Fortunately, virtual keycode value on Windows is 0 ~ 255 (0x00 ~ 0xFF) but aNativeKeyCode of sendNativeKey() is int32_t.  So, we can use upper 16 bit for specifying scan code.

This patch explicitly specifies scan code value at defining WIN_VK_* in NativeKeyCodes.js.  Additionally, this patch duplicates native virtual keycode definition for Home, End, Insert, Delete, PageUp, PageDown, ArrowUp, ArrowLeft, ArrowDown, ArrowRight and Enter as WIN_VK_* and WIN_VK_NUMPAD_*.  This makes automated tests can specify both positions' keys explicitly.

Finally, this patch adds some tests to test_keycodes.xul for testing KeyboardEvent.code value of those keys in both positions.

MozReview-Commit-ID: 8n1rQ71dilg
2016-09-13 19:38:23 +09:00
Masayuki Nakano
02b84cd916 Bug 1300937 part.1 Check KeyboardEvent.key and KeyboardEvent.code in test_keycodes.xul r=smaug
MozReview-Commit-ID: AntOqvmTCcW
2016-09-13 21:48:45 +09:00
Masayuki Nakano
dcda337a5e Bug 947115 All tests shouldn't use nsIDOMWindowUtils.sendNativeKeyEvent() directly. Use synthesizeNativeKey() instead. r=smaug 2013-12-18 16:02:46 +09:00
Masayuki Nakano
e8a10f0c1c Bug 946044 Handle context menu key of PC keyboard on Mac r=smichaud 2013-12-06 12:16:55 +09:00
Masayuki Nakano
7dded6d1d5 Bug 896362 part.2 Add tests for VK_ABNT_C1 and VK_ABNT_C2 r=jimm+smaug 2013-07-25 15:04:17 +09:00
Masayuki Nakano
08c29c0a98 Bug 768736 Define constants for system native virtual keys for nsIDOMWindowUtils::SendNativeKeyEvent() r=roc 2012-06-27 11:26:38 +09:00