diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index 4601249..ed7dc7d 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,26 @@
+2022-01-26  Don Olmstead  <don.olmstead@sony.com>
+
+        Share TestRunner::installFakeHelvetica implementation
+        https://bugs.webkit.org/show_bug.cgi?id=235657
+
+        Reviewed by Darin Adler.
+
+        The implementation of TestRunner::installFakeHelvetica was the same for each port. It just
+        calls into the WTR::installFakeHelvetica function defined in ActivateFonts.h which does the
+        actual work of installing the font.
+
+        * WebKitTestRunner/InjectedBundle/ActivateFonts.h:
+        * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
+        (WTR::TestRunner::installFakeHelvetica):
+        * WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:
+        (WTR::TestRunner::installFakeHelvetica): Deleted.
+        * WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:
+        (WTR::TestRunner::installFakeHelvetica): Deleted.
+        * WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp:
+        (WTR::TestRunner::installFakeHelvetica): Deleted.
+        * WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp:
+        (WTR::TestRunner::installFakeHelvetica): Deleted.
+
 2022-01-25  Jonathan Bedard  <jbedard@apple.com>
 
         [EWS] Support pull requests in built product management
diff --git a/Tools/WebKitTestRunner/InjectedBundle/ActivateFonts.h b/Tools/WebKitTestRunner/InjectedBundle/ActivateFonts.h
index 5a0ae2c..43100b9 100644
--- a/Tools/WebKitTestRunner/InjectedBundle/ActivateFonts.h
+++ b/Tools/WebKitTestRunner/InjectedBundle/ActivateFonts.h
@@ -23,8 +23,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef ActivateFonts_h
-#define ActivateFonts_h
+#pragma once
 
 namespace WTR {
 
@@ -33,5 +32,3 @@
 void uninstallFakeHelvetica();
 
 } // namespace WTR
-
-#endif // ActivateFonts_h
diff --git a/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp b/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
index 23c5093..781b816 100644
--- a/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
+++ b/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
@@ -26,6 +26,7 @@
 #include "config.h"
 #include "TestRunner.h"
 
+#include "ActivateFonts.h"
 #include "DictionaryFunctions.h"
 #include "InjectedBundle.h"
 #include "InjectedBundlePage.h"
@@ -1984,6 +1985,11 @@
     callTestRunnerCallback(GetApplicationManifestCallbackID);
 }
 
+void TestRunner::installFakeHelvetica(JSStringRef configuration)
+{
+    WTR::installFakeHelvetica(toWK(configuration).get());
+}
+
 void TestRunner::performCustomMenuAction()
 {
     callTestRunnerCallback(CustomMenuActionCallbackID);
diff --git a/Tools/WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp b/Tools/WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp
index 81b2158..159a00d 100644
--- a/Tools/WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp
+++ b/Tools/WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp
@@ -27,7 +27,6 @@
 #include "config.h"
 #include "TestRunner.h"
 
-#include "ActivateFonts.h"
 #include "InjectedBundle.h"
 #include "InjectedBundleUtilities.h"
 #include <glib.h>
@@ -59,9 +58,4 @@
     return JSStringCreateWithUTF8CString("resource:///org/webkit/inspector/UserInterface/TestStub.html");
 }
 
-void TestRunner::installFakeHelvetica(JSStringRef configuration)
-{
-    WTR::installFakeHelvetica(toWK(configuration).get());
-}
-
 } // namespace WTR
diff --git a/Tools/WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm b/Tools/WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm
index adbb4b7..de0d600 100644
--- a/Tools/WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm
+++ b/Tools/WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm
@@ -26,7 +26,6 @@
 #import "config.h"
 #import "TestRunner.h"
 
-#import "ActivateFonts.h"
 #import "InjectedBundle.h"
 #import <JavaScriptCore/JSStringRefCF.h>
 
@@ -54,9 +53,4 @@
 #endif
 }
 
-void TestRunner::installFakeHelvetica(JSStringRef configuration)
-{
-    WTR::installFakeHelvetica(toWK(configuration).get());
-}
-
 } // namespace WTR
diff --git a/Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp b/Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp
index 79dc9fd..6d868ce 100644
--- a/Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp
+++ b/Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp
@@ -26,7 +26,6 @@
 #include "config.h"
 #include "TestRunner.h"
 
-#include "ActivateFonts.h"
 #include <shlwapi.h>
 #include <wininet.h>
 
@@ -64,9 +63,4 @@
 {
 }
 
-void TestRunner::installFakeHelvetica(JSStringRef configuration)
-{
-    WTR::installFakeHelvetica(toWK(configuration).get());
-}
-
 } // namespace WTR
diff --git a/Tools/WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp b/Tools/WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp
index 793b59b..9179ef8 100644
--- a/Tools/WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp
+++ b/Tools/WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp
@@ -26,8 +26,6 @@
 #include "config.h"
 #include "TestRunner.h"
 
-#include "ActivateFonts.h"
-
 namespace WTR {
 
 JSRetainPtr<JSStringRef> TestRunner::pathToLocalResource(JSStringRef)
@@ -44,9 +42,4 @@
 {
 }
 
-void TestRunner::installFakeHelvetica(JSStringRef configuration)
-{
-    WTR::installFakeHelvetica(toWK(configuration).get());
-}
-
 } // namespace WTR
