Closed
Bug 1377672
Opened 7 years ago
Closed 7 years ago
Intermittent toolkit/content/tests/chrome/test_bug360437.xul | Assertion count 1 is greater than expected range 0-0 assertions on Windows (ASSERTION: input context of focused widget should be set from a remote process)
Categories
(Core :: DOM: UI Events & Focus Handling, defect)
Tracking
()
RESOLVED
FIXED
mozilla56
Tracking | Status | |
---|---|---|
firefox-esr52 | --- | unaffected |
firefox54 | --- | unaffected |
firefox55 | --- | unaffected |
firefox56 | --- | fixed |
People
(Reporter: masayuki, Assigned: masayuki)
References
Details
(Keywords: inputmethod, intermittent-failure, regression, Whiteboard: [stockwell fixed:product])
Attachments
(5 files)
(deleted),
text/x-review-board-request
|
m_kato
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
m_kato
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
smaug
:
review+
m_kato
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
m_kato
:
review+
|
Details |
(deleted),
text/x-review-board-request
|
m_kato
:
review+
|
Details |
This is new regression orange and different from bug 1321173. Perhaps, caused by the fix of bug 1375491 and some other fix in https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?changeset=6e0dd1705c75d8aeedc26e7f5c9ea466f92aec96 because this orange appeared high frequently after the bug fix met some of changes in the latter.
The bug 1375491 changes the timing of notifying focus. I guess that it could cause some race between setting IME focus and destroying the window. Anyway, bug 1349255 will make it async. So, this would appear anyway.
I'll investigate this in next Monday.
Assignee | ||
Updated•7 years ago
|
Keywords: intermittent-failure
Assignee | ||
Comment 1•7 years ago
|
||
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 3•7 years ago
|
||
Updated•7 years ago
|
status-firefox54:
--- → unaffected
status-firefox55:
--- → unaffected
status-firefox56:
--- → affected
Assignee | ||
Comment 4•7 years ago
|
||
Assignee | ||
Comment 5•7 years ago
|
||
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 7•7 years ago
|
||
Assignee | ||
Comment 8•7 years ago
|
||
The cause of this bug is, IMEStateManager in the main process doesn't handle delayed notifications and requests to IME properly. For example, IMEStateManager doesn't discard some delayed notifications which came from previously focused remote process. Additionally, IMEStateManager doesn't set the origin of InputContext properly in some cases. So, we need to update IMEStateManager. Especially for bug 1349255.
I'd like smaug to review around process checking and non-IMEStateManager part and kato-san to review IMEStateManager's changes.
# Patches coming soon.
Assignee | ||
Comment 9•7 years ago
|
||
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 15•7 years ago
|
||
mozreview-review |
Comment on attachment 8883584 [details]
Bug 1377672 - part3: IMEStateManager::NotifyIME() should ignore notifications and requests which comes from unexpected process
https://reviewboard.mozilla.org/r/154466/#review159594
::: commit-message-71b7f:1
(Diff revision 1)
> +Bug 1377672 - part3: IMEStateManager::NotifyIME() should ignore notifications nor requests which comes from unexpected process r?smaug, m_kato
I don't understand this sentence "nor"?
Should this be
IMEStateManager::NotifyIME() should not ignore notifications nor requests which comes from unexpected process.
Or should it be
IMEStateManager::NotifyIME() should ignore notifications and requests which comes from unexpected process
or
IMEStateManager::NotifyIME() should ignore notifications, not requests, which comes from unexpected process
Based on the explanation, the second one with 'and'
::: dom/events/IMEStateManager.h:284
(Diff revision 1)
> // sWidget is cache for the root widget of sPresContext. Even afer
> // sPresContext has gone, we need to clean up some IME state on the widget
> // if the widget is available.
> static nsIWidget* sWidget;
> - // sFocusedIMEWidget is, the widget which was sent to "focus" notification
> - // from IMEContentObserver and not yet sent "blur" notification.
> + // sFocusedIMEWidget and sFocusedIMETabParent are, the tab parent sent
> + // "focus" notification to the widget (and not yet send "blur" notification).
Rather weird sentence.
Perhaps
sFocusedIMETabParent is the tab parent, which sent "focus" notification to sFocusedIMEWidget (and didn't yet sent "blur" notification).
::: dom/events/IMEStateManager.cpp:145
(Diff revision 1)
> +IsSameProcess(const TabParent* aTabParent1, const TabParent* aTabParent2)
> +{
> + if (aTabParent1 == aTabParent2) {
> + return true;
> + }
> + if (!aTabParent1 ^ !aTabParent2) {
Why ^
Wouldn't !aTabParent1 != !aTabParent2 work.
Attachment #8883584 -
Flags: review?(bugs) → review+
Assignee | ||
Comment 16•7 years ago
|
||
mozreview-review-reply |
Comment on attachment 8883584 [details]
Bug 1377672 - part3: IMEStateManager::NotifyIME() should ignore notifications and requests which comes from unexpected process
https://reviewboard.mozilla.org/r/154466/#review159594
> I don't understand this sentence "nor"?
>
> Should this be
> IMEStateManager::NotifyIME() should not ignore notifications nor requests which comes from unexpected process.
>
> Or should it be
> IMEStateManager::NotifyIME() should ignore notifications and requests which comes from unexpected process
>
> or
> IMEStateManager::NotifyIME() should ignore notifications, not requests, which comes from unexpected process
>
>
> Based on the explanation, the second one with 'and'
Ah, the second is I tried to say.
> Rather weird sentence.
>
> Perhaps
>
> sFocusedIMETabParent is the tab parent, which sent "focus" notification to sFocusedIMEWidget (and didn't yet sent "blur" notification).
Thanks!
> Why ^
> Wouldn't !aTabParent1 != !aTabParent2 work.
Wow, you're right!
Updated•7 years ago
|
Whiteboard: [stockwell needswork]
Comment hidden (Intermittent Failures Robot) |
Comment 18•7 years ago
|
||
mozreview-review |
Comment on attachment 8883582 [details]
Bug 1377672 - part1: IMEStateManager in the main process should destroy active IME content observer when a tab parent takes focus
https://reviewboard.mozilla.org/r/154462/#review159822
Attachment #8883582 -
Flags: review?(m_kato) → review+
Comment 19•7 years ago
|
||
mozreview-review |
Comment on attachment 8883583 [details]
Bug 1377672 - part2: IMEStateManager::SetIMEState() should set input context with proper origin information
https://reviewboard.mozilla.org/r/154464/#review159836
Attachment #8883583 -
Flags: review?(m_kato) → review+
Comment 20•7 years ago
|
||
mozreview-review |
Comment on attachment 8883585 [details]
Bug 1377672 - part4: ContentCacheInParent::RequestIMEToCommitComposition() should ignore too late requests
https://reviewboard.mozilla.org/r/154468/#review159846
Attachment #8883585 -
Flags: review?(m_kato) → review+
Comment 21•7 years ago
|
||
mozreview-review |
Comment on attachment 8883586 [details]
Bug 1377672 - part5: IMEStateManager::OnChangeFocusInternal() should notify IME of blur when focus is moving from a remote process to another process
https://reviewboard.mozilla.org/r/154470/#review160114
Attachment #8883586 -
Flags: review?(m_kato) → review+
Comment hidden (Intermittent Failures Robot) |
Comment 23•7 years ago
|
||
mozreview-review |
Comment on attachment 8883584 [details]
Bug 1377672 - part3: IMEStateManager::NotifyIME() should ignore notifications and requests which comes from unexpected process
https://reviewboard.mozilla.org/r/154466/#review160116
Attachment #8883584 -
Flags: review?(m_kato) → review+
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Comment 29•7 years ago
|
||
Wow, I realized that I requested the review with older patches. But the difference is only minor fixes. So, I don't request review again. If you have some disagreement about the different, please file a followup bug since this bug causes a lot of oranges which waste the time of a lot of developers.
Comment 30•7 years ago
|
||
We're sorry, Autoland could not rebase your commits for you automatically. Please manually rebase your commits and try again.
hg error in cmd: hg rebase -s 02b18f9cf6f4 -d 52d810352774: rebasing 405647:02b18f9cf6f4 "Bug 1377672 - part1: IMEStateManager in the main process should destroy active IME content observer when a tab parent takes focus r=m_kato"
merging dom/events/IMEStateManager.cpp
rebasing 405648:2f507d297f8e "Bug 1377672 - part2: IMEStateManager::SetIMEState() should set input context with proper origin information r=m_kato"
merging dom/events/IMEStateManager.cpp
merging widget/nsBaseWidget.cpp
warning: conflicts while merging dom/events/IMEStateManager.cpp! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
Assignee | ||
Comment 31•7 years ago
|
||
Wow... The patches were rebased with the latest m-c...
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 37•7 years ago
|
||
Pushed by masayuki@d-toybox.com:
https://hg.mozilla.org/integration/autoland/rev/dde8300a4831
part1: IMEStateManager in the main process should destroy active IME content observer when a tab parent takes focus r=m_kato
https://hg.mozilla.org/integration/autoland/rev/cd648a42778f
part2: IMEStateManager::SetIMEState() should set input context with proper origin information r=m_kato
https://hg.mozilla.org/integration/autoland/rev/14a41922c96a
part3: IMEStateManager::NotifyIME() should ignore notifications and requests which comes from unexpected process r=m_kato,smaug
https://hg.mozilla.org/integration/autoland/rev/feb3d54b7cca
part4: ContentCacheInParent::RequestIMEToCommitComposition() should ignore too late requests r=m_kato
https://hg.mozilla.org/integration/autoland/rev/3bdc87d4e538
part5: IMEStateManager::OnChangeFocusInternal() should notify IME of blur when focus is moving from a remote process to another process r=m_kato
Assignee | ||
Comment 38•7 years ago
|
||
Removing trailing whitespace of unrelated line was landed before this and that caused the rebasing error.
Comment 39•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/dde8300a4831
https://hg.mozilla.org/mozilla-central/rev/cd648a42778f
https://hg.mozilla.org/mozilla-central/rev/14a41922c96a
https://hg.mozilla.org/mozilla-central/rev/feb3d54b7cca
https://hg.mozilla.org/mozilla-central/rev/3bdc87d4e538
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
Comment hidden (Intermittent Failures Robot) |
Updated•7 years ago
|
Whiteboard: [stockwell needswork] → [stockwell fixed:product]
Comment hidden (Intermittent Failures Robot) |
Updated•7 years ago
|
status-firefox-esr52:
--- → unaffected
Updated•6 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
•