Closed Bug 1656223 Opened 5 years ago Closed 5 years ago

iview.abc.net.au videos zoomed after exiting fullscreen

Categories

(Core :: Panning and Zooming, defect)

80 Branch
defect

Tracking

()

RESOLVED FIXED
81 Branch
Tracking Status
firefox-esr68 --- unaffected
firefox-esr78 --- unaffected
firefox79 --- disabled
firefox80 --- wontfix
firefox81 --- fixed

People

(Reporter: rxazub33, Assigned: kats)

References

(Regressed 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(3 files)

User Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0

Steps to reproduce:

Visit ABC iview (iview.abc.net.au) and play any video, enter fullscreen mode via the arrows at the bottom right, exit fullscreen mode via the same arrows or by hitting escape key.

Actual results:

Video is heavily zoomed in, with only the top left visible in the browser window.

Expected results:

Video should have returned to original size.

Hopefully helpful further info:

Problem occurs after every fullscreen (i.e. is not intermittent).

Have so far only encountered the problem on ABC iview and not on other video sites (YouTube, Netflix, and various embedded players).

First experienced problem in Firefox 80.0b1 (64-bit). Reproduced in 81.0a1 (2020-07-29) (64-bit). Problem does NOT occur in 78.0.2 (64-bit) and 79.0 (64-bit) - both exhibit expected behaviour. All tested with fresh profiles, default settings, no add-ons.

Problem does NOT occur if I uncheck the "use hardware acceleration when available" setting.

GPU is a GeForce RTX 2060 Super. Installed drivers were several months old (445.87), so I installed the current version (451.67), but this had no impact on the issue.

OS is Windows 8.1 Pro 64-bit.

In an attempt to reproduce this issue on another system configuration, I installed Firefox 80.0b1 on a Windows 10 laptop with Intel HD Graphics, but the problem did not occur on that system.

Hi Cletus,

Thanks for reporting this ticket.

I was able to confirm your troubleshooting on a Windows 10 Pro laptop, and I've updated the flags accordingly.

Page tested: https://iview.abc.net.au/show/abc-news-24/video/NS1413V001S00

Not reproducible on:
68.11.0esr (64-bit)
79.0 (64-bit)

Reproducible on:
80.0b4 (64-bit)
81.0a1 (2020-08-05) (64-bit)

I've added a product and component so the corresponding team can investigate this issue.

Regards,
Virginia

Status: UNCONFIRMED → NEW
Component: Untriaged → Audio/Video: Playback
Ever confirmed: true
Product: Firefox → Core

I can reproduce this issue on my Windows10 as well, but wasn't able to reproduce it on MacOS.

Severity: -- → S2
Priority: -- → P3

I can reproduce the issue on Nightly81.0a1 Windows10 with/without Webrender or Disabled HWA.

Regression window:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=81ed5bedd083dc295ce8622f171321959ca36bd0&tochange=6803dda74d3349a45d95bc9ce248b90bd9086488

Regressed by: Bug 1644271

Setting apz.mvm.force-enabled to true reproduces the issue on Firefox79.
And Setting apz.mvm.force-enabled to false fixes the issue on Firefox80.0b6.
However, Setting apz.mvm.force-enabled to false does not fix the issue on Nighty81.0a1.....
Setting both apz.mvm.force-enabled and apz.allow_zooming(default true by Bug 1620055) to false will fix the problem on Nighty81.0a1.

Regressed by: 1644271
Has Regression Range: --- → yes
Blocks: 1658487
Assignee: nobody → kats
Component: Audio/Video: Playback → Panning and Zooming

The component has been changed since the backlog priority was decided, so we're resetting it.
For more information, please visit auto_nag documentation.

Priority: P3 → --

site specific regression related to desktop zoom.

I've tried reproducing this on two different Windows machines (Lenovo arm64 laptop and dell desktop) and haven't been able to. On the desktop I do see after exiting fullscreen the video is momentarily at the fullscreened size but it quickly resizes back to what I would expect. Tried with and without WebRender.

(In reply to Jim Mathies [:jimm] from comment #6)

site specific regression related to desktop zoom.

While it was caused by patches required for desktop zoom, the bug appears to affect 80 as it's not conditional on desktop zoom being enabled. So flipping 80 to fix-optional.

Alice, if you have some time, can you please repro on a build from this try push with MOZ_LOG="apz.mobileviewport:5" in the environment? It should emit a bunch of logging to stderr. If it doesn't show up you may need to set MOZ_LOG_FILE="some_file" to have the output go to a set of files (one per process). Thanks!

Flags: needinfo?(alice0775)

(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #9)

Alice, if you have some time, can you please repro on a build from this try push with MOZ_LOG="apz.mobileviewport:5" in the environment? It should emit a bunch of logging to stderr. If it doesn't show up you may need to set MOZ_LOG_FILE="some_file" to have the output go to a set of files (one per process). Thanks!

The try-build cannot play the video in comment 2 due to an error. (Maybe the same reason as bug 1658490.)

Flags: needinfo?(alice0775)

Hm, I was seeing that problem on the regular aarch64 windows build, and I think it's because those builds don't have the EME stuff for decoding video content. The Be aarch64 build worked on my Lenovo laptop as it includes the EME stuff. I don't know what the equivalent is for the x64 build but I've triggered some more jobs on that try push and will try those builds to see if one of them has EME built in.

Hm, none of those builds worked either.

In that case, can you just try with a regular nightly build? Same steps as in comment 9 - there might still be some clues as to what's going wrong in the logs that are already in the code. Thanks!

Flags: needinfo?(alice0775)

(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #12)

Hm, none of those builds worked either.

In that case, can you just try with a regular nightly build? Same steps as in comment 9 - there might still be some clues as to what's going wrong in the logs that are already in the code. Thanks!

Flags: needinfo?(alice0775)

Thanks! It seems like the visual viewport size isn't getting updated after exiting fullscreen, although I'm not sure why (or even if that's the root of the problem here, but it's plausible). I'll try to figure out a way to get more logging into a build you can use so I can narrow this down.

Ah, I can reproduce it now. The initial window size (before going into fullscreen) has to be rather large for this to reproduce. My window was pretty small and apparently that behaves differently during reflow.

After exiting fullscreen, the first reflow (which goes through SimpleResizeReflow and marks children dirty) happens before the content viewer size is updated. So when that reflow happens, and the MVM is asked to update its display size here, the display size doesn't actually get updated. Eventually the content viewer size is updated, and the subsequent reflow causes the MVM to update its display size to the new value. However, that reflow bounces out of this condition and so never does a reflow on the root scrollframe. Therefore nothing ends up triggering the MVM to update its visual viewport size.

One possible solution here is to ensure the content viewer size is updated before that first reflow, but that seems like a possibly risky change. A more tightly scoped change would be to ensure we refresh the visual viewport size after doing a reflow where we know the MVM's display size changed. This visual viewport size update will be redundant in the cases where the root scrollframe was reflowed, but if it wasn't, it will act as a failsafe to ensure the visual viewport size is correct.

A more tightly scoped change would be to ensure we refresh the visual viewport size after doing a reflow where we know the MVM's display size changed.

Tried this, and it didn't fix the bug. Possibly because the resize event is fired before this reflow. Emilio thinks the content viewer size should be updated before that first reflow so I'll look into that approach.

Following emilio's suggestion I made PrepareForFullscreenChange set the size on the contentviewer instead of the viewmanager, so that the updated size is available for the first reflow. That fixed the problem for me.

Try push to verify tests: https://treeherder.mozilla.org/#/jobs?repo=try&revision=935959699c19c004ad92fd6080fd30fd455a3c04

Instead of getting/setting the size on the view manager on a fullscreen
change, this updates the code to get/set the size on the content viewer, which
internally sets the size on the view manager. Doing this ensures that the
content viewer size is updated prior to the reflow, which is required for
the MobileViewportManager to update its internal notions of size and to update
the visual viewport properly.

Pushed by kgupta@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/0b3e25d09ce8 When exiting fullscreen, ensure the content viewer size is updated before first reflow. r=emilio
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → 81 Branch

Going to mark this as wontfix for 80 since the patch does carry some risk and seems to only manifest in rare conditions.

Alice, can you please verify the nightly builds with the patch fixes the problem for you?

Flags: needinfo?(alice0775)

(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #22)

Going to mark this as wontfix for 80 since the patch does carry some risk and seems to only manifest in rare conditions.

Alice, can you please verify the nightly builds with the patch fixes the problem for you?

I can reproduce the issue on Nightly81.a1(20200815211739) Windows10.
And I verified fix and no longer reproduced the issue on Nightly81.a1(20200816214203) Windows10.

Flags: needinfo?(alice0775)

I also can no longer reproduce it with 81.0a1 20200816214203. Thank you for your work on this issue.

Great, thanks!

See Also: → 1663654
Regressions: 1750416
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: