diff --git a/third_party/blink/renderer/platform/geometry/length_functions.cc b/third_party/blink/renderer/platform/geometry/length_functions.cc
index b61d48f..788a86a 100644
--- a/third_party/blink/renderer/platform/geometry/length_functions.cc
+++ b/third_party/blink/renderer/platform/geometry/length_functions.cc
@@ -89,14 +89,6 @@
   return LayoutUnit();
 }
 
-LayoutUnit RoundedMinimumValueForLength(const Length& length,
-                                        LayoutUnit maximum_value) {
-  if (length.GetType() == kPercent)
-    return static_cast<LayoutUnit>(
-        round(maximum_value * length.Percent() / 100.0f));
-  return MinimumValueForLength(length, maximum_value);
-}
-
 LayoutUnit ValueForLength(const Length& length, LayoutUnit maximum_value) {
   switch (length.GetType()) {
     case kFixed:
diff --git a/third_party/blink/renderer/platform/geometry/length_functions.h b/third_party/blink/renderer/platform/geometry/length_functions.h
index 1321921..e72752c 100644
--- a/third_party/blink/renderer/platform/geometry/length_functions.h
+++ b/third_party/blink/renderer/platform/geometry/length_functions.h
@@ -40,8 +40,6 @@
 PLATFORM_EXPORT float FloatValueForLength(const Length&, float maximum_value);
 PLATFORM_EXPORT LayoutUnit MinimumValueForLength(const Length&,
                                                  LayoutUnit maximum_value);
-PLATFORM_EXPORT LayoutUnit
-RoundedMinimumValueForLength(const Length&, LayoutUnit maximum_value);
 PLATFORM_EXPORT LayoutUnit ValueForLength(const Length&,
                                           LayoutUnit maximum_value);
 PLATFORM_EXPORT FloatSize FloatSizeForLengthSize(const LengthSize&,
