Skip to content

BB 43205: Fix newwin rounding.

Merge Info

Issues

Resolves

Related

  • tor-browser#xxxxx
  • mullvad-browser#xxxxx
  • tor-browser-build#xxxxx

Merging

Target Branches

  • tor-browser - !fixups to tor-browser-specific commits, new features, security backports
  • base-browser and mullvad-browser - !fixups to base-browser-specific commits, new features to be shared with mullvad-browser, and security backports
    • ⚠️ IMPORTANT: Please list the base-browser-specific commits which need to be cherry-picked to the base-browser and mullvad-browser branches here

Target Channels

  • Alpha: esr128-14.5
  • Stable: esr128-14.0
  • Legacy: esr115-13.5

Backporting

Timeline

  • No Backport (preferred): patchset for the next major stable
  • Immediate: patchset needed as soon as possible (fixes CVEs, 0-days, etc)
  • Next Minor Stable Release: patchset that needs to be verified in nightly before backport
  • Eventually: patchset that needs to be verified in alpha before backport

(Optional) Justification

  • Security update: patchset contains a security fix (be sure to select the correct item in Timeline)
  • Censorship event: patchset enables censorship circumvention
  • Critical bug-fix: patchset fixes a bug in core-functionality
  • Consistency: patchset which would make development easier if it were in both the alpha and release branches; developer tools, build system changes, etc
  • Sponsor required: patchset required for sponsor
  • Localization: typos and other localization changes that should be also in the release branch
  • Other: fixes an annoying UX (LB's non-optimal use of screen real estate)

Issue Tracking

Review

Request Reviewer

  • Request review from an applications developer depending on modified system:
    • NOTE: if the MR modifies multiple areas, please /cc all the relevant reviewers (since Gitlab only allows 1 reviewer)
    • accessibility : henry
    • android : clairehurst, dan
    • build system : boklm
    • extensions : ma1
    • firefox internals (XUL/JS/XPCOM) : jwilde, ma1
    • fonts : pierov
    • frontend (implementation) : henry
    • frontend (review) : donuts, morgan
    • localization : henry, pierov
    • macOS : clairehurst, dan
    • nightly builds : boklm
    • rebases/release-prep : dan, ma1, pierov, morgan
    • security : jwilde, ma1
    • signing : boklm, morgan
    • updater : pierov
    • windows : jwilde, morgan
    • misc/other : pierov, morgan

Change Description

Some platform-specific bugs are problematic for getting the correct rounded size of a window.

Letterboxing makes them non-fingerprintable, but usually we are 1px off, so we have 99.5px/49.5px margins rather than going to the correct next LB bucket, which is very annoying.

On Windows, outer and inner sizes don't match. In some cases, the offset is rounded too early, hence the 1px difference.

On X11, something very strange happens. I couldn't locate where this happens on code (my current hypothesis is that this happens somewhere on the X11/xwayland server 🙈), so it's an empiric patch.

I don't know what happens on macOS, but hopefully the Windows patch is helpful also for macOS (or, even better, hopefully there isn't any problem there).

How Tested

Hacked an existing Windows build to use the patched RFPHelper.sys.mjs. Tested in a system with 1.25 system scaling, and it fixed the existing problem.

Tested in a similar way in a Fedora+KDE VM, also with 1.25 scaling.

Edited by Pier Angelo Vendrame

Merge request reports

Loading