Closed
Bug 1453629
Opened 6 years ago
Closed 6 years ago
Assertion failure: aCompositionEvent->mMessage != eCompositionStart running dom/base/test/chrome/test_nsITextInputProcessor.xul test
Categories
(Core :: DOM: UI Events & Focus Handling, enhancement, P3)
Tracking
()
RESOLVED
FIXED
mozilla63
Tracking | Status | |
---|---|---|
firefox63 | --- | fixed |
People
(Reporter: jonco, Assigned: masayuki)
Details
Attachments
(2 files)
I get an assertion failure running this test locally with: MOZ_HEADLESS=1 ./mach mochitest -f chrome dom/base/test/chrome/test_nsITextInputProcessor.xul I see TEST-UNEXPECTED-FAIL but the test run is reported as passing.
Reporter | ||
Comment 1•6 years ago
|
||
Test output.
Updated•6 years ago
|
Component: DOM → Event Handling
Updated•6 years ago
|
Priority: -- → P3
Assignee | ||
Comment 2•6 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=166689dfb9574b500374a41316e3f7d4ba1b65b7
Assignee | ||
Comment 3•6 years ago
|
||
Wow, this hits really long standing bug of IME testing path. IMEStateManager::DispatchCompositionEvent() creates TextComposition with native IME context stored by eCompositionStart event. However, when the composition ends, it looks for ending TextComposition instance with result of nsIWidget::GetNativeIMEContext() and the widget is stored by eCompositionChange(AsIs) event. The former is initialized by TextEventDispatcher::InitEvent(). When TextEventDispatcher works with TextInputProcessor, this native IME context is set to pseudo IME context which is raw pointer of TextEventDispatcher and process ID. On the other hand, nsIWidget::GetNativeIMEContext() never returns pseudo IME context. So, we fail to remove TextComposition when we synthesize composition for tests!
Assignee: nobody → masayuki
Status: NEW → ASSIGNED
Assignee | ||
Comment 4•6 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=a4f4b0817a470857d99a47695c52deeb091abbe0
Assignee | ||
Comment 5•6 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=e9db18c144c900a3c78a694b5a27480f807a54bf
Comment hidden (mozreview-request) |
Assignee | ||
Comment 7•6 years ago
|
||
Some points: The patch should be reviewed by smaug, but he's on vacation. So, I request the review to Makoto-san. The idea of IME context is, it depends on platforms how many composition we can have. For example, on Windows, IME can have only one but on Linux, we can have a composition per top level window. An IME context is shared between any widgets which is associated with native IME context. It was implemented in bug 1179632: https://bugzilla.mozilla.org/attachment.cgi?id=8695807&action=diff https://bugzilla.mozilla.org/attachment.cgi?id=8695915&action=diff And even with fixing this bug, I see timeout of the test with headless widget.
Comment 8•6 years ago
|
||
mozreview-review |
Comment on attachment 8992859 [details] Bug 1453629 - nsIWidget::GetNativeIMEContext() should return pseudo IME context if TextInputProcessor has a composition on the widget https://reviewboard.mozilla.org/r/257708/#review264884
Attachment #8992859 -
Flags: review?(m_kato) → review+
Pushed by masayuki@d-toybox.com: https://hg.mozilla.org/integration/autoland/rev/bdf8618dc2c3 nsIWidget::GetNativeIMEContext() should return pseudo IME context if TextInputProcessor has a composition on the widget r=m_kato
Comment 10•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/bdf8618dc2c3
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
status-firefox63:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
Updated•5 years ago
|
Component: Event Handling → User events and focus handling
You need to log in
before you can comment on or make changes to this bug.
Description
•