Closed Bug 1347835 Opened 3 years ago Closed 3 years ago

Some input methods can not enter numbers and symbols in XP

Categories

(Core :: Widget: Win32, defect)

52 Branch
x86
Windows
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla55
Tracking Status
firefox-esr52 --- fixed
firefox54 --- fixed
firefox55 --- fixed

People

(Reporter: yxu, Assigned: masayuki)

References

Details

(Keywords: inputmethod)

Attachments

(2 files)

If users use the system comes with input method in Windows XP called "zhengma","quanpin" and "abc input", they can't enter numbers and symbols in Firefox 52 release&ESR. It works fine in Firefox 51. This problem may bring a relatively large influence in China and Taiwan.
(In reply to yxu from comment #0)
> If users use the system comes with input method in Windows XP called
> "zhengma","quanpin" and "abc input", they can't enter numbers and symbols in
> Firefox 52 release&ESR. It works fine in Firefox 51.

Could you explain exact STR about this?

> This problem may bring a relatively large influence in China and Taiwan.

I don't think so because nobody has reported this bug for this (at least) 12 weeks. (I.e., nobody of such IME users is testing our Beta nor Developer Edition (nor Nightly).)
Component: Keyboard: Navigation → Widget: Win32
Keywords: inputmethod
OS: Unspecified → Windows
Hardware: Unspecified → x86
And it's odd. We supports only IMM mode on WinXP. However, we haven't touched IMM module since 50:
https://hg.mozilla.org/mozilla-central/log/tip/widget/windows/IMMHandler.cpp

Could be a regression of Keyboard code.
(In reply to Masayuki Nakano [:masayuki] from comment #1)

> Could you explain exact STR about this?

First switch IME to "zhengma". What ever type in ",./" on the right side of the letter "M", or "1234…", it doesn't appear in either the built-in search box or the text box in the page.

> I don't think so because nobody has reported this bug for this (at least) 12
> weeks. (I.e., nobody of such IME users is testing our Beta nor Developer
> Edition (nor Nightly).)

On the one hand the current use of xp users is getting less. On the other hand there are not many users will use Zhengma, Quanpin these input method, although they are the system comes with.

The third party IME is work fine for the 52 version.
Duplicate of this bug: 1351988
We received a feedback from a Taiwanese user who used an input method named "fast input method" could cause this problem.
Its official website is: http://input.foruto.com/fast/downloads.php
Thank you, does it available on Win7 or later? Then, we should fix it ASAP.

Anyway, I don't have much time to work on this. If somebody provide IME and keyboard log here, it's really helpful.

You can take a log with following envs:

MOZ_LOG=nsTextStoreWidgets:5,nsIMM32HandlerWidgets:5,NativeKeyWidgets:5
MOZ_LOG_FILE=C:\fx.log

Then, keyboard and IME handling is logged into fx.log into C drive.

Note that this records a lot and *all inputting text*.  Therefore, you should launch Firefox and just type "1" and quit from Firefox, then, remove the following envs (or set these numbers to 0).
(In reply to Masayuki Nakano [:masayuki] from comment #6)
> Thank you, does it available on Win7 or later? Then, we should fix it ASAP.
> 
> Anyway, I don't have much time to work on this. If somebody provide IME and
> keyboard log here, it's really helpful.
> 
> You can take a log with following envs:
> 
> MOZ_LOG=nsTextStoreWidgets:5,nsIMM32HandlerWidgets:5,NativeKeyWidgets:5
> MOZ_LOG_FILE=C:\fx.log
> 
> Then, keyboard and IME handling is logged into fx.log into C drive.
> 
> Note that this records a lot and *all inputting text*.  Therefore, you
> should launch Firefox and just type "1" and quit from Firefox, then, remove
> the following envs (or set these numbers to 0).

I am glad to help with my virtual XP installed.

However I found this on Mozilla's Developer Guide:
"To build Firefox on Windows, you need a 64-bit version of Windows 7 or later and about 40 GB of free space on your hard drive ."

The dilemma? :)
You don't need to build Firefox by yourself. You can get the log with release builds too because we need to debug any IME/keyboard layout which is difficult to get (e.g., needs to buy).

You need to just set the env from PC's property (or in command line if you launch Firefox from command line).
(In reply to Masayuki Nakano [:masayuki] from comment #8)
> You don't need to build Firefox by yourself. You can get the log with
> release builds too because we need to debug any IME/keyboard layout which is
> difficult to get (e.g., needs to buy).
> 
> You need to just set the env from PC's property (or in command line if you
> launch Firefox from command line).

Understood. There you go, keys pressed: 1233456

[Main Thread]: I/nsTextStoreWidgets TSFTextStore::Initialize() is called...
[Main Thread]: I/nsTextStoreWidgets   TSFTextStore::Initialize(), TSF is disabled
[Main Thread]: I/nsIMM32HandlerWidgets InitKeyboardLayout, aKeyboardLayout=04090409 (""), sCodePage=1252, sIMEProperty=IME_PROP_AT_CARET | IME_PROP_UNICODE, sIMEUIProperty=no flags
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, hWnd=001b0428, Active, lParam=c000000f
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, ISC_SHOWUICOMPOSITIONWINDOW is removed
[Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001b0428, IMN_OPENSTATUSWINDOW
[Main Thread]: I/nsIMM32HandlerWidgets CommitComposition, aForce=false, aWindow=11771000, hWnd=001b0428, mComposingWindow=0
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, hWnd=001b0428, Deactive, lParam=c000000f
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, hWnd=001b0428, Active, lParam=c000000f
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, ISC_SHOWUICOMPOSITIONWINDOW is removed
[Main Thread]: I/nsIMM32HandlerWidgets CommitComposition, aForce=false, aWindow=11771000, hWnd=001b0428, mComposingWindow=0
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, hWnd=001b0428, Deactive, lParam=c000000f
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, hWnd=001b0428, Active, lParam=c000000f
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, ISC_SHOWUICOMPOSITIONWINDOW is removed
[Main Thread]: I/nsIMM32HandlerWidgets OnFocusChange(aFocus=true, aWindow=11771000), sHasFocus=false, IsComposingWindow(aWindow)=false, aWindow->Destroyed()=false, sNativeCaretIsCreatedForPlugin=false
[Main Thread]: I/nsIMM32HandlerWidgets OnFocusChange(aFocus=false, aWindow=11771000), sHasFocus=true, IsComposingWindow(aWindow)=false, aWindow->Destroyed()=false, sNativeCaretIsCreatedForPlugin=false
[Main Thread]: I/nsIMM32HandlerWidgets CommitComposition, aForce=false, aWindow=11771000, hWnd=001b0428, mComposingWindow=0
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, hWnd=001b0428, Deactive, lParam=c000000f
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, hWnd=001b0428, Active, lParam=c000000f
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, ISC_SHOWUICOMPOSITIONWINDOW is removed
[Main Thread]: I/nsIMM32HandlerWidgets CommitComposition, aForce=false, aWindow=11771000, hWnd=001b0428, mComposingWindow=0
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, hWnd=001b0428, Deactive, lParam=c000000f
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, hWnd=001b0428, Active, lParam=c000000f
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, ISC_SHOWUICOMPOSITIONWINDOW is removed
[Main Thread]: I/nsIMM32HandlerWidgets OnFocusChange(aFocus=true, aWindow=11771000), sHasFocus=false, IsComposingWindow(aWindow)=false, aWindow->Destroyed()=false, sNativeCaretIsCreatedForPlugin=false
[Main Thread]: I/nsIMM32HandlerWidgets OnKeyDownEvent, hWnd=001b0428, wParam=00000011, lParam=001d0001
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYDOWN, virtual keycode=VK_CONTROL, repeat count=1, scancode=0x1D, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428, aModKeyState={ Control | NumLock }), sLatestInstance=0x0
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), there are no char messages
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0x04090409, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AECD0, mKeyNameIndex=Control, mCodeNameIndex=ControlLeft, mModKeyState={ Control | NumLock }, mVirtualKeyCode=VK_LCONTROL, mOriginalVirtualKeyCode=VK_CONTROL, mCommittedCharsAndModifiers={}, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x001D, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=false, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), initializing keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyDown, mKeyNameIndex=Control, mKeyValue="", mCodeNameIndex=ControlLeft, mKeyCode=VK_CONTROL, mLocation=KEY_LOCATION_LEFT, mModifiers=Control | NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatching keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::WillDispatchKeyboardEvent(), does nothing for 1th eKeyDown event
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatched keydown event, dispatched=true, defaultPrevented=false
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), tries to be dispatching keypress events due to no following char messages...
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::DispatchKeyPressEventsWithoutCharMessage(), initializing keypress event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyPress, mKeyNameIndex=Control, mKeyValue="", mCodeNameIndex=ControlLeft, mKeyCode=VK_CONTROL, mLocation=KEY_LOCATION_LEFT, mModifiers=Control | NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::DispatchKeyPressEventsWithoutCharMessage(), dispatching keypress event(s)...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::DispatchKeyPressEventsWithoutCharMessage(), dispatched keypress event(s), dispatched=false, consumed=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/nsIMM32HandlerWidgets OnKeyDownEvent, hWnd=001b0428, wParam=00000010, lParam=002a0001
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYDOWN, virtual keycode=VK_SHIFT, repeat count=1, scancode=0x2A, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428, aModKeyState={ Control | NumLock | Shift }), sLatestInstance=0x0
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), there are no char messages
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0x04090409, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AECDC, mKeyNameIndex=Shift, mCodeNameIndex=ShiftLeft, mModKeyState={ Control | NumLock | Shift }, mVirtualKeyCode=VK_LSHIFT, mOriginalVirtualKeyCode=VK_SHIFT, mCommittedCharsAndModifiers={}, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x002A, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=false, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), initializing keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyDown, mKeyNameIndex=Shift, mKeyValue="", mCodeNameIndex=ShiftLeft, mKeyCode=VK_SHIFT, mLocation=KEY_LOCATION_LEFT, mModifiers=Control | NumLock | Shift, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatching keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::WillDispatchKeyboardEvent(), does nothing for 1th eKeyDown event
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatched keydown event, dispatched=true, defaultPrevented=false
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), tries to be dispatching keypress events due to no following char messages...
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::DispatchKeyPressEventsWithoutCharMessage(), initializing keypress event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyPress, mKeyNameIndex=Shift, mKeyValue="", mCodeNameIndex=ShiftLeft, mKeyCode=VK_SHIFT, mLocation=KEY_LOCATION_LEFT, mModifiers=Control | NumLock | Shift, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::DispatchKeyPressEventsWithoutCharMessage(), dispatching keypress event(s)...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::DispatchKeyPressEventsWithoutCharMessage(), dispatched keypress event(s), dispatched=false, consumed=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYUP, virtual keycode=VK_SHIFT, repeat count=1, scancode=0x2A, extended key=false, context code=false, previous key state=true, transition state=true, hwnd=0x1b0428, aModKeyState={ Control | NumLock }), sLatestInstance=0x0
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0x04090409, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AECDC, mKeyNameIndex=Shift, mCodeNameIndex=ShiftLeft, mModKeyState={ Control | NumLock }, mVirtualKeyCode=VK_LSHIFT, mOriginalVirtualKeyCode=VK_SHIFT, mCommittedCharsAndModifiers={}, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x002A, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=false, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), initializing keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyUp, mKeyNameIndex=Shift, mKeyValue="", mCodeNameIndex=ShiftLeft, mKeyCode=VK_SHIFT, mLocation=KEY_LOCATION_LEFT, mModifiers=Control | NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), dispatching keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), dispatched keyup event, dispatched=true, consumed=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001b0428, IMN_CLOSESTATUSWINDOW
[Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001b0428, IMN_OPENSTATUSWINDOW
[Main Thread]: I/nsIMM32HandlerWidgets InitKeyboardLayout, aKeyboardLayout=10090c0c (""), sCodePage=1252, sIMEProperty=IME_PROP_AT_CARET | IME_PROP_UNICODE, sIMEUIProperty=no flags
[Main Thread]: I/NativeKeyWidgets 12ed88 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYUP, virtual keycode=VK_CONTROL, repeat count=1, scancode=0x1D, extended key=false, context code=false, previous key state=true, transition state=true, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::NativeKey(), mKeyboardLayout=0x10090C0C, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AECD0, mKeyNameIndex=Control, mCodeNameIndex=ControlLeft, mModKeyState={ NumLock }, mVirtualKeyCode=VK_LCONTROL, mOriginalVirtualKeyCode=VK_CONTROL, mCommittedCharsAndModifiers={}, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x001D, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=false, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed88   NativeKey::HandleKeyUpMessage(), initializing keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyUp, mKeyNameIndex=Control, mKeyValue="", mCodeNameIndex=ControlLeft, mKeyCode=VK_CONTROL, mLocation=KEY_LOCATION_LEFT, mModifiers=NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::HandleKeyUpMessage(), dispatching keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::HandleKeyUpMessage(), dispatched keyup event, dispatched=true, consumed=false
[Main Thread]: D/NativeKeyWidgets 12ed88   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/nsIMM32HandlerWidgets OnKeyDownEvent, hWnd=001b0428, wParam=00000011, lParam=001d0001
[Main Thread]: I/NativeKeyWidgets 12ed88 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYDOWN, virtual keycode=VK_CONTROL, repeat count=1, scancode=0x1D, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428, aModKeyState={ Control | NumLock }), sLatestInstance=0x0
[Main Thread]: V/NativeKeyWidgets 12ed88   NativeKey::GetFollowingCharMessage(), there are no char messages
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::NativeKey(), mKeyboardLayout=0x10090C0C, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AECD0, mKeyNameIndex=Control, mCodeNameIndex=ControlLeft, mModKeyState={ Control | NumLock }, mVirtualKeyCode=VK_LCONTROL, mOriginalVirtualKeyCode=VK_CONTROL, mCommittedCharsAndModifiers={}, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x001D, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=false, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed88   NativeKey::HandleKeyDownMessage(), initializing keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyDown, mKeyNameIndex=Control, mKeyValue="", mCodeNameIndex=ControlLeft, mKeyCode=VK_CONTROL, mLocation=KEY_LOCATION_LEFT, mModifiers=Control | NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::HandleKeyDownMessage(), dispatching keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::WillDispatchKeyboardEvent(), does nothing for 1th eKeyDown event
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::HandleKeyDownMessage(), dispatched keydown event, dispatched=true, defaultPrevented=false
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::HandleKeyDownMessage(), tries to be dispatching keypress events due to no following char messages...
[Main Thread]: D/NativeKeyWidgets 12ed88   NativeKey::DispatchKeyPressEventsWithoutCharMessage(), initializing keypress event...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyPress, mKeyNameIndex=Control, mKeyValue="", mCodeNameIndex=ControlLeft, mKeyCode=VK_CONTROL, mLocation=KEY_LOCATION_LEFT, mModifiers=Control | NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::DispatchKeyPressEventsWithoutCharMessage(), dispatching keypress event(s)...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::DispatchKeyPressEventsWithoutCharMessage(), dispatched keypress event(s), dispatched=false, consumed=false
[Main Thread]: D/NativeKeyWidgets 12ed88   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/nsIMM32HandlerWidgets OnKeyDownEvent, hWnd=001b0428, wParam=00000010, lParam=002a0001
[Main Thread]: I/NativeKeyWidgets 12ed88 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYDOWN, virtual keycode=VK_SHIFT, repeat count=1, scancode=0x2A, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428, aModKeyState={ Control | NumLock | Shift }), sLatestInstance=0x0
[Main Thread]: V/NativeKeyWidgets 12ed88   NativeKey::GetFollowingCharMessage(), there are no char messages
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::NativeKey(), mKeyboardLayout=0x10090C0C, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AECDC, mKeyNameIndex=Shift, mCodeNameIndex=ShiftLeft, mModKeyState={ Control | NumLock | Shift }, mVirtualKeyCode=VK_LSHIFT, mOriginalVirtualKeyCode=VK_SHIFT, mCommittedCharsAndModifiers={}, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x002A, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=false, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed88   NativeKey::HandleKeyDownMessage(), initializing keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyDown, mKeyNameIndex=Shift, mKeyValue="", mCodeNameIndex=ShiftLeft, mKeyCode=VK_SHIFT, mLocation=KEY_LOCATION_LEFT, mModifiers=Control | NumLock | Shift, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::HandleKeyDownMessage(), dispatching keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::WillDispatchKeyboardEvent(), does nothing for 1th eKeyDown event
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::HandleKeyDownMessage(), dispatched keydown event, dispatched=true, defaultPrevented=false
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::HandleKeyDownMessage(), tries to be dispatching keypress events due to no following char messages...
[Main Thread]: D/NativeKeyWidgets 12ed88   NativeKey::DispatchKeyPressEventsWithoutCharMessage(), initializing keypress event...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyPress, mKeyNameIndex=Shift, mKeyValue="", mCodeNameIndex=ShiftLeft, mKeyCode=VK_SHIFT, mLocation=KEY_LOCATION_LEFT, mModifiers=Control | NumLock | Shift, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::DispatchKeyPressEventsWithoutCharMessage(), dispatching keypress event(s)...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::DispatchKeyPressEventsWithoutCharMessage(), dispatched keypress event(s), dispatched=false, consumed=false
[Main Thread]: D/NativeKeyWidgets 12ed88   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/NativeKeyWidgets 12ed88 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYUP, virtual keycode=VK_SHIFT, repeat count=1, scancode=0x2A, extended key=false, context code=false, previous key state=true, transition state=true, hwnd=0x1b0428, aModKeyState={ Control | NumLock }), sLatestInstance=0x0
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::NativeKey(), mKeyboardLayout=0x10090C0C, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AECDC, mKeyNameIndex=Shift, mCodeNameIndex=ShiftLeft, mModKeyState={ Control | NumLock }, mVirtualKeyCode=VK_LSHIFT, mOriginalVirtualKeyCode=VK_SHIFT, mCommittedCharsAndModifiers={}, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x002A, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=false, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed88   NativeKey::HandleKeyUpMessage(), initializing keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyUp, mKeyNameIndex=Shift, mKeyValue="", mCodeNameIndex=ShiftLeft, mKeyCode=VK_SHIFT, mLocation=KEY_LOCATION_LEFT, mModifiers=Control | NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::HandleKeyUpMessage(), dispatching keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::HandleKeyUpMessage(), dispatched keyup event, dispatched=true, consumed=false
[Main Thread]: D/NativeKeyWidgets 12ed88   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001b0428, IMN_CLOSESTATUSWINDOW
[Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001b0428, IMN_OPENSTATUSWINDOW
[Main Thread]: D/nsIMM32HandlerWidgets IMMHandler is created
[Main Thread]: I/nsIMM32HandlerWidgets AdjustCompositionFont, sCompositionFont="System" is initialized
[Main Thread]: W/nsIMM32HandlerWidgets AdjustCompositionFont, calling ::ImmSetCompositionFont("System")
[Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001b0428, IMN_SETCOMPOSITIONFONT
[Main Thread]: I/nsIMM32HandlerWidgets InitKeyboardLayout, aKeyboardLayout=e0040804 ("智能ABC(sp) 专用版本5.22"), sCodePage=936, sIMEProperty=, sIMEUIProperty=UI_CAP_ROT90
[Main Thread]: D/nsIMM32HandlerWidgets IMMHandler is destroyed
[Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001b0428, IMN_SETOPENSTATUS
[Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001b0428, IMN_SETCONVERSIONMODE
[Main Thread]: I/nsIMM32HandlerWidgets OnIMENotify, hWnd=001b0428, IMN_SETSENTENCEMODE
[Main Thread]: I/NativeKeyWidgets 12ed88 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYUP, virtual keycode=VK_CONTROL, repeat count=1, scancode=0x1D, extended key=false, context code=false, previous key state=true, transition state=true, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::NativeKey(), mKeyboardLayout=0xE0040804, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AECD0, mKeyNameIndex=Control, mCodeNameIndex=ControlLeft, mModKeyState={ NumLock }, mVirtualKeyCode=VK_LCONTROL, mOriginalVirtualKeyCode=VK_CONTROL, mCommittedCharsAndModifiers={}, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x001D, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=false, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed88   NativeKey::HandleKeyUpMessage(), initializing keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyUp, mKeyNameIndex=Control, mKeyValue="", mCodeNameIndex=ControlLeft, mKeyCode=VK_CONTROL, mLocation=KEY_LOCATION_LEFT, mModifiers=NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::HandleKeyUpMessage(), dispatching keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed88   NativeKey::HandleKeyUpMessage(), dispatched keyup event, dispatched=true, consumed=false
[Main Thread]: D/NativeKeyWidgets 12ed88   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/nsIMM32HandlerWidgets OnFocusChange(aFocus=false, aWindow=11771000), sHasFocus=true, IsComposingWindow(aWindow)=false, aWindow->Destroyed()=false, sNativeCaretIsCreatedForPlugin=false
[Main Thread]: I/nsIMM32HandlerWidgets CommitComposition, aForce=false, aWindow=11771000, hWnd=001b0428, mComposingWindow=0
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, hWnd=001b0428, Deactive, lParam=c000000f
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, hWnd=001b0428, Active, lParam=c000000f
[Main Thread]: I/nsIMM32HandlerWidgets CommitComposition, aForce=false, aWindow=11771000, hWnd=001b0428, mComposingWindow=0
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, hWnd=001b0428, Deactive, lParam=c000000f
[Main Thread]: I/nsIMM32HandlerWidgets OnIMESetContext, hWnd=001b0428, Active, lParam=c000000f
[Main Thread]: I/nsIMM32HandlerWidgets OnFocusChange(aFocus=true, aWindow=11771000), sHasFocus=false, IsComposingWindow(aWindow)=false, aWindow->Destroyed()=false, sNativeCaretIsCreatedForPlugin=false
[Main Thread]: I/nsIMM32HandlerWidgets CommitComposition, aForce=false, aWindow=11771000, hWnd=001b0428, mComposingWindow=0
[Main Thread]: I/nsIMM32HandlerWidgets OnKeyDownEvent, hWnd=001b0428, wParam=000000e5, lParam=00020001
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYDOWN, virtual keycode=VK_PROCESSKEY, repeat count=1, scancode=0x02, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), succeeded to retrieve next char message, aCharMsg={ message=WM_CHAR, character code='1' (0x0031), repeat count=1, scancode=0x02, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitWithKeyChar(), removed char message, { message=WM_CHAR, character code='1' (0x0031), repeat count=1, scancode=0x02, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), there are no char messages
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0xE0040804, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0xA9D33C8, mKeyNameIndex=USE_STRING, mCodeNameIndex=Digit1, mModKeyState={ NumLock }, mVirtualKeyCode=VK_PROCESSKEY, mOriginalVirtualKeyCode=VK_PROCESSKEY, mCommittedCharsAndModifiers={ '1' (0x0031) [NumLock] }, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x0002, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=true, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), initializing keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyDown, mKeyNameIndex=USE_STRING, mKeyValue="1", mCodeNameIndex=Digit1, mKeyCode=Invalid DOM keyCode (0x00000000), mLocation=KEY_LOCATION_STANDARD, mModifiers=NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatching keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatched keydown event, dispatched=true, defaultPrevented=false
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), not dispatching keypress event because the key was already handled by IME, defaultPrevented=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYUP, virtual keycode=VK_1, repeat count=1, scancode=0x02, extended key=false, context code=false, previous key state=true, transition state=true, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0xE0040804, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AEB74, mKeyNameIndex=USE_STRING, mCodeNameIndex=Digit1, mModKeyState={ NumLock }, mVirtualKeyCode=VK_1, mOriginalVirtualKeyCode=VK_1, mCommittedCharsAndModifiers={ '1' (0x0031) [none] }, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x0002, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=true, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), initializing keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyUp, mKeyNameIndex=USE_STRING, mKeyValue="1", mCodeNameIndex=Digit1, mKeyCode=VK_1, mLocation=KEY_LOCATION_STANDARD, mModifiers=NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), dispatching keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), dispatched keyup event, dispatched=true, consumed=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/nsIMM32HandlerWidgets OnKeyDownEvent, hWnd=001b0428, wParam=000000e5, lParam=00030001
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYDOWN, virtual keycode=VK_PROCESSKEY, repeat count=1, scancode=0x03, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), succeeded to retrieve next char message, aCharMsg={ message=WM_CHAR, character code='2' (0x0032), repeat count=1, scancode=0x03, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitWithKeyChar(), removed char message, { message=WM_CHAR, character code='2' (0x0032), repeat count=1, scancode=0x03, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), there are no char messages
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0xE0040804, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0xA9D3408, mKeyNameIndex=USE_STRING, mCodeNameIndex=Digit2, mModKeyState={ NumLock }, mVirtualKeyCode=VK_PROCESSKEY, mOriginalVirtualKeyCode=VK_PROCESSKEY, mCommittedCharsAndModifiers={ '2' (0x0032) [NumLock] }, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x0003, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=true, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), initializing keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyDown, mKeyNameIndex=USE_STRING, mKeyValue="2", mCodeNameIndex=Digit2, mKeyCode=Invalid DOM keyCode (0x00000000), mLocation=KEY_LOCATION_STANDARD, mModifiers=NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatching keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatched keydown event, dispatched=true, defaultPrevented=false
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), not dispatching keypress event because the key was already handled by IME, defaultPrevented=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYUP, virtual keycode=VK_2, repeat count=1, scancode=0x03, extended key=false, context code=false, previous key state=true, transition state=true, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0xE0040804, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AEB8C, mKeyNameIndex=USE_STRING, mCodeNameIndex=Digit2, mModKeyState={ NumLock }, mVirtualKeyCode=VK_2, mOriginalVirtualKeyCode=VK_2, mCommittedCharsAndModifiers={ '2' (0x0032) [none] }, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x0003, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=true, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), initializing keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyUp, mKeyNameIndex=USE_STRING, mKeyValue="2", mCodeNameIndex=Digit2, mKeyCode=VK_2, mLocation=KEY_LOCATION_STANDARD, mModifiers=NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), dispatching keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), dispatched keyup event, dispatched=true, consumed=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/nsIMM32HandlerWidgets OnKeyDownEvent, hWnd=001b0428, wParam=000000e5, lParam=00040001
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYDOWN, virtual keycode=VK_PROCESSKEY, repeat count=1, scancode=0x04, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), succeeded to retrieve next char message, aCharMsg={ message=WM_CHAR, character code='3' (0x0033), repeat count=1, scancode=0x04, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitWithKeyChar(), removed char message, { message=WM_CHAR, character code='3' (0x0033), repeat count=1, scancode=0x04, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), there are no char messages
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0xE0040804, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0xA9D3848, mKeyNameIndex=USE_STRING, mCodeNameIndex=Digit3, mModKeyState={ NumLock }, mVirtualKeyCode=VK_PROCESSKEY, mOriginalVirtualKeyCode=VK_PROCESSKEY, mCommittedCharsAndModifiers={ '3' (0x0033) [NumLock] }, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x0004, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=true, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), initializing keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyDown, mKeyNameIndex=USE_STRING, mKeyValue="3", mCodeNameIndex=Digit3, mKeyCode=Invalid DOM keyCode (0x00000000), mLocation=KEY_LOCATION_STANDARD, mModifiers=NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatching keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatched keydown event, dispatched=true, defaultPrevented=false
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), not dispatching keypress event because the key was already handled by IME, defaultPrevented=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYUP, virtual keycode=VK_3, repeat count=1, scancode=0x04, extended key=false, context code=false, previous key state=true, transition state=true, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0xE0040804, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AEB84, mKeyNameIndex=USE_STRING, mCodeNameIndex=Digit3, mModKeyState={ NumLock }, mVirtualKeyCode=VK_3, mOriginalVirtualKeyCode=VK_3, mCommittedCharsAndModifiers={ '3' (0x0033) [none] }, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x0004, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=true, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), initializing keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyUp, mKeyNameIndex=USE_STRING, mKeyValue="3", mCodeNameIndex=Digit3, mKeyCode=VK_3, mLocation=KEY_LOCATION_STANDARD, mModifiers=NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), dispatching keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), dispatched keyup event, dispatched=true, consumed=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/nsIMM32HandlerWidgets OnKeyDownEvent, hWnd=001b0428, wParam=000000e5, lParam=00050001
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYDOWN, virtual keycode=VK_PROCESSKEY, repeat count=1, scancode=0x05, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), succeeded to retrieve next char message, aCharMsg={ message=WM_CHAR, character code='4' (0x0034), repeat count=1, scancode=0x05, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitWithKeyChar(), removed char message, { message=WM_CHAR, character code='4' (0x0034), repeat count=1, scancode=0x05, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), there are no char messages
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0xE0040804, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0xD025248, mKeyNameIndex=USE_STRING, mCodeNameIndex=Digit4, mModKeyState={ NumLock }, mVirtualKeyCode=VK_PROCESSKEY, mOriginalVirtualKeyCode=VK_PROCESSKEY, mCommittedCharsAndModifiers={ '4' (0x0034) [NumLock] }, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x0005, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=true, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), initializing keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyDown, mKeyNameIndex=USE_STRING, mKeyValue="4", mCodeNameIndex=Digit4, mKeyCode=Invalid DOM keyCode (0x00000000), mLocation=KEY_LOCATION_STANDARD, mModifiers=NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatching keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatched keydown event, dispatched=true, defaultPrevented=false
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), not dispatching keypress event because the key was already handled by IME, defaultPrevented=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYUP, virtual keycode=VK_4, repeat count=1, scancode=0x05, extended key=false, context code=false, previous key state=true, transition state=true, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0xE0040804, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AEB9C, mKeyNameIndex=USE_STRING, mCodeNameIndex=Digit4, mModKeyState={ NumLock }, mVirtualKeyCode=VK_4, mOriginalVirtualKeyCode=VK_4, mCommittedCharsAndModifiers={ '4' (0x0034) [none] }, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x0005, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=true, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), initializing keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyUp, mKeyNameIndex=USE_STRING, mKeyValue="4", mCodeNameIndex=Digit4, mKeyCode=VK_4, mLocation=KEY_LOCATION_STANDARD, mModifiers=NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), dispatching keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), dispatched keyup event, dispatched=true, consumed=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/nsIMM32HandlerWidgets OnKeyDownEvent, hWnd=001b0428, wParam=000000e5, lParam=00060001
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYDOWN, virtual keycode=VK_PROCESSKEY, repeat count=1, scancode=0x06, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), succeeded to retrieve next char message, aCharMsg={ message=WM_CHAR, character code='5' (0x0035), repeat count=1, scancode=0x06, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitWithKeyChar(), removed char message, { message=WM_CHAR, character code='5' (0x0035), repeat count=1, scancode=0x06, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), there are no char messages
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0xE0040804, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0xD025308, mKeyNameIndex=USE_STRING, mCodeNameIndex=Digit5, mModKeyState={ NumLock }, mVirtualKeyCode=VK_PROCESSKEY, mOriginalVirtualKeyCode=VK_PROCESSKEY, mCommittedCharsAndModifiers={ '5' (0x0035) [NumLock] }, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x0006, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=true, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), initializing keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyDown, mKeyNameIndex=USE_STRING, mKeyValue="5", mCodeNameIndex=Digit5, mKeyCode=Invalid DOM keyCode (0x00000000), mLocation=KEY_LOCATION_STANDARD, mModifiers=NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatching keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatched keydown event, dispatched=true, defaultPrevented=false
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), not dispatching keypress event because the key was already handled by IME, defaultPrevented=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYUP, virtual keycode=VK_5, repeat count=1, scancode=0x06, extended key=false, context code=false, previous key state=true, transition state=true, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0xE0040804, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AEB94, mKeyNameIndex=USE_STRING, mCodeNameIndex=Digit5, mModKeyState={ NumLock }, mVirtualKeyCode=VK_5, mOriginalVirtualKeyCode=VK_5, mCommittedCharsAndModifiers={ '5' (0x0035) [none] }, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x0006, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=true, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), initializing keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyUp, mKeyNameIndex=USE_STRING, mKeyValue="5", mCodeNameIndex=Digit5, mKeyCode=VK_5, mLocation=KEY_LOCATION_STANDARD, mModifiers=NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), dispatching keyup event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyUpMessage(), dispatched keyup event, dispatched=true, consumed=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/nsIMM32HandlerWidgets OnKeyDownEvent, hWnd=001b0428, wParam=000000e5, lParam=00070001
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYDOWN, virtual keycode=VK_PROCESSKEY, repeat count=1, scancode=0x07, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), succeeded to retrieve next char message, aCharMsg={ message=WM_CHAR, character code='6' (0x0036), repeat count=1, scancode=0x07, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitWithKeyChar(), removed char message, { message=WM_CHAR, character code='6' (0x0036), repeat count=1, scancode=0x07, extended key=false, context code=false, previous key state=false, transition state=false, hwnd=0x1b0428
[Main Thread]: V/NativeKeyWidgets 12ed68   NativeKey::GetFollowingCharMessage(), there are no char messages
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0xE0040804, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0xD0257C8, mKeyNameIndex=USE_STRING, mCodeNameIndex=Digit6, mModKeyState={ NumLock }, mVirtualKeyCode=VK_PROCESSKEY, mOriginalVirtualKeyCode=VK_PROCESSKEY, mCommittedCharsAndModifiers={ '6' (0x0036) [NumLock] }, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x0007, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=true, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), initializing keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::InitKeyEvent(), initialized, aKeyEvent={ mMessage=eKeyDown, mKeyNameIndex=USE_STRING, mKeyValue="6", mCodeNameIndex=Digit6, mKeyCode=Invalid DOM keyCode (0x00000000), mLocation=KEY_LOCATION_STANDARD, mModifiers=NumLock, DefaultPrevented()=false }
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatching keydown event...
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), dispatched keydown event, dispatched=true, defaultPrevented=false
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::HandleKeyDownMessage(), not dispatching keypress event because the key was already handled by IME, defaultPrevented=false
[Main Thread]: D/NativeKeyWidgets 12ed68   NativeKey::~NativeKey(), destroyed
[Main Thread]: I/NativeKeyWidgets 12ed68 NativeKey::NativeKey(aWidget=0x11771000 { GetWindowHandle()=0x1b0428 }, aMessage={ message=WM_KEYUP, virtual keycode=VK_6, repeat count=1, scancode=0x07, extended key=false, context code=false, previous key state=true, transition state=true, hwnd=0x1b0428, aModKeyState={ NumLock }), sLatestInstance=0x0
[Main Thread]: I/NativeKeyWidgets 12ed68   NativeKey::NativeKey(), mKeyboardLayout=0xE0040804, mFocusedWndBeforeDispatch=0x1b0428, mDOMKeyCode=0x33AEBAC, mKeyNameIndex=USE_STRING, mCodeNameIndex=Digit6, mModKeyState={ NumLock }, mVirtualKeyCode=VK_6, mOriginalVirtualKeyCode=VK_6, mCommittedCharsAndModifiers={ '6' (0x0036) [none] }, mInputtingStringAndModifiers={}, mShiftedString={}, mUnshiftedString={}, mShiftedLatinChar=NULL (0x0000), mUnshiftedLatinChar=NULL (0x0000), mScanCode=0x0007, mIsExtended=false, mIsDeadKey=false, mIsPrintableKey=true, mCharMessageHasGone=false, mIsOverridingKeyboardLayout=false
[Main Thread]: D/NativeKeyWidgets 12ed68   Native
Wow, you should attach such big text with a file :-)

Anyway, thank you very much!
Okay, that's a bug of IME... Even if the IME doesn't handle the keydown event, it sends VK_PROCESS to us, sigh.
Assignee: nobody → masayuki
Status: NEW → ASSIGNED
(In reply to Masayuki Nakano [:masayuki] from comment #15)
> Could you test with this build?
> https://archive.mozilla.org/pub/firefox/try-builds/masayuki@d-toybox.com-
> 7d378660ae8993d735a393b1528ac22047e47449/try-win32/firefox-52.0.3.en-US.
> win32.zip

Hello Masayuki,

I confirm that this build is working correctly with Smart ABC input method on WinXP 32 bit.

Thanks very much for your time. Hope to see the release very soon!

Best,
Flags: needinfo?(geraldx)
(In reply to Masayuki Nakano [:masayuki] from comment #15)
> Could you test with this build?
> https://archive.mozilla.org/pub/firefox/try-builds/masayuki@d-toybox.com-
> 7d378660ae8993d735a393b1528ac22047e47449/try-win32/firefox-52.0.3.en-US.
> win32.zip

it works for me. Thanks!
Flags: needinfo?(yxu)
Comment on attachment 8856830 [details]
Bug 1347835 NativeKey should dispatch keypress events even if WM_KEYDOWN is processed by IME but followed by printable WM_(SYS)CHAR messages

https://reviewboard.mozilla.org/r/128756/#review131714
Attachment #8856830 - Flags: review?(m_kato) → review+
Pushed by masayuki@d-toybox.com:
https://hg.mozilla.org/integration/autoland/rev/6a5e9ccad294
NativeKey should dispatch keypress events even if WM_KEYDOWN is processed by IME but followed by printable WM_(SYS)CHAR messages r=m_kato
https://hg.mozilla.org/mozilla-central/rev/6a5e9ccad294
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Comment on attachment 8856830 [details]
Bug 1347835 NativeKey should dispatch keypress events even if WM_KEYDOWN is processed by IME but followed by printable WM_(SYS)CHAR messages

Approval Request Comment
[Feature/Bug causing the regression]:
Probably regression of bug 1300003.

[User impact if declined]:
Chinese people cannot input ASCII numeric and punctuation when Chinese IME is active keyboard layout.

[Is this code covered by automated tests?]:
Partially, yes.

[Has the fix been verified in Nightly?]:
Yes.

[Needs manual test from QE? If yes, steps to reproduce]:
No.

[List of other uplifts needed for the feature/fix]:
No.

[Is the change risky?]:
No.

[Why is the change risky/not risky?]:
The change is affects only when IME marks keydown message as "handled by IME".

This isn't used if active IME is for TSF. It must be that only a few users still use legacy IME (non-TSF IME).

Additionally, it becomes not to ignore following WM_CHAR messages as 51. (51 and earlier, WM_CHAR hasn't been removed from the message queue when this is checked.  So, following WM_CHAR was handled later as orphan message.)

[String changes made/needed]:
No.

[Approval Request Comment]
If this is not a sec:{high,crit} bug, please state case for ESR consideration:
This regression is serious especially for WinXP users because ESR52 is the last version to support WinXP and we don't support TSF mode on WinXP.

User impact if declined:
Chinese users (especially still using WinXP) cannot type ASCII numeric characters and punctuation characters when they select Chinese IME as active keyboard layout (Note that only installing Chinese IME to keyboard layout is the default setting of Windows).

Fix Landed on Version:
55

Risk to taking this patch (and alternatives if risky): 
Not risky. This patch touches only legacy IME behavior case. See above for the detail.

String or UUID changes made by this patch: 
No.
Attachment #8856830 - Flags: approval-mozilla-esr52?
Attachment #8856830 - Flags: approval-mozilla-aurora?
Comment on attachment 8856830 [details]
Bug 1347835 NativeKey should dispatch keypress events even if WM_KEYDOWN is processed by IME but followed by printable WM_(SYS)CHAR messages

Fix an input method issue. Aurora54+.
Attachment #8856830 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Comment on attachment 8856830 [details]
Bug 1347835 NativeKey should dispatch keypress events even if WM_KEYDOWN is processed by IME but followed by printable WM_(SYS)CHAR messages

I was told that China is among the top 5 countries using ESR releases. IME related fixes tend to be a bit unstable, but it seems this is a good candidate to take in ESR52.2. 

Hi Masayuki, David, do we have automated tests to ensure this fix doesn't cause any regressions? Can we ask for some manual QA for this? I would like us to beef up our IME testing. Thoughts?
Flags: needinfo?(masayuki)
Flags: needinfo?(dbolter)
Attachment #8856830 - Flags: approval-mozilla-esr52? → approval-mozilla-esr52+
(In reply to Ritu Kothari (:ritu) from comment #25)
> Hi Masayuki, David, do we have automated tests to ensure this fix doesn't
> cause any regressions?

Unfortunately, no. Our automated tests are testing usual keyboard input result (widget/test/test_keycodes.xul). However, it tests not all keyboard layout's result in the world.

Additionally, this is very odd case. IME consumes keydown message but it generates char message as usual character input instead of using composition messages. (IME should NOT consume the keydown message in this case.)

Fortunately, this patch changes the behavior (backouts the regression) only when the keydown message is consumed by IME but it detects usual character input. Therefore, this patch must be safe.

> Can we ask for some manual QA for this? I would like
> us to beef up our IME testing. Thoughts?

I think that testing if it's fixed actually is easy. However, checking if there are some regressions is impossible since we often meet odd behavior keyboard layouts and IMEs.
Flags: needinfo?(masayuki)
Looks like Masayuki covered this one. Thanks for the ping.
Flags: needinfo?(dbolter)
Hello all.

Thanks again for trying to fix this problem.

I just don't know why it takes so long to merge the fix to the release. It has been more than 3 months now.

Kind regards,

G
You need to log in before you can comment on or make changes to this bug.