newwin: fix + standardize newwin
purpose
not a meta (that's #42450), this issue is to look at the code used in newwin (startup, new window, new identity, and upcoming functions like resize-to-LB) and to make it
- consistent (currently we have new window causes differences vs startup vs new identity)
- reusable? code consolidation and simplicity
- properly handle subpixels and wrong sizes
why
- to eliminate friction for users
- wasted real estate (e.g. 99px vertical matte)
- tiny mattes (e.g. 1px or 10px) = looks like a rendering bug and not a feature
- gradient eyesore (sorry! not sorry! but people hate seeing mattes)
- to tighten fingerprinting
- with LBing: the user's inner can slot into the wrong expected bucket
- w/o LBing: the correct rounded size isn't used = I think you understand the implications of this
- MOAR urgency
- we are exposing a UI for disabling LBing (#41916 (closed)) = really bad entropy for some users
A lot of patches/ideas and effort is being spent on helping users with LB mattes, but we should at least reduce the occurrence of them and treat non-user causes not just the symptom