diff options
author | Moonchild <mcwerewolf@gmail.com> | 2018-04-25 01:01:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-25 01:01:08 +0200 |
commit | a203f449bbc01f97564b7c5e2272b06a9569d7b4 (patch) | |
tree | 7193ae9ea7a77fcbd2c73ce0a9622b9fa836a013 /layout/generic/nsFlexContainerFrame.h | |
parent | acd4eee44eb04fe01b0063818b492390f463ccec (diff) | |
parent | eae8d21428acdb3fb842df091ded0eb276bcaaaa (diff) | |
download | UXP-a203f449bbc01f97564b7c5e2272b06a9569d7b4.tar UXP-a203f449bbc01f97564b7c5e2272b06a9569d7b4.tar.gz UXP-a203f449bbc01f97564b7c5e2272b06a9569d7b4.tar.lz UXP-a203f449bbc01f97564b7c5e2272b06a9569d7b4.tar.xz UXP-a203f449bbc01f97564b7c5e2272b06a9569d7b4.zip |
Merge pull request #262 from janekptacijarabaci/js_dom_overflow_1
moebius#138: Optimize operations on root of deeply-nested frame tree
Diffstat (limited to 'layout/generic/nsFlexContainerFrame.h')
-rw-r--r-- | layout/generic/nsFlexContainerFrame.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/layout/generic/nsFlexContainerFrame.h b/layout/generic/nsFlexContainerFrame.h index 22b420d85..459ae8e20 100644 --- a/layout/generic/nsFlexContainerFrame.h +++ b/layout/generic/nsFlexContainerFrame.h @@ -56,6 +56,7 @@ public: class FlexLine; class FlexboxAxisTracker; struct StrutInfo; + class CachedMeasuringReflowResult; // nsIFrame overrides void Init(nsIContent* aContent, @@ -66,6 +67,8 @@ public: const nsRect& aDirtyRect, const nsDisplayListSet& aLists) override; + void MarkIntrinsicISizesDirty() override; + virtual void Reflow(nsPresContext* aPresContext, ReflowOutput& aDesiredSize, const ReflowInput& aReflowInput, @@ -195,6 +198,18 @@ protected: const FlexboxAxisTracker& aAxisTracker); /** + * This method gets a cached measuring reflow for a flex item, or does it and + * caches it. + * + * This avoids exponential reflows, see the comment on + * CachedMeasuringReflowResult. + */ + const CachedMeasuringReflowResult& MeasureAscentAndHeightForFlexItem( + FlexItem& aItem, + nsPresContext* aPresContext, + ReflowInput& aChildReflowInput); + + /** * This method performs a "measuring" reflow to get the content height of * aFlexItem.Frame() (treating it as if it had auto-height), & returns the * resulting height. |