Allow transitions on background-size with positionally matched keywords

This change allows CSS transitions to interpolate between lists with
matching keywords.
This affects interpolation for the following properties:
 - border-image-width
   This property is not animatable according to spec:
   https://drafts.csswg.org/css-backgrounds-3/#the-border-image-width

 - background-size
   Values are now interpolable if their keywords are positionally matched:
   https://github.com/w3c/csswg-drafts/commit/a5f9de921fa7834c79ee15660d9d86528bce1607

 - -webkit-background-size
 - -webkit-mask-size
   These mirror the animation behaviour of background-size.

This change only affects CSS Transitions for the sake of a small mergable patch.
CSS Animations behaviour will be brought in line in a separate patch.

This change ensures we have compatible behaviour with other browsers for
transitioning between single length background-size values e.g.
"background-size: 50%" to "background-size: 100%"

BUG=616072

Review-Url: https://codereview.chromium.org/2027933002
Cr-Commit-Position: refs/heads/master@{#397661}
diff --git a/third_party/WebKit/LayoutTests/animations/interpolation/background-size-interpolation-expected.txt b/third_party/WebKit/LayoutTests/animations/interpolation/background-size-interpolation-expected.txt
new file mode 100644
index 0000000..1973a0d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/animations/interpolation/background-size-interpolation-expected.txt
@@ -0,0 +1,193 @@
+This is a testharness.js-based test.
+PASS This test uses interpolation-test.js. 
+PASS CSS Transitions: property <background-size> from neutral to [20px 20px, 0px 0px] at (-0.25) is [7.5px 7.5px, 12.5px 12.5px, 7.5px 7.5px, 12.5px 12.5px] 
+PASS CSS Transitions: property <background-size> from neutral to [20px 20px, 0px 0px] at (0) is [10px 10px, 10px 10px, 10px 10px, 10px 10px] 
+PASS CSS Transitions: property <background-size> from neutral to [20px 20px, 0px 0px] at (0.25) is [12.5px 12.5px, 7.5px 7.5px, 12.5px 12.5px, 7.5px 7.5px] 
+PASS CSS Transitions: property <background-size> from neutral to [20px 20px, 0px 0px] at (0.5) is [15px 15px, 5px 5px, 15px 15px, 5px 5px] 
+PASS CSS Transitions: property <background-size> from neutral to [20px 20px, 0px 0px] at (0.75) is [17.5px 17.5px, 2.5px 2.5px, 17.5px 17.5px, 2.5px 2.5px] 
+PASS CSS Transitions: property <background-size> from neutral to [20px 20px, 0px 0px] at (1) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from neutral to [20px 20px, 0px 0px] at (1.25) is [22.5px 22.5px, 0px 0px, 22.5px 22.5px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [initial] to [20px 20px, 0px 0px] at (-0.3) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [initial] to [20px 20px, 0px 0px] at (0) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [initial] to [20px 20px, 0px 0px] at (0.3) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [initial] to [20px 20px, 0px 0px] at (0.5) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [initial] to [20px 20px, 0px 0px] at (0.6) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [initial] to [20px 20px, 0px 0px] at (1) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [initial] to [20px 20px, 0px 0px] at (1.5) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (-0.25) is [120px 120px, 125px 125px, 120px 120px, 125px 125px] 
+PASS CSS Transitions: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (0) is [100px 100px, 100px 100px, 100px 100px, 100px 100px] 
+PASS CSS Transitions: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (0.25) is [80px 80px, 75px 75px, 80px 80px, 75px 75px] 
+PASS CSS Transitions: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (0.5) is [60px 60px, 50px 50px, 60px 60px, 50px 50px] 
+PASS CSS Transitions: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (0.75) is [40px 40px, 25px 25px, 40px 40px, 25px 25px] 
+PASS CSS Transitions: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (1) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (1.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [unset] to [20px 20px, 0px 0px] at (-0.3) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [unset] to [20px 20px, 0px 0px] at (0) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [unset] to [20px 20px, 0px 0px] at (0.3) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [unset] to [20px 20px, 0px 0px] at (0.5) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [unset] to [20px 20px, 0px 0px] at (0.6) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [unset] to [20px 20px, 0px 0px] at (1) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [unset] to [20px 20px, 0px 0px] at (1.5) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (-0.25) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.25) is [10px 10px, 10px 10px, contain, cover] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.5) is [20px 20px, 20px 20px, contain, cover] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.75) is [30px 30px, 30px 30px, contain, cover] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1) is [40px 40px, 40px 40px, contain, cover] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1.25) is [50px 50px, 50px 50px, contain, cover] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (-0.3) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.3) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.5) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.6) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (1) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (1.5) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.25) is [5px 5px, 10px 10px, 15px 15px, 25px 25px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.5) is [10px 10px, 20px 20px, 30px 30px, 50px 50px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.75) is [15px 15px, 30px 30px, 45px 45px, 75px 75px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1) is [20px 20px, 40px 40px, 60px 60px, 100px 100px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1.25) is [25px 25px, 50px 50px, 75px 75px, 125px 125px] 
+PASS CSS Transitions: property <background-size> from [0px 0px] to [80px 80px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [0px 0px] to [80px 80px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Transitions: property <background-size> from [0px 0px] to [80px 80px] at (0.25) is [20px 20px, 20px 20px, 20px 20px, 20px 20px] 
+PASS CSS Transitions: property <background-size> from [0px 0px] to [80px 80px] at (0.5) is [40px 40px, 40px 40px, 40px 40px, 40px 40px] 
+PASS CSS Transitions: property <background-size> from [0px 0px] to [80px 80px] at (0.75) is [60px 60px, 60px 60px, 60px 60px, 60px 60px] 
+PASS CSS Transitions: property <background-size> from [0px 0px] to [80px 80px] at (1) is [80px 80px, 80px 80px, 80px 80px, 80px 80px] 
+PASS CSS Transitions: property <background-size> from [0px 0px] to [80px 80px] at (1.25) is [100px 100px, 100px 100px, 100px 100px, 100px 100px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (-0.25) is [0px 0px, 80px 0px, 0px 0px, 90px 0px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0) is [0px 0px, 80px 0px, 0px 0px, 80px 0px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.25) is [10px 10px, 80px 20px, 0px 20px, 70px 10px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.5) is [20px 20px, 80px 40px, 0px 40px, 60px 20px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.75) is [30px 30px, 80px 60px, 0px 60px, 50px 30px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1) is [40px 40px, 80px 80px, 0px 80px, 40px 40px] 
+PASS CSS Transitions: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1.25) is [50px 50px, 80px 100px, 0px 100px, 30px 50px] 
+PASS CSS Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (-0.25) is [7.5px 7.5px, 12.5px 12.5px, 7.5px 7.5px, 12.5px 12.5px] 
+PASS CSS Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (0) is [10px 10px, 10px 10px, 10px 10px, 10px 10px] 
+PASS CSS Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (0.25) is [12.5px 12.5px, 7.5px 7.5px, 12.5px 12.5px, 7.5px 7.5px] 
+PASS CSS Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (0.5) is [15px 15px, 5px 5px, 15px 15px, 5px 5px] 
+PASS CSS Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (0.75) is [17.5px 17.5px, 2.5px 2.5px, 17.5px 17.5px, 2.5px 2.5px] 
+PASS CSS Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (1) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (1.25) is [22.5px 22.5px, 0px 0px, 22.5px 22.5px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (-0.3) is [auto, auto, auto, auto] 
+PASS CSS Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (0) is [auto, auto, auto, auto] 
+PASS CSS Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (0.3) is [auto, auto, auto, auto] 
+PASS CSS Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (0.5) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (0.6) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (1) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (1.5) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (-0.25) is [120px 120px, 125px 125px, 120px 120px, 125px 125px] 
+PASS CSS Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (0) is [100px 100px, 100px 100px, 100px 100px, 100px 100px] 
+PASS CSS Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (0.25) is [80px 80px, 75px 75px, 80px 80px, 75px 75px] 
+PASS CSS Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (0.5) is [60px 60px, 50px 50px, 60px 60px, 50px 50px] 
+PASS CSS Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (0.75) is [40px 40px, 25px 25px, 40px 40px, 25px 25px] 
+PASS CSS Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (1) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (1.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (-0.3) is [auto, auto, auto, auto] 
+PASS CSS Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (0) is [auto, auto, auto, auto] 
+PASS CSS Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (0.3) is [auto, auto, auto, auto] 
+PASS CSS Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (0.5) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (0.6) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (1) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (1.5) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (-0.25) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0) is [0px 0px, 0px 0px, contain, cover] 
+FAIL CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.25) is [0px 0px, 0px 0px, contain, cover] assert_equals: expected "10px 10px , 10px 10px , contain , cover " but got "0px 0px , 0px 0px , contain , cover "
+FAIL CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.5) is [40px 40px, 40px 40px, contain, cover] assert_equals: expected "20px 20px , 20px 20px , contain , cover " but got "40px 40px , 40px 40px , contain , cover "
+FAIL CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.75) is [40px 40px, 40px 40px, contain, cover] assert_equals: expected "30px 30px , 30px 30px , contain , cover " but got "40px 40px , 40px 40px , contain , cover "
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1) is [40px 40px, 40px 40px, contain, cover] 
+FAIL CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1.25) is [40px 40px, 40px 40px, contain, cover] assert_equals: expected "50px 50px , 50px 50px , contain , cover " but got "40px 40px , 40px 40px , contain , cover "
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (-0.3) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.3) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.5) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.6) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (1) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (1.5) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.25) is [5px 5px, 10px 10px, 15px 15px, 25px 25px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.5) is [10px 10px, 20px 20px, 30px 30px, 50px 50px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.75) is [15px 15px, 30px 30px, 45px 45px, 75px 75px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1) is [20px 20px, 40px 40px, 60px 60px, 100px 100px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1.25) is [25px 25px, 50px 50px, 75px 75px, 125px 125px] 
+PASS CSS Animations: property <background-size> from [0px 0px] to [80px 80px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [0px 0px] to [80px 80px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Animations: property <background-size> from [0px 0px] to [80px 80px] at (0.25) is [20px 20px, 20px 20px, 20px 20px, 20px 20px] 
+PASS CSS Animations: property <background-size> from [0px 0px] to [80px 80px] at (0.5) is [40px 40px, 40px 40px, 40px 40px, 40px 40px] 
+PASS CSS Animations: property <background-size> from [0px 0px] to [80px 80px] at (0.75) is [60px 60px, 60px 60px, 60px 60px, 60px 60px] 
+PASS CSS Animations: property <background-size> from [0px 0px] to [80px 80px] at (1) is [80px 80px, 80px 80px, 80px 80px, 80px 80px] 
+PASS CSS Animations: property <background-size> from [0px 0px] to [80px 80px] at (1.25) is [100px 100px, 100px 100px, 100px 100px, 100px 100px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (-0.25) is [0px 0px, 80px 0px, 0px 0px, 90px 0px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0) is [0px 0px, 80px 0px, 0px 0px, 80px 0px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.25) is [10px 10px, 80px 20px, 0px 20px, 70px 10px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.5) is [20px 20px, 80px 40px, 0px 40px, 60px 20px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.75) is [30px 30px, 80px 60px, 0px 60px, 50px 30px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1) is [40px 40px, 80px 80px, 0px 80px, 40px 40px] 
+PASS CSS Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1.25) is [50px 50px, 80px 100px, 0px 100px, 30px 50px] 
+PASS Web Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (-0.25) is [7.5px 7.5px, 12.5px 12.5px, 7.5px 7.5px, 12.5px 12.5px] 
+PASS Web Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (0) is [10px 10px, 10px 10px, 10px 10px, 10px 10px] 
+PASS Web Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (0.25) is [12.5px 12.5px, 7.5px 7.5px, 12.5px 12.5px, 7.5px 7.5px] 
+PASS Web Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (0.5) is [15px 15px, 5px 5px, 15px 15px, 5px 5px] 
+PASS Web Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (0.75) is [17.5px 17.5px, 2.5px 2.5px, 17.5px 17.5px, 2.5px 2.5px] 
+PASS Web Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (1) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS Web Animations: property <background-size> from neutral to [20px 20px, 0px 0px] at (1.25) is [22.5px 22.5px, 0px 0px, 22.5px 22.5px, 0px 0px] 
+PASS Web Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (-0.3) is [auto, auto, auto, auto] 
+PASS Web Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (0) is [auto, auto, auto, auto] 
+PASS Web Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (0.3) is [auto, auto, auto, auto] 
+PASS Web Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (0.5) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS Web Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (0.6) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS Web Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (1) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS Web Animations: property <background-size> from [initial] to [20px 20px, 0px 0px] at (1.5) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS Web Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (-0.25) is [120px 120px, 125px 125px, 120px 120px, 125px 125px] 
+PASS Web Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (0) is [100px 100px, 100px 100px, 100px 100px, 100px 100px] 
+PASS Web Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (0.25) is [80px 80px, 75px 75px, 80px 80px, 75px 75px] 
+PASS Web Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (0.5) is [60px 60px, 50px 50px, 60px 60px, 50px 50px] 
+PASS Web Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (0.75) is [40px 40px, 25px 25px, 40px 40px, 25px 25px] 
+PASS Web Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (1) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS Web Animations: property <background-size> from [inherit] to [20px 20px, 0px 0px] at (1.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS Web Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (-0.3) is [auto, auto, auto, auto] 
+PASS Web Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (0) is [auto, auto, auto, auto] 
+PASS Web Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (0.3) is [auto, auto, auto, auto] 
+PASS Web Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (0.5) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS Web Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (0.6) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS Web Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (1) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS Web Animations: property <background-size> from [unset] to [20px 20px, 0px 0px] at (1.5) is [20px 20px, 0px 0px, 20px 20px, 0px 0px] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (-0.25) is [0px 0px, 0px 0px, contain, cover] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0) is [0px 0px, 0px 0px, contain, cover] 
+FAIL Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.25) is [0px 0px, 0px 0px, contain, cover] assert_equals: expected "10px 10px , 10px 10px , contain , cover " but got "0px 0px , 0px 0px , contain , cover "
+FAIL Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.5) is [40px 40px, 40px 40px, contain, cover] assert_equals: expected "20px 20px , 20px 20px , contain , cover " but got "40px 40px , 40px 40px , contain , cover "
+FAIL Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.75) is [40px 40px, 40px 40px, contain, cover] assert_equals: expected "30px 30px , 30px 30px , contain , cover " but got "40px 40px , 40px 40px , contain , cover "
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1) is [40px 40px, 40px 40px, contain, cover] 
+FAIL Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1.25) is [40px 40px, 40px 40px, contain, cover] assert_equals: expected "50px 50px , 50px 50px , contain , cover " but got "40px 40px , 40px 40px , contain , cover "
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (-0.3) is [0px 0px, 0px 0px, contain, cover] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0) is [0px 0px, 0px 0px, contain, cover] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.3) is [0px 0px, 0px 0px, contain, cover] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.5) is [40px 40px, 40px 40px, cover, contain] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.6) is [40px 40px, 40px 40px, cover, contain] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (1) is [40px 40px, 40px 40px, cover, contain] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (1.5) is [40px 40px, 40px 40px, cover, contain] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.25) is [5px 5px, 10px 10px, 15px 15px, 25px 25px] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.5) is [10px 10px, 20px 20px, 30px 30px, 50px 50px] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.75) is [15px 15px, 30px 30px, 45px 45px, 75px 75px] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1) is [20px 20px, 40px 40px, 60px 60px, 100px 100px] 
+PASS Web Animations: property <background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1.25) is [25px 25px, 50px 50px, 75px 75px, 125px 125px] 
+PASS Web Animations: property <background-size> from [0px 0px] to [80px 80px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS Web Animations: property <background-size> from [0px 0px] to [80px 80px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS Web Animations: property <background-size> from [0px 0px] to [80px 80px] at (0.25) is [20px 20px, 20px 20px, 20px 20px, 20px 20px] 
+PASS Web Animations: property <background-size> from [0px 0px] to [80px 80px] at (0.5) is [40px 40px, 40px 40px, 40px 40px, 40px 40px] 
+PASS Web Animations: property <background-size> from [0px 0px] to [80px 80px] at (0.75) is [60px 60px, 60px 60px, 60px 60px, 60px 60px] 
+PASS Web Animations: property <background-size> from [0px 0px] to [80px 80px] at (1) is [80px 80px, 80px 80px, 80px 80px, 80px 80px] 
+PASS Web Animations: property <background-size> from [0px 0px] to [80px 80px] at (1.25) is [100px 100px, 100px 100px, 100px 100px, 100px 100px] 
+PASS Web Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (-0.25) is [0px 0px, 80px 0px, 0px 0px, 90px 0px] 
+PASS Web Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0) is [0px 0px, 80px 0px, 0px 0px, 80px 0px] 
+PASS Web Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.25) is [10px 10px, 80px 20px, 0px 20px, 70px 10px] 
+PASS Web Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.5) is [20px 20px, 80px 40px, 0px 40px, 60px 20px] 
+PASS Web Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.75) is [30px 30px, 80px 60px, 0px 60px, 50px 30px] 
+PASS Web Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1) is [40px 40px, 80px 80px, 0px 80px, 40px 40px] 
+PASS Web Animations: property <background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1.25) is [50px 50px, 80px 100px, 0px 100px, 30px 50px] 
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/animations/interpolation/background-size-interpolation.html b/third_party/WebKit/LayoutTests/animations/interpolation/background-size-interpolation.html
index b6a1cd9..21b01cf 100644
--- a/third_party/WebKit/LayoutTests/animations/interpolation/background-size-interpolation.html
+++ b/third_party/WebKit/LayoutTests/animations/interpolation/background-size-interpolation.html
@@ -72,11 +72,19 @@
 });
 
 // Matched keywords in size value list.
-assertNoInterpolation({
+assertInterpolation({
   property: 'background-size',
   from: '0px 0px, 0px 0px, contain, cover',
   to: '40px 40px, 40px 40px, contain, cover',
-});
+}, [
+  {at: -0.25, is: ' 0px  0px,  0px  0px, contain, cover'},
+  {at: 0, is:     ' 0px  0px,  0px  0px, contain, cover'},
+  {at: 0.25, is:  '10px 10px, 10px 10px, contain, cover'},
+  {at: 0.5, is:   '20px 20px, 20px 20px, contain, cover'},
+  {at: 0.75, is:  '30px 30px, 30px 30px, contain, cover'},
+  {at: 1, is:     '40px 40px, 40px 40px, contain, cover'},
+  {at: 1.25, is:  '50px 50px, 50px 50px, contain, cover'},
+]);
 
 // Mismatched keywords in size value list.
 assertNoInterpolation({
diff --git a/third_party/WebKit/LayoutTests/animations/interpolation/border-image-width-interpolation-expected.txt b/third_party/WebKit/LayoutTests/animations/interpolation/border-image-width-interpolation-expected.txt
index d437e1b..76cb5e6 100644
--- a/third_party/WebKit/LayoutTests/animations/interpolation/border-image-width-interpolation-expected.txt
+++ b/third_party/WebKit/LayoutTests/animations/interpolation/border-image-width-interpolation-expected.txt
@@ -74,13 +74,12 @@
 FAIL CSS Transitions: property <border-image-width> from [10px] to [20%] at (0.6) is [calc(4px + 12%)] assert_equals: expected "16px " but got "calc ( 4px + 12 % ) "
 PASS CSS Transitions: property <border-image-width> from [10px] to [20%] at (1) is [20%] 
 FAIL CSS Transitions: property <border-image-width> from [10px] to [20%] at (1.5) is [calc(-5px + 30%)] assert_equals: expected "25px " but got "calc ( - 5px + 30 % ) "
-PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (-0.3) is [110px auto auto 120] 
-PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0) is [110px auto auto 120] 
-PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.3) is [110px auto auto 120] 
-PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.5) is [110px auto auto 120] 
-PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.6) is [110px auto auto 120] 
+PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (-0.3) is [0px auto auto 0] 
+PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0) is [10px auto auto 20] 
+PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.3) is [40px auto auto 50] 
+PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.6) is [70px auto auto 80] 
 PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1) is [110px auto auto 120] 
-PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1.5) is [110px auto auto 120] 
+PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1.5) is [160px auto auto 170] 
 PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (-0.3) is [110px auto 120] 
 PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (0) is [110px auto 120] 
 PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (0.3) is [110px auto 120] 
@@ -190,13 +189,12 @@
 FAIL CSS Animations: property <border-image-width> from [10px] to [20%] at (0.6) is [calc(4px + 12%)] assert_equals: expected "16px " but got "calc ( 4px + 12 % ) "
 PASS CSS Animations: property <border-image-width> from [10px] to [20%] at (1) is [20%] 
 FAIL CSS Animations: property <border-image-width> from [10px] to [20%] at (1.5) is [calc(-5px + 30%)] assert_equals: expected "25px " but got "calc ( - 5px + 30 % ) "
-PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (-0.3) is [10px auto auto 20] 
+FAIL CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (-0.3) is [10px auto auto 20] assert_equals: expected "0px auto auto 0 " but got "10px auto auto 20 "
 PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0) is [10px auto auto 20] 
-PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.3) is [10px auto auto 20] 
-PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.5) is [110px auto auto 120] 
-PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.6) is [110px auto auto 120] 
+FAIL CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.3) is [10px auto auto 20] assert_equals: expected "40px auto auto 50 " but got "10px auto auto 20 "
+FAIL CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.6) is [110px auto auto 120] assert_equals: expected "70px auto auto 80 " but got "110px auto auto 120 "
 PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1) is [110px auto auto 120] 
-PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1.5) is [110px auto auto 120] 
+FAIL CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1.5) is [110px auto auto 120] assert_equals: expected "160px auto auto 170 " but got "110px auto auto 120 "
 PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (-0.3) is [10px auto auto 20] 
 PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (0) is [10px auto auto 20] 
 PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (0.3) is [10px auto auto 20] 
@@ -306,13 +304,12 @@
 FAIL Web Animations: property <border-image-width> from [10px] to [20%] at (0.6) is [calc(4px + 12%)] assert_equals: expected "16px " but got "calc ( 4px + 12 % ) "
 PASS Web Animations: property <border-image-width> from [10px] to [20%] at (1) is [20%] 
 FAIL Web Animations: property <border-image-width> from [10px] to [20%] at (1.5) is [calc(-5px + 30%)] assert_equals: expected "25px " but got "calc ( - 5px + 30 % ) "
-PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (-0.3) is [10px auto auto 20] 
+FAIL Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (-0.3) is [10px auto auto 20] assert_equals: expected "0px auto auto 0 " but got "10px auto auto 20 "
 PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0) is [10px auto auto 20] 
-PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.3) is [10px auto auto 20] 
-PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.5) is [110px auto auto 120] 
-PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.6) is [110px auto auto 120] 
+FAIL Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.3) is [10px auto auto 20] assert_equals: expected "40px auto auto 50 " but got "10px auto auto 20 "
+FAIL Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.6) is [110px auto auto 120] assert_equals: expected "70px auto auto 80 " but got "110px auto auto 120 "
 PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1) is [110px auto auto 120] 
-PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1.5) is [110px auto auto 120] 
+FAIL Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1.5) is [110px auto auto 120] assert_equals: expected "160px auto auto 170 " but got "110px auto auto 120 "
 PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (-0.3) is [10px auto auto 20] 
 PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (0) is [10px auto auto 20] 
 PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (0.3) is [10px auto auto 20] 
diff --git a/third_party/WebKit/LayoutTests/animations/interpolation/border-image-width-interpolation.html b/third_party/WebKit/LayoutTests/animations/interpolation/border-image-width-interpolation.html
index 1dc7d25..9568578 100644
--- a/third_party/WebKit/LayoutTests/animations/interpolation/border-image-width-interpolation.html
+++ b/third_party/WebKit/LayoutTests/animations/interpolation/border-image-width-interpolation.html
@@ -142,11 +142,19 @@
   {at: 1.5,  is: 'calc(-5px + 30%)'}, // Should be parsed as -5px + 36px = 31px
 ]);
 
-assertNoInterpolation({
+assertInterpolation({
   property: 'border-image-width',
   from: '10px auto auto 20',
   to: '110px auto auto 120'
-});
+}, [
+  {at: -0.3, is: '  0px auto auto   0'},
+  {at: 0,    is: ' 10px auto auto  20'},
+  {at: 0.3,  is: ' 40px auto auto  50'},
+  {at: 0.6,  is: ' 70px auto auto  80'},
+  {at: 1,    is: '110px auto auto 120'},
+  {at: 1.5,  is: '160px auto auto 170'},
+]);
+
 assertNoInterpolation({
   property: 'border-image-width',
   from: '10px auto auto 20',
diff --git a/third_party/WebKit/LayoutTests/animations/interpolation/webkit-background-size-interpolation-expected.txt b/third_party/WebKit/LayoutTests/animations/interpolation/webkit-background-size-interpolation-expected.txt
new file mode 100644
index 0000000..0db2f03
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/animations/interpolation/webkit-background-size-interpolation-expected.txt
@@ -0,0 +1,74 @@
+This is a testharness.js-based test.
+PASS This test uses interpolation-test.js. 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (-0.25) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.25) is [10px 10px, 10px 10px, contain, cover] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.5) is [20px 20px, 20px 20px, contain, cover] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.75) is [30px 30px, 30px 30px, contain, cover] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1) is [40px 40px, 40px 40px, contain, cover] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1.25) is [50px 50px, 50px 50px, contain, cover] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (-0.3) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.3) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.5) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.6) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (1) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (1.5) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.25) is [5px 5px, 10px 10px, 15px 15px, 25px 25px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.5) is [10px 10px, 20px 20px, 30px 30px, 50px 50px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.75) is [15px 15px, 30px 30px, 45px 45px, 75px 75px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1) is [20px 20px, 40px 40px, 60px 60px, 100px 100px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1.25) is [25px 25px, 50px 50px, 75px 75px, 125px 125px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (0.25) is [20px 20px, 20px 20px, 20px 20px, 20px 20px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (0.5) is [40px 40px, 40px 40px, 40px 40px, 40px 40px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (0.75) is [60px 60px, 60px 60px, 60px 60px, 60px 60px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (1) is [80px 80px, 80px 80px, 80px 80px, 80px 80px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (1.25) is [100px 100px, 100px 100px, 100px 100px, 100px 100px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (-0.25) is [0px 0px, 80px 0px, 0px 0px, 90px 0px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0) is [0px 0px, 80px 0px, 0px 0px, 80px 0px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.25) is [10px 10px, 80px 20px, 0px 20px, 70px 10px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.5) is [20px 20px, 80px 40px, 0px 40px, 60px 20px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.75) is [30px 30px, 80px 60px, 0px 60px, 50px 30px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1) is [40px 40px, 80px 80px, 0px 80px, 40px 40px] 
+PASS CSS Transitions: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1.25) is [50px 50px, 80px 100px, 0px 100px, 30px 50px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (-0.25) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0) is [0px 0px, 0px 0px, contain, cover] 
+FAIL CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.25) is [0px 0px, 0px 0px, contain, cover] assert_equals: expected "10px 10px , 10px 10px , contain , cover " but got "0px 0px , 0px 0px , contain , cover "
+FAIL CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.5) is [40px 40px, 40px 40px, contain, cover] assert_equals: expected "20px 20px , 20px 20px , contain , cover " but got "40px 40px , 40px 40px , contain , cover "
+FAIL CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.75) is [40px 40px, 40px 40px, contain, cover] assert_equals: expected "30px 30px , 30px 30px , contain , cover " but got "40px 40px , 40px 40px , contain , cover "
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1) is [40px 40px, 40px 40px, contain, cover] 
+FAIL CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1.25) is [40px 40px, 40px 40px, contain, cover] assert_equals: expected "50px 50px , 50px 50px , contain , cover " but got "40px 40px , 40px 40px , contain , cover "
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (-0.3) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.3) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.5) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.6) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (1) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (1.5) is [40px 40px, 40px 40px, cover, contain] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.25) is [5px 5px, 10px 10px, 15px 15px, 25px 25px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.5) is [10px 10px, 20px 20px, 30px 30px, 50px 50px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.75) is [15px 15px, 30px 30px, 45px 45px, 75px 75px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1) is [20px 20px, 40px 40px, 60px 60px, 100px 100px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1.25) is [25px 25px, 50px 50px, 75px 75px, 125px 125px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (0.25) is [20px 20px, 20px 20px, 20px 20px, 20px 20px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (0.5) is [40px 40px, 40px 40px, 40px 40px, 40px 40px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (0.75) is [60px 60px, 60px 60px, 60px 60px, 60px 60px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (1) is [80px 80px, 80px 80px, 80px 80px, 80px 80px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px] to [80px 80px] at (1.25) is [100px 100px, 100px 100px, 100px 100px, 100px 100px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (-0.25) is [0px 0px, 80px 0px, 0px 0px, 90px 0px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0) is [0px 0px, 80px 0px, 0px 0px, 80px 0px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.25) is [10px 10px, 80px 20px, 0px 20px, 70px 10px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.5) is [20px 20px, 80px 40px, 0px 40px, 60px 20px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.75) is [30px 30px, 80px 60px, 0px 60px, 50px 30px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1) is [40px 40px, 80px 80px, 0px 80px, 40px 40px] 
+PASS CSS Animations: property <-webkit-background-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1.25) is [50px 50px, 80px 100px, 0px 100px, 30px 50px] 
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/animations/interpolation/webkit-background-size-interpolation.html b/third_party/WebKit/LayoutTests/animations/interpolation/webkit-background-size-interpolation.html
index c604260..4d3ce98 100644
--- a/third_party/WebKit/LayoutTests/animations/interpolation/webkit-background-size-interpolation.html
+++ b/third_party/WebKit/LayoutTests/animations/interpolation/webkit-background-size-interpolation.html
@@ -22,11 +22,19 @@
 <script src="resources/interpolation-test.js"></script>
 <script>
 // Matched keywords in size value list.
-assertNoInterpolation({
+assertInterpolation({
   property: '-webkit-background-size',
   from: '0px 0px, 0px 0px, contain, cover',
   to: '40px 40px, 40px 40px, contain, cover',
-});
+}, [
+  {at: -0.25, is: ' 0px  0px,  0px  0px, contain, cover'},
+  {at: 0, is:     ' 0px  0px,  0px  0px, contain, cover'},
+  {at: 0.25, is:  '10px 10px, 10px 10px, contain, cover'},
+  {at: 0.5, is:   '20px 20px, 20px 20px, contain, cover'},
+  {at: 0.75, is:  '30px 30px, 30px 30px, contain, cover'},
+  {at: 1, is:     '40px 40px, 40px 40px, contain, cover'},
+  {at: 1.25, is:  '50px 50px, 50px 50px, contain, cover'},
+]);
 
 // Mismatched keywords in size value list.
 assertNoInterpolation({
diff --git a/third_party/WebKit/LayoutTests/animations/interpolation/webkit-mask-size-interpolation-expected.txt b/third_party/WebKit/LayoutTests/animations/interpolation/webkit-mask-size-interpolation-expected.txt
new file mode 100644
index 0000000..4a86596
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/animations/interpolation/webkit-mask-size-interpolation-expected.txt
@@ -0,0 +1,130 @@
+This is a testharness.js-based test.
+PASS This test uses interpolation-test.js. 
+PASS CSS Transitions: property <-webkit-mask-size> from neutral to [200px 250px] at (-0.25) is [75px 62.5px, 75px 62.5px, 75px 62.5px, 75px 62.5px] 
+PASS CSS Transitions: property <-webkit-mask-size> from neutral to [200px 250px] at (0) is [100px 100px, 100px 100px, 100px 100px, 100px 100px] 
+PASS CSS Transitions: property <-webkit-mask-size> from neutral to [200px 250px] at (0.25) is [125px 137.5px, 125px 137.5px, 125px 137.5px, 125px 137.5px] 
+PASS CSS Transitions: property <-webkit-mask-size> from neutral to [200px 250px] at (0.5) is [150px 175px, 150px 175px, 150px 175px, 150px 175px] 
+PASS CSS Transitions: property <-webkit-mask-size> from neutral to [200px 250px] at (0.75) is [175px 212.5px, 175px 212.5px, 175px 212.5px, 175px 212.5px] 
+PASS CSS Transitions: property <-webkit-mask-size> from neutral to [200px 250px] at (1) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from neutral to [200px 250px] at (1.25) is [225px 287.5px, 225px 287.5px, 225px 287.5px, 225px 287.5px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [initial] to [200px 250px] at (-0.3) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [initial] to [200px 250px] at (0) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [initial] to [200px 250px] at (0.3) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [initial] to [200px 250px] at (0.5) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [initial] to [200px 250px] at (0.6) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [initial] to [200px 250px] at (1) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [initial] to [200px 250px] at (1.5) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [inherit] to [200px 250px] at (-0.25) is [325px 312.5px, 325px 312.5px, 325px 312.5px, 325px 312.5px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [inherit] to [200px 250px] at (0) is [300px 300px, 300px 300px, 300px 300px, 300px 300px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [inherit] to [200px 250px] at (0.25) is [275px 287.5px, 275px 287.5px, 275px 287.5px, 275px 287.5px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [inherit] to [200px 250px] at (0.5) is [250px 275px, 250px 275px, 250px 275px, 250px 275px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [inherit] to [200px 250px] at (0.75) is [225px 262.5px, 225px 262.5px, 225px 262.5px, 225px 262.5px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [inherit] to [200px 250px] at (1) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [inherit] to [200px 250px] at (1.25) is [175px 237.5px, 175px 237.5px, 175px 237.5px, 175px 237.5px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [unset] to [200px 250px] at (-0.3) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [unset] to [200px 250px] at (0) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [unset] to [200px 250px] at (0.3) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [unset] to [200px 250px] at (0.5) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [unset] to [200px 250px] at (0.6) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [unset] to [200px 250px] at (1) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [unset] to [200px 250px] at (1.5) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (-0.25) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.25) is [10px 10px, 10px 10px, contain, cover] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.5) is [20px 20px, 20px 20px, contain, cover] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.75) is [30px 30px, 30px 30px, contain, cover] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1) is [40px 40px, 40px 40px, contain, cover] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1.25) is [50px 50px, 50px 50px, contain, cover] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (-0.3) is [20px 20px, 20px 20px, cover, contain] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (0) is [20px 20px, 20px 20px, cover, contain] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (0.3) is [20px 20px, 20px 20px, cover, contain] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (0.5) is [20px 20px, 20px 20px, cover, contain] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (0.6) is [20px 20px, 20px 20px, cover, contain] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (1) is [20px 20px, 20px 20px, cover, contain] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (1.5) is [20px 20px, 20px 20px, cover, contain] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.25) is [5px 5px, 10px 10px, 15px 15px, 25px 25px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.5) is [10px 10px, 20px 20px, 30px 30px, 50px 50px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.75) is [15px 15px, 30px 30px, 45px 45px, 75px 75px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1) is [20px 20px, 40px 40px, 60px 60px, 100px 100px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1.25) is [25px 25px, 50px 50px, 75px 75px, 125px 125px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (0.25) is [20px 20px, 20px 20px, 20px 20px, 20px 20px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (0.5) is [40px 40px, 40px 40px, 40px 40px, 40px 40px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (0.75) is [60px 60px, 60px 60px, 60px 60px, 60px 60px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (1) is [80px 80px, 80px 80px, 80px 80px, 80px 80px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (1.25) is [100px 100px, 100px 100px, 100px 100px, 100px 100px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (-0.25) is [0px 0px, 80px 0px, 0px 0px, 90px 0px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0) is [0px 0px, 80px 0px, 0px 0px, 80px 0px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.25) is [10px 10px, 80px 20px, 0px 20px, 70px 10px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.5) is [20px 20px, 80px 40px, 0px 40px, 60px 20px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.75) is [30px 30px, 80px 60px, 0px 60px, 50px 30px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1) is [40px 40px, 80px 80px, 0px 80px, 40px 40px] 
+PASS CSS Transitions: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1.25) is [50px 50px, 80px 100px, 0px 100px, 30px 50px] 
+PASS CSS Animations: property <-webkit-mask-size> from neutral to [200px 250px] at (-0.25) is [75px 62.5px, 75px 62.5px, 75px 62.5px, 75px 62.5px] 
+PASS CSS Animations: property <-webkit-mask-size> from neutral to [200px 250px] at (0) is [100px 100px, 100px 100px, 100px 100px, 100px 100px] 
+PASS CSS Animations: property <-webkit-mask-size> from neutral to [200px 250px] at (0.25) is [125px 137.5px, 125px 137.5px, 125px 137.5px, 125px 137.5px] 
+PASS CSS Animations: property <-webkit-mask-size> from neutral to [200px 250px] at (0.5) is [150px 175px, 150px 175px, 150px 175px, 150px 175px] 
+PASS CSS Animations: property <-webkit-mask-size> from neutral to [200px 250px] at (0.75) is [175px 212.5px, 175px 212.5px, 175px 212.5px, 175px 212.5px] 
+PASS CSS Animations: property <-webkit-mask-size> from neutral to [200px 250px] at (1) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Animations: property <-webkit-mask-size> from neutral to [200px 250px] at (1.25) is [225px 287.5px, 225px 287.5px, 225px 287.5px, 225px 287.5px] 
+PASS CSS Animations: property <-webkit-mask-size> from [initial] to [200px 250px] at (-0.3) is [auto, auto, auto, auto] 
+PASS CSS Animations: property <-webkit-mask-size> from [initial] to [200px 250px] at (0) is [auto, auto, auto, auto] 
+PASS CSS Animations: property <-webkit-mask-size> from [initial] to [200px 250px] at (0.3) is [auto, auto, auto, auto] 
+PASS CSS Animations: property <-webkit-mask-size> from [initial] to [200px 250px] at (0.5) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Animations: property <-webkit-mask-size> from [initial] to [200px 250px] at (0.6) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Animations: property <-webkit-mask-size> from [initial] to [200px 250px] at (1) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Animations: property <-webkit-mask-size> from [initial] to [200px 250px] at (1.5) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Animations: property <-webkit-mask-size> from [inherit] to [200px 250px] at (-0.25) is [325px 312.5px, 325px 312.5px, 325px 312.5px, 325px 312.5px] 
+PASS CSS Animations: property <-webkit-mask-size> from [inherit] to [200px 250px] at (0) is [300px 300px, 300px 300px, 300px 300px, 300px 300px] 
+PASS CSS Animations: property <-webkit-mask-size> from [inherit] to [200px 250px] at (0.25) is [275px 287.5px, 275px 287.5px, 275px 287.5px, 275px 287.5px] 
+PASS CSS Animations: property <-webkit-mask-size> from [inherit] to [200px 250px] at (0.5) is [250px 275px, 250px 275px, 250px 275px, 250px 275px] 
+PASS CSS Animations: property <-webkit-mask-size> from [inherit] to [200px 250px] at (0.75) is [225px 262.5px, 225px 262.5px, 225px 262.5px, 225px 262.5px] 
+PASS CSS Animations: property <-webkit-mask-size> from [inherit] to [200px 250px] at (1) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Animations: property <-webkit-mask-size> from [inherit] to [200px 250px] at (1.25) is [175px 237.5px, 175px 237.5px, 175px 237.5px, 175px 237.5px] 
+PASS CSS Animations: property <-webkit-mask-size> from [unset] to [200px 250px] at (-0.3) is [auto, auto, auto, auto] 
+PASS CSS Animations: property <-webkit-mask-size> from [unset] to [200px 250px] at (0) is [auto, auto, auto, auto] 
+PASS CSS Animations: property <-webkit-mask-size> from [unset] to [200px 250px] at (0.3) is [auto, auto, auto, auto] 
+PASS CSS Animations: property <-webkit-mask-size> from [unset] to [200px 250px] at (0.5) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Animations: property <-webkit-mask-size> from [unset] to [200px 250px] at (0.6) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Animations: property <-webkit-mask-size> from [unset] to [200px 250px] at (1) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Animations: property <-webkit-mask-size> from [unset] to [200px 250px] at (1.5) is [200px 250px, 200px 250px, 200px 250px, 200px 250px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (-0.25) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0) is [0px 0px, 0px 0px, contain, cover] 
+FAIL CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.25) is [0px 0px, 0px 0px, contain, cover] assert_equals: expected "10px 10px , 10px 10px , contain , cover " but got "0px 0px , 0px 0px , contain , cover "
+FAIL CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.5) is [40px 40px, 40px 40px, contain, cover] assert_equals: expected "20px 20px , 20px 20px , contain , cover " but got "40px 40px , 40px 40px , contain , cover "
+FAIL CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (0.75) is [40px 40px, 40px 40px, contain, cover] assert_equals: expected "30px 30px , 30px 30px , contain , cover " but got "40px 40px , 40px 40px , contain , cover "
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1) is [40px 40px, 40px 40px, contain, cover] 
+FAIL CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, contain, cover] at (1.25) is [40px 40px, 40px 40px, contain, cover] assert_equals: expected "50px 50px , 50px 50px , contain , cover " but got "40px 40px , 40px 40px , contain , cover "
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (-0.3) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (0) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (0.3) is [0px 0px, 0px 0px, contain, cover] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (0.5) is [20px 20px, 20px 20px, cover, contain] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (0.6) is [20px 20px, 20px 20px, cover, contain] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (1) is [20px 20px, 20px 20px, cover, contain] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, contain, cover] to [20px 20px, 20px 20px, cover, contain] at (1.5) is [20px 20px, 20px 20px, cover, contain] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.25) is [5px 5px, 10px 10px, 15px 15px, 25px 25px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.5) is [10px 10px, 20px 20px, 30px 30px, 50px 50px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.75) is [15px 15px, 30px 30px, 45px 45px, 75px 75px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1) is [20px 20px, 40px 40px, 60px 60px, 100px 100px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (1.25) is [25px 25px, 50px 50px, 75px 75px, 125px 125px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (-0.25) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (0) is [0px 0px, 0px 0px, 0px 0px, 0px 0px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (0.25) is [20px 20px, 20px 20px, 20px 20px, 20px 20px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (0.5) is [40px 40px, 40px 40px, 40px 40px, 40px 40px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (0.75) is [60px 60px, 60px 60px, 60px 60px, 60px 60px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (1) is [80px 80px, 80px 80px, 80px 80px, 80px 80px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px] to [80px 80px] at (1.25) is [100px 100px, 100px 100px, 100px 100px, 100px 100px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (-0.25) is [0px 0px, 80px 0px, 0px 0px, 90px 0px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0) is [0px 0px, 80px 0px, 0px 0px, 80px 0px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.25) is [10px 10px, 80px 20px, 0px 20px, 70px 10px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.5) is [20px 20px, 80px 40px, 0px 40px, 60px 20px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.75) is [30px 30px, 80px 60px, 0px 60px, 50px 30px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1) is [40px 40px, 80px 80px, 0px 80px, 40px 40px] 
+PASS CSS Animations: property <-webkit-mask-size> from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (1.25) is [50px 50px, 80px 100px, 0px 100px, 30px 50px] 
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/animations/interpolation/webkit-mask-size-interpolation.html b/third_party/WebKit/LayoutTests/animations/interpolation/webkit-mask-size-interpolation.html
index 839a909..bc31d9b 100644
--- a/third_party/WebKit/LayoutTests/animations/interpolation/webkit-mask-size-interpolation.html
+++ b/third_party/WebKit/LayoutTests/animations/interpolation/webkit-mask-size-interpolation.html
@@ -67,11 +67,19 @@
 });
 
 // Matched keywords in size value list.
-assertNoInterpolation({
+assertInterpolation({
   property: '-webkit-mask-size',
   from: '0px 0px, 0px 0px, contain, cover',
-  to: '20px 20px, 20px 20px, contain, cover',
-});
+  to: '40px 40px, 40px 40px, contain, cover',
+}, [
+  {at: -0.25, is: ' 0px  0px,  0px  0px, contain, cover'},
+  {at: 0, is:     ' 0px  0px,  0px  0px, contain, cover'},
+  {at: 0.25, is:  '10px 10px, 10px 10px, contain, cover'},
+  {at: 0.5, is:   '20px 20px, 20px 20px, contain, cover'},
+  {at: 0.75, is:  '30px 30px, 30px 30px, contain, cover'},
+  {at: 1, is:     '40px 40px, 40px 40px, contain, cover'},
+  {at: 1.25, is:  '50px 50px, 50px 50px, contain, cover'},
+]);
 
 // Mismatched keywords in size value list.
 assertNoInterpolation({
diff --git a/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h b/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h
index 8ff14ad..eeb4ad7 100644
--- a/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h
+++ b/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h
@@ -59,7 +59,7 @@
         return defaultInterpolateTo(this, value, fraction);
     }
 
-    bool usesDefaultInterpolationWith(const AnimatableValue*) const override { return true; }
+    bool usesDefaultInterpolationWith(const AnimatableValue*) const override;
 
 private:
     explicit AnimatableUnknown(CSSValue* value)
@@ -81,6 +81,12 @@
     return m_value == unknown->m_value || m_value->equals(*unknown->m_value);
 }
 
+inline bool AnimatableUnknown::usesDefaultInterpolationWith(const AnimatableValue* value) const
+{
+    const AnimatableUnknown& unknown = toAnimatableUnknown(*value);
+    return !m_value->equals(*unknown.m_value);
+}
+
 } // namespace blink
 
 #endif // AnimatableUnknown_h