diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 180fd79..81217e6 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2021-11-26  Sam Weinig  <weinig@apple.com>
+
+        Typo in ColorConversion code: converColorComponents
+        https://bugs.webkit.org/show_bug.cgi?id=233497
+
+        Reviewed by Ryosuke Niwa.
+
+        Fix typo in ColorConversion code. converColorComponents -> convertColorComponents
+
+        * platform/graphics/Color.cpp:
+        (WebCore::Color::toColorComponentsInColorSpace const):
+        * platform/graphics/ColorConversion.cpp:
+        (WebCore::convertColorComponents):
+        (WebCore::converColorComponents): Deleted.
+        * platform/graphics/ColorConversion.h:
+
 2021-11-26  Said Abou-Hallawa  <said@apple.com>
 
         [GPU Process] Make FilterEffects create FilterEffectAppliers which will be used by FilterEffect::apply()
diff --git a/Source/WebCore/platform/graphics/Color.cpp b/Source/WebCore/platform/graphics/Color.cpp
index 85e6d79..eea442f 100644
--- a/Source/WebCore/platform/graphics/Color.cpp
+++ b/Source/WebCore/platform/graphics/Color.cpp
@@ -165,13 +165,13 @@
 ColorComponents<float, 4> Color::toColorComponentsInColorSpace(ColorSpace outputColorSpace) const
 {
     auto [inputColorSpace, components] = colorSpaceAndComponents();
-    return converColorComponents(inputColorSpace, components, outputColorSpace);
+    return convertColorComponents(inputColorSpace, components, outputColorSpace);
 }
 
 ColorComponents<float, 4> Color::toColorComponentsInColorSpace(const DestinationColorSpace& outputColorSpace) const
 {
     auto [inputColorSpace, components] = colorSpaceAndComponents();
-    return converColorComponents(inputColorSpace, components, outputColorSpace);
+    return convertColorComponents(inputColorSpace, components, outputColorSpace);
 }
 
 std::pair<ColorSpace, ColorComponents<float, 4>> Color::colorSpaceAndComponents() const
diff --git a/Source/WebCore/platform/graphics/ColorConversion.cpp b/Source/WebCore/platform/graphics/ColorConversion.cpp
index 68fc644..a6a78c5 100644
--- a/Source/WebCore/platform/graphics/ColorConversion.cpp
+++ b/Source/WebCore/platform/graphics/ColorConversion.cpp
@@ -275,7 +275,7 @@
 
 // MARK: Conversion functions for raw color components with associated color spaces.
 
-ColorComponents<float, 4> converColorComponents(ColorSpace inputColorSpace, ColorComponents<float, 4> inputColorComponents, ColorSpace outputColorSpace)
+ColorComponents<float, 4> convertColorComponents(ColorSpace inputColorSpace, ColorComponents<float, 4> inputColorComponents, ColorSpace outputColorSpace)
 {
     return callWithColorType(inputColorComponents, inputColorSpace, [outputColorSpace] (const auto& inputColor) {
         switch (outputColorSpace) {
@@ -306,7 +306,7 @@
     });
 }
 
-ColorComponents<float, 4> converColorComponents(ColorSpace inputColorSpace, ColorComponents<float, 4> inputColorComponents, const DestinationColorSpace& outputColorSpace)
+ColorComponents<float, 4> convertColorComponents(ColorSpace inputColorSpace, ColorComponents<float, 4> inputColorComponents, const DestinationColorSpace& outputColorSpace)
 {
 #if USE(CG)
     return platformConvertColorComponents(inputColorSpace, inputColorComponents, outputColorSpace);
diff --git a/Source/WebCore/platform/graphics/ColorConversion.h b/Source/WebCore/platform/graphics/ColorConversion.h
index d2c99e3..0e621fc 100644
--- a/Source/WebCore/platform/graphics/ColorConversion.h
+++ b/Source/WebCore/platform/graphics/ColorConversion.h
@@ -37,8 +37,8 @@
 template<typename Output, typename Input> Output convertColor(const Input& color);
 
 // Conversion functions for raw color components with associated color spaces.
-ColorComponents<float, 4> converColorComponents(ColorSpace inputColorSpace, ColorComponents<float, 4> inputColorComponents, ColorSpace outputColorSpace);
-ColorComponents<float, 4> converColorComponents(ColorSpace inputColorSpace, ColorComponents<float, 4> inputColorComponents, const DestinationColorSpace& outputColorSpace);
+ColorComponents<float, 4> convertColorComponents(ColorSpace inputColorSpace, ColorComponents<float, 4> inputColorComponents, ColorSpace outputColorSpace);
+ColorComponents<float, 4> convertColorComponents(ColorSpace inputColorSpace, ColorComponents<float, 4> inputColorComponents, const DestinationColorSpace& outputColorSpace);
 
 
 // All color types, other than XYZA or those inheriting from RGBType, must implement
