Bug 1419924 Part 2: Add a crossStart property to FlexLine Chrome object. draft
authorBrad Werth <bwerth@mozilla.com>
Fri, 01 Dec 2017 13:07:45 -0800
changeset 709361 c2566011721b77a47180fc6e9e5c9b0c1725c4f1
parent 709360 a8715fcbb35d69991dad5c37c5577b927587bdbd
child 709362 106217d358df9f487b44b534a0122613c6b74526
child 709373 895ce3c3f4cc39f278afe1f81aa10fdb0f52069b
push id92627
push userbwerth@mozilla.com
push dateFri, 08 Dec 2017 00:02:37 +0000
bugs1419924
milestone59.0a1
Bug 1419924 Part 2: Add a crossStart property to FlexLine Chrome object. MozReview-Commit-ID: 9xRBo1VVt0S
dom/flex/FlexLine.cpp
dom/flex/FlexLine.h
dom/webidl/Flex.webidl
--- 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;