The main change here is to have nsCSSFrameConstructor able to construct
a scrollframe for nsFieldSetFrame's inner frame.
To make this work properly (as much like normal scrolled elements, and
to be consistent with Chrome), we need another major change, which is to move
the padding from the nsFieldSetFrame to its inner frame. We do this by copying
the padding to the inner frame and ignoring the padding on the outer frame.
To get this right for percentage padding and intrinsic widths is a little
tricky. For that, we need nsLayoutUtils::IntrinsicForContainer to be able to
ignore the padding on a frame so we don't add it twice.
Overriding nsFieldSetFrame::GetScrollTargetFrame makes setting scrollTop/
scrollLeft on a <fieldset> work as expected.
* * *
Bug 261037 - A fieldset overflow:auto reftest.
--HG--
extra : rebase_source : d737eebdc25b3b748a84de676d5e8e066505e00b
The main change here is to have nsCSSFrameConstructor able to construct
a scrollframe for nsFieldSetFrame's inner frame.
To make this work properly (as much like normal scrolled elements, and
to be consistent with Chrome), we need another major change, which is to move
the padding from the nsFieldSetFrame to its inner frame. We do this by copying
the padding to the inner frame and ignoring the padding on the outer frame.
To get this right for percentage padding and intrinsic widths is a little
tricky. For that, we need nsLayoutUtils::IntrinsicForContainer to be able to
ignore the padding on a frame so we don't add it twice.
Overriding nsFieldSetFrame::GetScrollTargetFrame makes setting scrollTop/
scrollLeft on a <fieldset> work as expected.
* * *
Bug 261037 - A fieldset overflow:auto reftest.
--HG--
extra : rebase_source : 6ca585f685965d3a538bde64ad4057c5fd7b538f