Firefox, as of version 67, now implements Chromium's "minimum scale size" model for sizing the fixed viewport. That is to say:
- It computes a "minimum scale" as the largest of the "intrinsic minimum" (the scale where the page content fits the screen *), any
minimum-scale from the meta viewport tag, and 0.25.
- It computes a "minimum scale size" as the size of the visual viewport when zoomed out to the minimum scale, and sizes the "fixed viewport" to that.
- The "fixed viewport" thusly sized determines the attachment of
position: fixed elements, the extents to which you can scroll if the page is overflow: hidden, and the scroll port that governs window.scrollX/Y movements.
These changes have been landing incrementally since Firefox 65, but it should all be in place as of Firefox 67 (which is in beta as of the time of this writing).
(*) There is a remaining known inconsistency with Chromium regarding the "intrinsic minimum" scale: Firefox computes it as the larger of the scale where the content height fits the visual viewport height, and the scale where the content width fits the visual viewport width. Chromium seems to consider the width only. This is tracked in bug 1508177 and we plan to align with the Chromium behaviour here too.
Firefox, as of version 67, now implements Chromium's "minimum scale size" model for sizing the fixed viewport. That is to say:
minimum-scalefrom the meta viewport tag, and 0.25.position: fixedelements, the extents to which you can scroll if the page isoverflow: hidden, and the scroll port that governswindow.scrollX/Ymovements.These changes have been landing incrementally since Firefox 65, but it should all be in place as of Firefox 67 (which is in beta as of the time of this writing).
(*) There is a remaining known inconsistency with Chromium regarding the "intrinsic minimum" scale: Firefox computes it as the larger of the scale where the content height fits the visual viewport height, and the scale where the content width fits the visual viewport width. Chromium seems to consider the width only. This is tracked in bug 1508177 and we plan to align with the Chromium behaviour here too.