Mouse cursor not update properly in Fission for some cases
Categories
(Core :: DOM: UI Events & Focus Handling, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox-esr78 | --- | fixed |
firefox78 | --- | wontfix |
firefox79 | --- | verified |
People
(Reporter: edgar, Assigned: edgar)
References
Details
Attachments
(5 files, 1 obsolete file)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
RyanVM
:
approval-mozilla-esr78+
|
Details | Review |
47 bytes,
text/x-phabricator-request
|
RyanVM
:
approval-mozilla-esr78+
|
Details | Review |
47 bytes,
text/x-phabricator-request
|
Details | Review |
Like, https://searchfox.org/mozilla-central/rev/7908ce29657cfd623993046bd8e38664e1c0b28e/dom/events/EventStateManager.cpp#3882, it just checks remote target from parent process point of view, but we should also take into account if it is a fission remote target in content process.
And then we might also need to ensure that there is at most one BrowserParent whose TabSetsCursor
is true
at any time, https://searchfox.org/mozilla-central/rev/7908ce29657cfd623993046bd8e38664e1c0b28e/dom/ipc/BrowserParent.h#966-968.
Updated•5 years ago
|
Comment 1•5 years ago
|
||
Henri, will this bug be fixed by your focus targeting changes (bug 1617788)?
Comment 2•5 years ago
|
||
(In reply to Chris Peterson [:cpeterson] from comment #1)
Henri, will this bug be fixed by your focus targeting changes (bug 1617788)?
Most likely this bug won't be affected by that one.
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 3•5 years ago
•
|
||
Steps to reproduce
- Load https://codepen.io/edgarchen-the-decoder/pen/ZEQWNqx.
- Mouse moves to green area.
- Reload the page by keyboard shortcut (for example, Fn+F5 on MAC).
- Wait page loaded.
Expected results
Mouse cursor update correct while moving out green area.
Actual results
The mouse cursor is stuck with the hand cursor when moving out the green area.
(The cursor get back to normal after hovering over the HTML/CSS/JS top panes)
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 4•5 years ago
|
||
And Bug 1606707 is another case.
Assignee | ||
Comment 5•5 years ago
|
||
Assignee | ||
Comment 6•5 years ago
|
||
And add IsTopLevelRemoteTarget for the original usage.
Assignee | ||
Comment 7•5 years ago
|
||
Assignee | ||
Comment 8•5 years ago
|
||
I also found some bug of mouseenter/mouseleave on nested iframe cases, for example, a.com contains an iframe b.com that also contains an iframe c.com,
- c.com could possibly know nothing about mouse exit in some cases.
- b.com could possibly know nothing about mouse enter in some cases.
Assignee | ||
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 9•5 years ago
|
||
Content process could also contain a remote target after fission, we need to do
same check in content process, like what we do in parent process for e10s.
Depends on D79441
Assignee | ||
Comment 10•5 years ago
|
||
Content process won't try to send IPC to parent process to update cursor if the
cursor isn't changed, and assume parent process would update cursor properly as
soon as the cursor re-enter to a remote target.
But BrowserParent cached the cursor information for a remote target only when the
remote target is allowed to update the cursor. It could possible that parent use
a stale cursor for a remote target and stuck in that state untill content
process tries to update cursor again.
Assignee | ||
Comment 11•5 years ago
|
||
Assignee | ||
Comment 12•5 years ago
|
||
regardless of what the previous remote target is.
Assignee | ||
Comment 13•5 years ago
|
||
Assignee | ||
Comment 14•5 years ago
|
||
Comment 15•5 years ago
|
||
Comment 16•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/7b437c79f0bf
https://hg.mozilla.org/mozilla-central/rev/305f34561268
https://hg.mozilla.org/mozilla-central/rev/52f5b4638e3d
https://hg.mozilla.org/mozilla-central/rev/a59cc42cedc4
https://hg.mozilla.org/mozilla-central/rev/aadf9c693336
Updated•5 years ago
|
Updated•5 years ago
|
Comment 18•5 years ago
|
||
From bug 1650657 we may want part of this on esr78.
Comment 19•5 years ago
|
||
Verified this is fixed on latest Nightly 80.0a1 and Nightly 79.0a1 after the fix has landed across platforms (macOS 10.15, Windows 10 64bit and Ubuntu 18.04 64bit).
Comment 20•5 years ago
|
||
Edgar, can you please nominate the relevant patches needed to fix bug 1650657 on ESR78?
Assignee | ||
Comment 21•5 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM] from comment #20)
Edgar, can you please nominate the relevant patches needed to fix bug 1650657 on ESR78?
Sure, I would like to verify ESR78 first before nominating.
Assignee | ||
Comment 22•5 years ago
|
||
Comment on attachment 9157261 [details]
Bug 1635784 - Part 3: Make cached cursor consistent between parent and content process;
ESR Uplift Approval Request
- If this is not a sec:{high,crit} bug, please state case for ESR consideration: This is to fix bug 1650657 which is a regression of bug 1607375.
- User impact if declined: Mouse cursor might get "stuck" under some circumstances, e.g. closing tab via Gesturefy addon then moving the mouse quickly. But could be recovery by moving the mouse out of web content.
- Fix Landed on Version: 79
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): This only affects the mouse cursor updating and has landed and verified on 79, I have also verified locally on 78esr.
- String or UUID changes made by this patch: None
Assignee | ||
Updated•5 years ago
|
Comment 23•5 years ago
|
||
Comment on attachment 9157261 [details]
Bug 1635784 - Part 3: Make cached cursor consistent between parent and content process;
Fixes bug 1650657. Approved for 78.1esr.
Updated•5 years ago
|
Comment 24•5 years ago
|
||
bugherder uplift |
Description
•