diff --git a/tools/gn/filesystem_utils.cc b/tools/gn/filesystem_utils.cc
index 325cfc6..67bb6e2 100644
--- a/tools/gn/filesystem_utils.cc
+++ b/tools/gn/filesystem_utils.cc
@@ -748,7 +748,7 @@
     const std::string& build_dir =
         settings->build_settings()->build_dir().value();
 
-    if (StartsWithASCII(source_dir.value(), build_dir, true)) {
+    if (base::StartsWithASCII(source_dir.value(), build_dir, true)) {
       size_t build_dir_size = build_dir.size();
       result.value().append(&source_dir.value()[build_dir_size],
                             source_dir.value().size() - build_dir_size);
diff --git a/tools/gn/header_checker.cc b/tools/gn/header_checker.cc
index 665be94..d055243 100644
--- a/tools/gn/header_checker.cc
+++ b/tools/gn/header_checker.cc
@@ -37,7 +37,7 @@
 SourceFile RemoveRootGenDirFromFile(const Target* target,
                                     const SourceFile& file) {
   const SourceDir& gen = target->settings()->toolchain_gen_dir();
-  if (!gen.is_null() && StartsWithASCII(file.value(), gen.value(), true))
+  if (!gen.is_null() && base::StartsWithASCII(file.value(), gen.value(), true))
     return SourceFile("//" + file.value().substr(gen.value().size()));
   return file;
 }
diff --git a/tools/gn/input_conversion.cc b/tools/gn/input_conversion.cc
index 3d9d355..e4c20a0 100644
--- a/tools/gn/input_conversion.cc
+++ b/tools/gn/input_conversion.cc
@@ -116,7 +116,7 @@
     return Value();  // Empty string means discard the result.
 
   const char kTrimPrefix[] = "trim ";
-  if (StartsWithASCII(input_conversion, kTrimPrefix, true)) {
+  if (base::StartsWithASCII(input_conversion, kTrimPrefix, true)) {
     std::string trimmed;
     base::TrimWhitespaceASCII(input, base::TRIM_ALL, &trimmed);
 
diff --git a/tools/gn/target.cc b/tools/gn/target.cc
index 2ea2859..0b189e6 100644
--- a/tools/gn/target.cc
+++ b/tools/gn/target.cc
@@ -217,7 +217,7 @@
     const Tool* tool = toolchain_->GetToolForTargetFinalOutput(this);
     const std::string& prefix = tool->output_prefix();
     // Only add the prefix if the name doesn't already have it.
-    if (!StartsWithASCII(name, prefix, true))
+    if (!base::StartsWithASCII(name, prefix, true))
       result = prefix;
   }
 
