Import cobalt 25.master.0.1034729
diff --git a/ui/gfx/interpolated_transform.cc b/ui/gfx/interpolated_transform.cc
index 6277fa4..88da97f 100644
--- a/ui/gfx/interpolated_transform.cc
+++ b/ui/gfx/interpolated_transform.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2012 The Chromium Authors
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -9,6 +9,7 @@
 #include "base/check.h"
 #include "base/numerics/safe_conversions.h"
 #include "ui/gfx/animation/tween.h"
+#include "ui/gfx/geometry/transform_util.h"
 
 namespace {
 
@@ -29,8 +30,6 @@
   if (!IsMultipleOfNinetyDegrees(degrees) || !rotation)
     return false;
 
-  gfx::Transform transform;
-  skia::Matrix44& m = transform.matrix();
   float degrees_by_ninety = degrees / 90.0f;
 
   int n = base::ClampRound(degrees_by_ninety);
@@ -40,21 +39,15 @@
     n += 4;
 
   // n should now be in the range [0, 3]
-  if (n == 1) {
-    m.set3x3( 0,  1,  0,
-             -1,  0,  0,
-              0,  0,  1);
+  if (n == 0) {
+    rotation->MakeIdentity();
+  } else if (n == 1) {
+    *rotation = gfx::Transform::Make90degRotation();
   } else if (n == 2) {
-    m.set3x3(-1,  0,  0,
-              0, -1,  0,
-              0,  0,  1);
+    *rotation = gfx::Transform::Make180degRotation();
   } else if (n == 3) {
-    m.set3x3( 0, -1,  0,
-              1,  0,  0,
-              0,  0,  1);
+    *rotation = gfx::Transform::Make270degRotation();
   }
-
-  *rotation = transform;
   return true;
 }
 
@@ -86,7 +79,7 @@
     t = 1.0f - t;
   gfx::Transform result = InterpolateButDoNotCompose(t);
   if (child_.get()) {
-    result.ConcatTransform(child_->Interpolate(t));
+    result.PostConcat(child_->Interpolate(t));
   }
   return result;
 }
@@ -359,15 +352,14 @@
 InterpolatedMatrixTransform::InterpolateButDoNotCompose(float t) const {
   gfx::DecomposedTransform blended =
       gfx::BlendDecomposedTransforms(end_decomp_, start_decomp_, t);
-  return gfx::ComposeTransform(blended);
+  return gfx::Transform::Compose(blended);
 }
 
 void InterpolatedMatrixTransform::Init(const gfx::Transform& start_transform,
                                        const gfx::Transform& end_transform) {
-  bool success = gfx::DecomposeTransform(&start_decomp_, start_transform);
-  DCHECK(success);
-  success = gfx::DecomposeTransform(&end_decomp_, end_transform);
-  DCHECK(success);
+  // Both transforms should be decomposible.
+  start_decomp_ = *start_transform.Decompose();
+  end_decomp_ = *end_transform.Decompose();
 }
 
 } // namespace ui