Bug 1419924 Part 2: Add a crossStart property to FlexLine Chrome object.
MozReview-Commit-ID: 9xRBo1VVt0S
--- a/dom/flex/FlexLine.cpp
+++ b/dom/flex/FlexLine.cpp
@@ -39,16 +39,18 @@ FlexLine::FlexLine(Flex* aParent,
mGrowthState = FlexLineGrowthState::Growing;
break;
default:
mGrowthState = FlexLineGrowthState::Unchanged;
};
// Convert all the app unit values into css pixels.
+ mCrossStart = nsPresContext::AppUnitsToDoubleCSSPixels(
+ aLine->mCrossStart);
mCrossSize = nsPresContext::AppUnitsToDoubleCSSPixels(
aLine->mCrossSize);
mFirstBaselineOffset = nsPresContext::AppUnitsToDoubleCSSPixels(
aLine->mFirstBaselineOffset);
mLastBaselineOffset = nsPresContext::AppUnitsToDoubleCSSPixels(
aLine->mLastBaselineOffset);
mItems.SetLength(aLine->mItems.Length());
@@ -68,16 +70,22 @@ FlexLine::WrapObject(JSContext* aCx, JS:
FlexLineGrowthState
FlexLine::GrowthState() const
{
return mGrowthState;
}
double
+FlexLine::CrossStart() const
+{
+ return mCrossStart;
+}
+
+double
FlexLine::CrossSize() const
{
return mCrossSize;
}
double
FlexLine::FirstBaselineOffset() const
{
--- a/dom/flex/FlexLine.h
+++ b/dom/flex/FlexLine.h
@@ -35,26 +35,28 @@ public:
virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
Flex* GetParentObject()
{
return mParent;
}
FlexLineGrowthState GrowthState() const;
+ double CrossStart() const;
double CrossSize() const;
double FirstBaselineOffset() const;
double LastBaselineOffset() const;
void GetItems(nsTArray<RefPtr<FlexItem>>& aResult);
protected:
RefPtr<Flex> mParent;
FlexLineGrowthState mGrowthState;
+ double mCrossStart;
double mCrossSize;
double mFirstBaselineOffset;
double mLastBaselineOffset;
nsTArray<RefPtr<FlexItem>> mItems;
};
} // namespace dom
--- a/dom/webidl/Flex.webidl
+++ b/dom/webidl/Flex.webidl
@@ -20,16 +20,17 @@ interface Flex
* that have grown are growing, and all others are unchanged.
*/
enum FlexLineGrowthState { "unchanged", "shrinking", "growing" };
[ChromeOnly]
interface FlexLine
{
readonly attribute FlexLineGrowthState growthState;
+ readonly attribute double crossStart;
readonly attribute double crossSize;
// firstBaselineOffset measures from flex-start edge.
readonly attribute double firstBaselineOffset;
// lastBaselineOffset measures from flex-end edge.
readonly attribute double lastBaselineOffset;