For Firefox on Mac OS X, browser.preferences.animateFadeIn is enabled. When switching panels, fade in/out and change the height of the window.

This seems to be the reason why Configuration Mania "Browser" panel height is too small or large on Mac.

I found:

  • browser.preferences.animateFadeIn can be enabled and can work on non-Mac.
  • Attribute animated="true" and internal flag _shouldAnimate=true is set on prefwindow element when the option is enabled.
  • If _shouldAnimate is true and prefpane is changed, the prefpane's flex attribute is removed. So we cannot use flex for prefpane!!
if (aPaneElement.hasAttribute("flex") && this._shouldAnimate &&
  prefpanes.length > 1)
  aPaneElement.removeAttribute("flex");

_selectPane() removes flex attribute so as to calculate size of contents.