Bug 1248340 - Part 5: Compute Frames timing function in nsRuleNode. draft
authorBoris Chiou <boris.chiou@gmail.com>
Fri, 24 Feb 2017 16:32:49 +0800
changeset 490055 14cc0ccda3ff6325409dbd78f3c9e14e605a8a20
parent 490054 03f2ba9ccccd7d11a6fc592d35c90b159d920af6
child 490056 de8948a508dc1c8e3ab9e4f9fff6a388ea4d923e
push id46985
push userbmo:boris.chiou@gmail.com
push dateMon, 27 Feb 2017 16:23:37 +0000
bugs1248340
milestone54.0a1
Bug 1248340 - Part 5: Compute Frames timing function in nsRuleNode. MozReview-Commit-ID: 48mLZfHbJir
layout/style/nsRuleNode.cpp
--- a/layout/style/nsRuleNode.cpp
+++ b/layout/style/nsRuleNode.cpp
@@ -5506,16 +5506,26 @@ nsRuleNode::ComputeTimingFunction(const 
         nsTimingFunction::Type type =
           (array->Item(1).GetIntValue() ==
             NS_STYLE_TRANSITION_TIMING_FUNCTION_STEP_START) ?
               nsTimingFunction::Type::StepStart :
               nsTimingFunction::Type::StepEnd;
         aResult = nsTimingFunction(type, array->Item(0).GetIntValue());
       }
       break;
+    case eCSSUnit_Function:
+      {
+        nsCSSValue::Array* array = aValue.GetArrayValue();
+        NS_ASSERTION(array && array->Count() == 2, "Need 2 items");
+        NS_ASSERTION(array->Item(1).GetUnit() == eCSSUnit_Integer,
+                     "unexpected frames function value");
+        aResult = nsTimingFunction(nsTimingFunction::Type::Frames,
+                                   array->Item(1).GetIntValue());
+      }
+      break;
     default:
       NS_NOTREACHED("Invalid transition property unit");
   }
 }
 
 static uint8_t
 GetWillChangeBitFieldFromPropFlags(const nsCSSPropertyID& aProp)
 {