Closed Bug 1447866 Opened 6 years ago Closed 6 years ago

IME crash on text input with e10s

Categories

(GeckoView :: IME, defect, P1)

51 Branch
All
Android
defect

Tracking

(firefox59 unaffected, firefox60 unaffected, firefox61 fixed)

RESOLVED FIXED
mozilla61
Tracking Status
firefox59 --- unaffected
firefox60 --- unaffected
firefox61 --- fixed

People

(Reporter: esawin, Assigned: masayuki)

References

Details

(Keywords: inputmethod, regression)

Attachments

(1 file, 2 obsolete files)

STR
1. Launch geckoview_example on https://google.com with multiprocess enabled.
2. Input a search query.

Crashes with:

Assertion failure: !aEvent->AsKeyboardEvent() || aEvent->mFlags.mIsSynthesizedForTests || aEvent->AsKeyboardEvent()->AreAllEditCommandsInitialized() (Non-sysnthesized keyboard events should have edit commands for all types before dispatched), at /home/esawin/dev/g/widget/PuppetWidget.cpp:346

That's a regression from https://hg.mozilla.org/mozilla-central/rev/00456fae72f5
Flags: needinfo?(masayuki)
In case that this is not an easy fix, we should disable the key events in the meanwhile to fix the regression.
Attachment #8961214 - Flags: review?(masayuki)
Sorry, this is this correct patch.
Attachment #8961214 - Attachment is obsolete: true
Attachment #8961214 - Flags: review?(masayuki)
Attachment #8961215 - Flags: review?(masayuki)
Ah, really sorry for my regression.

However, perhaps, the right approach to fix this bug is, call WidgetKeyboardEvent.PreventNativeKeyBindings() before dispatching eKeyDown and eKeyUp event. Then, AreAllEditCommandsInitialized() will return true in this assertion and no shortcut keys won't be executed with NativeKeyBindings.
Flags: needinfo?(masayuki)
Assignee: nobody → esawin
Would you be able to write the patch?
I can test and review it or forward it to Jim when he's back from PTO.
Flags: needinfo?(masayuki)
Sure.
Assignee: esawin → masayuki
Status: NEW → ASSIGNED
Flags: needinfo?(masayuki)
Comment on attachment 8961661 [details]
Bug 1447866 - GeckoEditableSupport::SendIMEDummyKeyEvent() should set native key bindings to none before dispatching keyboard events which are marked as "processed by IME"

https://reviewboard.mozilla.org/r/230530/#review236120

It fixes the issue, thanks!

::: commit-message-9b69a:12
(Diff revision 1)
> +PuppetWidget checks if every keyboard event has native key binding information.
> +However, the native key binding information of dummy keyboard events marked as
> +"processed by IME" on Android are never initialized before sending PuppetWidget.
> +Therefore, we hit MOZ_ASSERT in PuppetWidget.
> +
> +This patch makes GeckoEditableSuppor::SendIMEDummyKeyEvent() set native key

missing t
Attachment #8961661 - Flags: review?(esawin) → review+
Attachment #8961215 - Attachment is obsolete: true
Attachment #8961215 - Flags: review?(masayuki)
Pushed by masayuki@d-toybox.com:
https://hg.mozilla.org/integration/autoland/rev/d83bf99d438d
GeckoEditableSupport::SendIMEDummyKeyEvent() should set native key bindings to none before dispatching keyboard events which are marked as "processed by IME" r=esawin
https://hg.mozilla.org/mozilla-central/rev/d83bf99d438d
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 61
Product: Firefox for Android → GeckoView
Target Milestone: Firefox 61 → mozilla61

Moving some IME bugs to the new GeckoView::IME component.

Component: General → IME
Regressions: 1778277
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: