gecko-dev/widget/windows
Masayuki Nakano 64ec99ecef Bug 1335670 NativeKey should dispatch consumed keydown event when it receives WM_NULL at removing WM_*CHAR from the queue and the original message has gone r=m_kato
Currently, NativeKey::GetFollowingCharMessage() tries 5 times to remove found char message from the queue.  It was enough when we found this issue at developing Metrofox.

However, this hack is not enough for some odd keyboard layouts because we see some crash reports which gives up to remove a char message from the queue because 5 WM_NULL messages are returned.

For preventing this crash, we should check if there is the message which is trying to remove from the queue when NativeKey receives WM_NULL.  Then, when there is no key message in the queue or next key message becomes non-char message,, NativeKey should dispatch consumed keydown event because we can assume that the key operation may have already been handled or canceled.  Otherwise, NativeKey should retry to remove the message again (until 50 times!, it's just enough big magic number, there is no concrete reason).

MozReview-Commit-ID: 1c6Y4OoQdrP

--HG--
extra : rebase_source : 2ad588d0513741ff6a58be6f523cf59d8deea151
2017-02-02 22:43:20 +09:00
..
res
tests Bug 1309698 - Remove usage of nsISupportsArray from nsIDragService. r=smaug 2016-10-18 11:56:20 -07:00
AudioSession.cpp Bug 1265386: Fix white-space errors in widget/, r=nfroyd 2016-07-22 10:56:13 +02:00
AudioSession.h
CompositorWidgetChild.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
CompositorWidgetChild.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
CompositorWidgetParent.cpp Bug 1330037 - Propagate the CompositorOptions to all CompositorWidget instances. r=dvander 2017-01-12 17:29:42 -05:00
CompositorWidgetParent.h Bug 1330037 - Propagate the CompositorOptions to all CompositorWidget instances. r=dvander 2017-01-12 17:29:42 -05:00
GfxInfo.cpp Bug 1325503 - Remove Windows {XP, Server 2003, Vista} support from widget/. r=jimm. 2016-12-23 13:13:31 +11:00
GfxInfo.h Bug 1285563: Part 1. Track two GPU infos in arrays, easier for swap if the second is active. r=milan 2016-12-16 11:56:59 -05:00
IEnumFE.cpp
IEnumFE.h Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan 2016-12-16 16:00:43 +08:00
IMMHandler.cpp Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan 2016-12-16 16:00:43 +08:00
IMMHandler.h
InkCollector.cpp Bug 1315264: Set InkCollector.AutoRedraw to false to prevent repainting when the window is invalidated. r=jimm 2016-11-29 16:43:49 +08:00
InkCollector.h Bug 1258808 - Part 2: Enhance Widget for Windows (Widget). r=smaug, f=btseng 2016-09-01 16:12:15 +08:00
InProcessWinCompositorWidget.cpp Bug 1330037 - Propagate the CompositorOptions to all CompositorWidget instances. r=dvander 2017-01-12 17:29:42 -05:00
InProcessWinCompositorWidget.h Bug 1330037 - Propagate the CompositorOptions to all CompositorWidget instances. r=dvander 2017-01-12 17:29:42 -05:00
JumpListBuilder.cpp Bug 1265386: Fix white-space errors in widget/, r=nfroyd 2016-07-22 10:56:13 +02:00
JumpListBuilder.h
JumpListItem.cpp Bug 1322459 part 2 - Remove duplicate mRefCnt in JumpListShortCut. r=Ehsan 2016-12-13 15:56:34 +08:00
JumpListItem.h Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan 2016-12-16 16:00:43 +08:00
KeyboardLayout.cpp Bug 1335670 NativeKey should dispatch consumed keydown event when it receives WM_NULL at removing WM_*CHAR from the queue and the original message has gone r=m_kato 2017-02-02 22:43:20 +09:00
KeyboardLayout.h Bug 1335306 Append active keyboard layout information into crash report when NativeKey crashes due to detecting impossible case caused by 3rd party's keyboard layout or utils r=m_kato 2017-01-31 23:23:06 +09:00
LSPAnnotator.cpp Backed out 27 changesets (bug 1323100) for leaks in mochitest-e10s-2 a=backout 2016-12-30 16:09:03 -08:00
moz.build Backed out changeset 1413fa802632 (bug 1031362) for test failures in pointerevents/test_touch_action.html 2016-12-20 14:52:23 +01:00
mozwrlbase.h
nsAppShell.cpp Bug 1293117 (part 4) - Change many NS_IMETHODIMP occurrences to NS_IMETHOD. r=froydnj. 2016-08-08 10:54:47 +10:00
nsAppShell.h
nsBidiKeyboard.cpp
nsBidiKeyboard.h
nsClipboard.cpp Bug 545066 - Clean up nsClipboard.cpp - braces added for if..else, no tabs, ident fix. r=jimm 2016-12-11 12:45:17 +01:00
nsClipboard.h
nsColorPicker.cpp
nsColorPicker.h
nsDataObj.cpp Bug 1325503 - Remove Windows {XP, Server 2003, Vista} support from widget/. r=jimm. 2016-12-23 13:13:31 +11:00
nsDataObj.h Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan 2016-12-16 16:00:43 +08:00
nsDataObjCollection.cpp
nsDataObjCollection.h Bug 1265386: Fix white-space errors in widget/, r=nfroyd 2016-07-22 10:56:13 +02:00
nsdefs.h
nsDeviceContextSpecWin.cpp Bug 1324064: Stop accessing printer devices in the child when printing via parent. r=jimm 2017-01-06 11:29:11 +00:00
nsDeviceContextSpecWin.h Bug 1313525 - Remove the nsIPrintOptions interface. r=mstange 2016-10-28 00:31:14 +01:00
nsDragService.cpp Bug 1309596, implementation of UpdateDragImage by adjusting image and calling DragEnter of the drag feedback helper, r=jimm 2016-12-23 18:09:44 -05:00
nsDragService.h Bug 1309596, implementation of UpdateDragImage by adjusting image and calling DragEnter of the drag feedback helper, r=jimm 2016-12-23 18:09:44 -05:00
nsFilePicker.cpp Bug 1325503 - Remove Windows {XP, Server 2003, Vista} support from widget/. r=jimm. 2016-12-23 13:13:31 +11:00
nsFilePicker.h Bug 1325503 - Remove Windows {XP, Server 2003, Vista} support from widget/. r=jimm. 2016-12-23 13:13:31 +11:00
nsIdleServiceWin.cpp
nsIdleServiceWin.h
nsImageClipboard.cpp
nsImageClipboard.h Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan 2016-12-16 16:00:43 +08:00
nsLookAndFeel.cpp Bug 1325503 - Remove Windows {XP, Server 2003, Vista} support from widget/. r=jimm. 2016-12-23 13:13:31 +11:00
nsLookAndFeel.h Bug 1322752 - Cannot compile widget with bumping WINVER to 0x601. r=jimm 2016-12-15 16:40:33 +09:00
nsNativeDragSource.cpp
nsNativeDragSource.h Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan 2016-12-16 16:00:43 +08:00
nsNativeDragTarget.cpp Bug 1309596, implementation of UpdateDragImage by adjusting image and calling DragEnter of the drag feedback helper, r=jimm 2016-12-23 18:09:44 -05:00
nsNativeDragTarget.h Bug 1309596, implementation of UpdateDragImage by adjusting image and calling DragEnter of the drag feedback helper, r=jimm 2016-12-23 18:09:44 -05:00
nsNativeThemeWin.cpp Bug 1328423 - Avoid calling into JS from Windows theming code (r=jimm) 2017-01-17 13:29:26 -08:00
nsNativeThemeWin.h Bug 1325503 - Remove Windows {XP, Server 2003, Vista} support from widget/. r=jimm. 2016-12-23 13:13:31 +11:00
nsPrintOptionsWin.cpp
nsPrintOptionsWin.h
nsPrintSettingsWin.cpp
nsPrintSettingsWin.h
nsScreenManagerWin.cpp
nsScreenManagerWin.h
nsScreenWin.cpp
nsScreenWin.h Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan 2016-12-16 16:00:43 +08:00
nsSound.cpp Backed out 27 changesets (bug 1323100) for leaks in mochitest-e10s-2 a=backout 2016-12-30 16:09:03 -08:00
nsSound.h
nsToolkit.cpp
nsToolkit.h
nsUXThemeConstants.h Bug 1325503 - Remove Windows {XP, Server 2003, Vista} support from widget/. r=jimm. 2016-12-23 13:13:31 +11:00
nsUXThemeData.cpp Bug 1325503 - Remove Windows {XP, Server 2003, Vista} support from widget/. r=jimm. 2016-12-23 13:13:31 +11:00
nsUXThemeData.h
nsWidgetFactory.cpp Initialize nsAppShell in the GPU process. (bug 1294350 part 5, r=nfroyd) 2016-08-22 22:57:36 -07:00
nsWindow.cpp Bug 1320531 - Check whether DPI appears to have changed before calling ChangedDPI + ResetLayout while dragging windows. r=emk 2017-01-31 20:54:23 +00:00
nsWindow.h Bug 1325503 - Remove Windows {XP, Server 2003, Vista} support from widget/. r=jimm. 2016-12-23 13:13:31 +11:00
nsWindowBase.cpp Bug 1313170 - Use the widget-level touch injection instead of the OS-level touch injection for some tests. r=dvander 2016-10-31 10:05:15 -04:00
nsWindowBase.h Bug 1300003 part.6 NativeKey shouldn't try to dispatch plugin events for removed char messages when mWidget won't dispatch plugin events r=m_kato 2016-09-15 00:16:18 +09:00
nsWindowDbg.cpp Bug 1321244 - Lazily init global variables that could implicitly initialize NSPR. r=froydnj 2016-12-01 11:48:32 +08:00
nsWindowDbg.h
nsWindowDefs.h Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan 2016-12-16 16:00:43 +08:00
nsWindowGfx.cpp Backed out changeset 84f4a96a130b (bug 1325743) for incredibly frequent Windows 7 VM reftest crashes in variable-supports-23.html a=backout 2017-01-10 13:52:23 -08:00
nsWindowGfx.h
nsWinGesture.cpp Bug 1321244 - Lazily init global variables that could implicitly initialize NSPR. r=froydnj 2016-12-01 11:48:32 +08:00
nsWinGesture.h Bug 1322752 - Cannot compile widget with bumping WINVER to 0x601. r=jimm 2016-12-15 16:40:33 +09:00
PCompositorWidget.ipdl Bug 1289236. Remove ResizeTransparentWindow. r=dvander 2016-07-29 09:29:35 -04:00
PlatformWidgetTypes.ipdlh
resource.h
TaskbarPreview.cpp Bug 1322752 - Cannot compile widget with bumping WINVER to 0x601. r=jimm 2016-12-15 16:40:33 +09:00
TaskbarPreview.h
TaskbarPreviewButton.cpp
TaskbarPreviewButton.h Bug 1265386: Fix white-space errors in widget/, r=nfroyd 2016-07-22 10:56:13 +02:00
TaskbarTabPreview.cpp
TaskbarTabPreview.h
TaskbarWindowPreview.cpp
TaskbarWindowPreview.h
touchinjection_sdk80.h
TSFTextStore.cpp Bug 1325503 - Remove Windows {XP, Server 2003, Vista} support from widget/. r=jimm. 2016-12-23 13:13:31 +11:00
TSFTextStore.h Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan 2016-12-16 16:00:43 +08:00
widget.rc
WidgetTraceEvent.cpp Bug 1323042 - forbid MOZ_COUNT_{CTOR,DTOR} for nsISupports classes; r=froydnj 2016-12-12 09:27:58 -05:00
WinCompositorWidget.cpp Bug 1330037 - Propagate the CompositorOptions to all CompositorWidget instances. r=dvander 2017-01-12 17:29:42 -05:00
WinCompositorWidget.h Bug 1330037 - Propagate the CompositorOptions to all CompositorWidget instances. r=dvander 2017-01-12 17:29:42 -05:00
WindowHook.cpp
WindowHook.h Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan 2016-12-16 16:00:43 +08:00
WindowsUIUtils.cpp Bug 1289248 - Stop using MOZ_WINSDK_MAXVER outside configure. r=blassey,cpearce 2016-07-22 18:52:13 +09:00
WindowsUIUtils.h
WinIMEHandler.cpp Bug 1226522 - Show the on-screen keyboard from touch events even on machines lacking rotation sensors (such as touch-screen laptops). r=Gijs 2016-07-12 08:00:28 -04:00
WinIMEHandler.h
WinMessages.h
WinModifierKeyState.h Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan 2016-12-16 16:00:43 +08:00
WinMouseScrollHandler.cpp Bug 1325503 - Remove Windows {XP, Server 2003, Vista} support from widget/. r=jimm. 2016-12-23 13:13:31 +11:00
WinMouseScrollHandler.h
WinNativeEventData.h
WinPointerEvents.cpp Bug 1031362 follow-up - Fix local unified compilation bustage by including required headers. r=sparky 2016-12-24 21:53:23 +00:00
WinPointerEvents.h Bug 1031362 follow-up - Fix local unified compilation bustage by including required headers. r=sparky 2016-12-24 21:53:23 +00:00
WinTaskbar.cpp Bug 1325503 - Remove Windows {XP, Server 2003, Vista} support from widget/. r=jimm. 2016-12-23 13:13:31 +11:00
WinTaskbar.h
WinTextEventDispatcherListener.cpp
WinTextEventDispatcherListener.h
WinUtils.cpp Bug 1325503 - Remove Windows {XP, Server 2003, Vista} support from widget/. r=jimm. 2016-12-23 13:13:31 +11:00
WinUtils.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00