diff --git a/core/fxcrt/bytestring.h b/core/fxcrt/bytestring.h
index 2a2092d..c6ba395 100644
--- a/core/fxcrt/bytestring.h
+++ b/core/fxcrt/bytestring.h
@@ -8,6 +8,7 @@
 #define CORE_FXCRT_BYTESTRING_H_
 
 #include <stdarg.h>
+#include <stddef.h>
 
 #include <functional>
 #include <iosfwd>
@@ -287,7 +288,7 @@
 
 template <>
 struct hash<ByteString> {
-  std::size_t operator()(const ByteString& str) const {
+  size_t operator()(const ByteString& str) const {
     return FX_HashCode_GetA(str.AsStringView());
   }
 };
diff --git a/core/fxcrt/widestring.h b/core/fxcrt/widestring.h
index 2c40b1f..affd267 100644
--- a/core/fxcrt/widestring.h
+++ b/core/fxcrt/widestring.h
@@ -8,6 +8,7 @@
 #define CORE_FXCRT_WIDESTRING_H_
 
 #include <stdarg.h>
+#include <stddef.h>
 
 #include <functional>
 #include <iosfwd>
@@ -307,7 +308,7 @@
 
 template <>
 struct hash<WideString> {
-  std::size_t operator()(const WideString& str) const {
+  size_t operator()(const WideString& str) const {
     return FX_HashCode_GetW(str.AsStringView());
   }
 };
diff --git a/testing/fuzzers/pdfium_fuzzer_helper.cc b/testing/fuzzers/pdfium_fuzzer_helper.cc
index 397c5c5..56e8c57 100644
--- a/testing/fuzzers/pdfium_fuzzer_helper.cc
+++ b/testing/fuzzers/pdfium_fuzzer_helper.cc
@@ -94,7 +94,7 @@
 std::pair<int, int> GetRenderingAndFormFlagFromData(const char* data,
                                                     size_t len) {
   std::string data_str = std::string(data, len);
-  std::size_t data_hash = std::hash<std::string>()(data_str);
+  size_t data_hash = std::hash<std::string>()(data_str);
 
   // The largest flag value is 0x4FFF, so just take 16 bits from |data_hash| at
   // a time.
diff --git a/testing/utils/path_service.cpp b/testing/utils/path_service.cpp
index cf9f61e..d14654c 100644
--- a/testing/utils/path_service.cpp
+++ b/testing/utils/path_service.cpp
@@ -4,6 +4,8 @@
 
 #include "testing/utils/path_service.h"
 
+#include <stddef.h>
+
 #ifdef _WIN32
 #include <Windows.h>
 #elif defined(__APPLE__)
@@ -90,10 +92,10 @@
 #endif  // _WIN32
 
   // Get the directory path.
-  std::size_t pos = path->size() - 1;
+  size_t pos = path->size() - 1;
   if (EndsWithSeparator(*path))
     pos--;
-  std::size_t found = path->find_last_of(PATH_SEPARATOR, pos);
+  size_t found = path->find_last_of(PATH_SEPARATOR, pos);
   if (found == std::string::npos)
     return false;
   path->resize(found);
