In certain case, cursor is not hidden correctly when fission is enabled
Categories
(Core :: Layout, defect, P2)
Tracking
()
People
(Reporter: xidorn, Assigned: tnikkel)
References
(Regression)
Details
(Keywords: regression)
Attachments
(4 files)
I observed this on https://ani.gamer.com.tw/ which is a video streaming service only available on Taiwan.
When I watch videos in fullscreen, the cursor would not be correctly hidden. This is fixed when opening in a window with fission disabled.
I inspected the code, and found that the website correctly sets cursor: none
on the fullscreen element, which is an ancestor of the <video>
, but it doesn't work. If I manually set cursor: none
on the <video>
element, it's correctly hidden.
I failed to construct a minimal testcase from it, so I have no idea what's happening here...
Comment 1•5 years ago
|
||
May be one of the pre-existing hit-testing bugs with fission (see bug 1519412 and co.)
Comment 2•5 years ago
|
||
Xidorn, if you have time to generate a simple test case, it would be quite helpful, I couldn't play videos on the site from Japan as you are saying unfortunately. Thanks!
Comment 3•5 years ago
|
||
Xidorn, can you please save a copy of the video player page's HTML (Web Page Complete) and share it on this bug? This will help the Fission team see the code until we can get VPN access into Taiwan.
This bug should only happen in Fission if the video player page is using an OOP iframe. Perhaps the videos on this page are embedded from another site?
I could reproduce this issue, but not 100% though.
The video isn't embedded from another site, but there are some ad iframe.
I tried to open Inspector to check whether cursor: none
is set correctly , but the cursor is correctly hidden after I open the Inspector.
Reporter | ||
Comment 5•5 years ago
|
||
In my case, switching window back and forth would hide the cursor, but if I move it a bit then it keeps being there again even though I can see the style change from inspector (in a different monitor).
Comment 6•5 years ago
|
||
So the video is a position:absolute element or some such? I mean it's out-of-flow thingie? Then it's possible that it's another variant of bug 1676466.
Reporter | ||
Comment 7•5 years ago
•
|
||
Okay I have a reproducible testcase.
Comment 4 inspired me, so I had another attempt. It seems that there are three <iframe>
s on the page, and if I remove the one on the bottom (for Facebook comments), then the cursor would be correctly hidden.
So I add an iframe into the testcase, and it works!
Steps to reproduce:
- open the page
- click fullscreen
- move cursor in the page
Expected behavior (when fission is disabled):
the cursor should hide and show every two seconds
Actual behavior (when fission is enabled):
the cursor sometimes doesn't change, most of time keep being there
Thanks for the testcase!
And interesting, I got the same result with Inspector as comment #4.
- If I open inspector on the same window and watch the element that adds
cursor: none
, I could not reproduce the issue, cursor hide and show correctly. - But if I open inspector on a separate window (in a different monitor). , then the issue happens.
I will take a look.
Updated•5 years ago
|
Updated•5 years ago
|
The cursor isn't updated correctly because the synthesized mouse event for cursor updating is dispatched to the OOP iframe here instead.
(In reply to Edgar Chen [:edgar] from comment #10)
The cursor isn't updated correctly because the synthesized mouse event for cursor updating is dispatched to the OOP iframe here instead.
It is because the FindViewContaining
returns OOP iframe's view here, :tnikkel, :botond, is this something expected? In the testcase page, FindViewContaining
returns iframe's view even if the mouse location isn't over the iframe.
Assignee | ||
Comment 12•5 years ago
|
||
That seems wrong, I'll look into it.
Updated•5 years ago
|
Comment 13•5 years ago
|
||
Assigning to Timothy based on comment 12. Thanks Timothy for looking into this!
Comment 14•5 years ago
|
||
This isn't critical enough to block M6c - pushing this out to M7 for Fission Beta.
Updated•4 years ago
|
Assignee | ||
Comment 15•4 years ago
|
||
The problem is that we incorrectly think we are crossingTheZoomBoundary so we skip the bounds check when moving from the root view of the root content document to a child view. Easy enough to fix. Need to write a test, maybe something from test_hover.html but in an oopif (necessary otherwise we dispatch the event to the correct process even if we find the wrong view).
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 16•4 years ago
|
||
In the most common case the first call to FindViewContaining has aRelativeToView = aView = the root view of the root content document, and we start in visual coords. Then we convert to layout coords and call FindViewContaining recusively with aRelativeToView = the root view again, aView = a child of the root view and working in layout coords. And we still satisfy the conditions to set crossingZoomBoundary to true, which is incorrect because we already crossed. We need to check that we are also in visual coords.
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Comment 17•4 years ago
|
||
FWIW, possible test case idea: it's noticeable on pages like hg pushlog that have hover state for table rows.
Updated•4 years ago
|
Updated•4 years ago
|
Comment 18•4 years ago
|
||
Timothy, are you able to write a test for it and close the work for this issue?
Assignee | ||
Comment 19•4 years ago
|
||
I will be able to at some point, but I have a lot of MR1 work that needs to be done.
Comment 20•4 years ago
|
||
There's a r+ patch which didn't land and no activity in this bug for 2 weeks.
:tnikkel, could you have a look please?
For more information, please visit auto_nag documentation.
Assignee | ||
Comment 21•4 years ago
|
||
Patch needs a test. Busy with mr1 work, can't get to it yet.
Comment 22•4 years ago
|
||
(In reply to Timothy Nikkel (:tnikkel) from comment #21)
Patch needs a test. Busy with mr1 work, can't get to it yet.
:tnikkel, do you think you will be able to write the test and land this patch by mid-June?
The Fission team is currently tracking this bug as a blocker for our Fission M7a milestone to launch a big Fission Beta experiment in 91 Beta (end of June). If not, I will need to find another engineer so this bug doesn't delay our M7a experiment.
Updated•4 years ago
|
Updated•4 years ago
|
Comment 24•4 years ago
|
||
Reminder that the fission beta experiment will start soon, and 90 is now on beta.
Comment 25•4 years ago
|
||
Timothy, since this bug is just blocked waiting for a new test, can we land your fix now (for Fission Milestone M7a) with a follow-up bug for the test (in Fission Milestone M8)?
Comment 26•4 years ago
|
||
Tim, re-posting the NI as we didn't see this closed out, or the test only bug created. Thanks
Updated•4 years ago
|
Assignee | ||
Comment 27•4 years ago
|
||
Comment 28•4 years ago
|
||
Comment 29•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/6c675319da0d
https://hg.mozilla.org/mozilla-central/rev/912f065c513f
Reporter | ||
Comment 30•4 years ago
|
||
I can confirm that this has been fixed on the website I originally found this issue.
Assignee | ||
Updated•4 years ago
|
Description
•