diff --git a/tools/gn/command_desc.cc b/tools/gn/command_desc.cc
index 1de9fbb..8e4ebd7 100644
--- a/tools/gn/command_desc.cc
+++ b/tools/gn/command_desc.cc
@@ -85,7 +85,7 @@
   const base::ListValue* list;
   if (value->GetAsList(&list)) {
     if (list->empty()) {
-      base::StringValue str("(no visibility)");
+      base::Value str("(no visibility)");
       DefaultHandler(name, &str);
     } else {
       DefaultHandler(name, value);
@@ -97,7 +97,7 @@
   std::string p;
   if (value->GetAsString(&p)) {
     if (p == "*") {
-      base::StringValue str("[All headers listed in the sources are public.]");
+      base::Value str("[All headers listed in the sources are public.]");
       DefaultHandler(name, &str);
       return;
     }
diff --git a/tools/gn/desc_builder.cc b/tools/gn/desc_builder.cc
index a1a5710..c04fad6 100644
--- a/tools/gn/desc_builder.cc
+++ b/tools/gn/desc_builder.cc
@@ -123,17 +123,17 @@
 
   ValuePtr RenderValue(const std::string& s, bool optional = false) {
     return (s.empty() && optional) ? base::Value::CreateNullValue()
-                                   : ValuePtr(new base::StringValue(s));
+                                   : ValuePtr(new base::Value(s));
   }
 
   ValuePtr RenderValue(const SourceDir& d) {
     return d.is_null() ? base::Value::CreateNullValue()
-                       : ValuePtr(new base::StringValue(FormatSourceDir(d)));
+                       : ValuePtr(new base::Value(FormatSourceDir(d)));
   }
 
   ValuePtr RenderValue(const SourceFile& f) {
     return f.is_null() ? base::Value::CreateNullValue()
-                       : ValuePtr(new base::StringValue(f.value()));
+                       : ValuePtr(new base::Value(f.value()));
   }
 
   ValuePtr RenderValue(const LibFile& lib) {
@@ -679,7 +679,7 @@
         // Indent string values in blame mode
         if (blame_ && rendered->GetAsString(&str)) {
           str = "  " + str;
-          rendered = base::MakeUnique<base::StringValue>(str);
+          rendered = base::MakeUnique<base::Value>(str);
         }
         res->Append(std::move(rendered));
       }
