Note (2021-08-19): Chrome has annoyed me into making a follow-up article, which contains a slightly more up-to-date information.
As if Microsoft Edge screwing me over in 2020 wasn’t enough, as soon as Microsoft fixed their bugs, Google decided to introduce their own. In second-ish half of Januray, Chrome and Edge both received updates that broke pretty much every single extension for correcting video aspect ratios on ultrawide (and super-ultrawide) monitors.
This was accompanied with an uptick of one-star reviews on Chrome Web Store, which happened on most extensions like Ultrawidify — a sign that the problem is not being caused by extensions, but by Chrome.
Side note: while I am singling out Chrome in this post, this issue is present on ALL Chromium-based browsers, such as Edge or Opera.
Firefox is unaffected by this problem.
What’s going on
The bug only appears under certain conditions:
- You’re using Windows
- You’re using a nVidia GPU (may be specific to RTX 20xx and 30xx series)
- You’re viewing a video in fullscreen mode
<video>element is both wider-ish and taller-ish than the monitor.
Item #4 gives us a possible workaround (other than “just use Firefox”) for the problem. Since the issue only appears if we zoom in too much, we can tell the extension to avoid zooming in past a certain point. And that’s exactly what I did.
If you’re using Chrome, the extension will always leave a thin (3-10px) wide black border at the left and right side of the monitor while in full screen. The fix for this problem came out around January 20th. It was designed to only activate in cases where the bug may appear.
Update (2021-04-04): as of Ultrawidify version 5.0.1, it is possible to manually enable or disable this workaround.
I am not affected by this issue. Can I disable this workaround?
Open the extension popup, select “Advanced settings” in the menu at the left side of the popup. At the bottom of advanced settings, there will be the Browser quirk mitigations section:
To disable the workaround, uncheck the limit zoom checkbox.
The video is still being incorrectly stretched for me
This is improbable: it appears that the issue is fixed for both Chrome and Edge. Ensure your browser, GPU drivers, and Windows are up to date. If you’re having this issue, chances are your system is out of date in some way. However, if you’re sure everything is up to date, there are further things that you can do.
First of all, check that ‘limit zoom’ option is checked (in: Extension popup > advanced settings > browser quirk mitigations; see the screenshot above). There’s a slight possibility that I decided to disable the workaround by default after publishing this post but before uploading new version of the addon to the Chrome Web Store.
If that didn’t work — it is possible that Chrome is unable to detect whether you’re using full screen mode or not. Try unchecking the ‘limit zoom only while in fullscreen’ checkbox.
Finally, if the issue still persists, you can also try decreasing the ‘Limit zoom to % of width’ number by a few percent.
If using Edge or Opera, please consider reporting the bug to browser developers
You can do so by pressing alt + shift + i. (Or look for ‘Report an issue’ option in browser’s menu. The option may be nested under ‘help’ option). This should open up a dialog like this:
In the ‘describe what’s happening’ box, enter something along the lines of the following:
If — while in fullscreen mode — CSS property transform: scale(x) causes video to be both taller and wider than the monitor, the video will be stretched to exactly fill the monitor. This is incorrect behaviour.
* If video and monitor are of different aspect ratios, aspect ratio of the video will not be preserved. (Expectation:
transform: scale(x)should preserve aspect ratio if only one factor is provided)
* transform: scale(x) will not scale video to a size that’s strictly bigger than the monitor. (Expectation: it should do so if x is big enough)
This issue only happens when the following are met:
* Full screen and watching a video
* Hardware acceleration: enabled
* nVidia GPU. This issue appears primarily on RTX cards (20xx and 30xx). It likely does not happen on non-RTX cards (this issue does not seem to be present on a GTX 965m)
* Console: closed or in detached window. If console is opened and docked to the side, the problem does not appear.
* transform: scale(x) or transform: scale(x,y) is used to scale the video to a size bigger than the monitor