summaryrefslogtreecommitdiffstats
path: root/layout/generic/nsFlexContainerFrame.h
diff options
context:
space:
mode:
authorMoonchild <mcwerewolf@gmail.com>2018-04-25 01:01:08 +0200
committerGitHub <noreply@github.com>2018-04-25 01:01:08 +0200
commita203f449bbc01f97564b7c5e2272b06a9569d7b4 (patch)
tree7193ae9ea7a77fcbd2c73ce0a9622b9fa836a013 /layout/generic/nsFlexContainerFrame.h
parentacd4eee44eb04fe01b0063818b492390f463ccec (diff)
parenteae8d21428acdb3fb842df091ded0eb276bcaaaa (diff)
downloadUXP-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.h15
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.