diff --git a/AUTHORS b/AUTHORS
index ee85ffcb7c6d5..b8c2d344a40c9 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -627,6 +627,7 @@ Md. Hasanur Rashid <hasanur.r@samsung.com>
 Md Jobed Hossain <jrony15@gmail.com>
 Md Sami Uddin <md.sami@samsung.com>
 Michael Cirone <mikecirone@gmail.com>
+Michael Forney <mforney@mforney.org>
 Michael Gilbert <floppymaster@gmail.com>
 Michael Lopez <lopes92290@gmail.com>
 Michael Morrison <codebythepound@gmail.com>
diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
index 8e121b59f3875..8955e051acdf7 100755
--- a/tools/gn/bootstrap/bootstrap.py
+++ b/tools/gn/bootstrap/bootstrap.py
@@ -70,6 +70,7 @@ def main(argv):
   out_dir = os.path.join(SRC_ROOT, build_rel)
   gn_path = options.output or os.path.join(out_dir, 'gn')
   gn_build_dir = os.path.join(out_dir, 'gn_build')
+  ninja_binary = os.environ.get('NINJA', 'ninja')
 
   # TODO(thomasanderson): Remove this once Ubuntu Trusty reaches EOL, or when
   # Chromium's infrastructure is upgraded from Trusty to Xenial, whichever comes
@@ -90,7 +91,7 @@ def main(argv):
               os.environ.get('CFLAGS', '').split() +
               os.environ.get('CXXFLAGS', '').split()),
       ]) + '\n')
-    subprocess.check_call(['ninja', '-C', libcxx_dir])
+    subprocess.check_call([ninja_binary, '-C', libcxx_dir])
     shutil.copy2(os.path.join(gn_build_dir, 'libc++.gn.so'), out_dir)
 
     def append_to_env(var, vals):
@@ -120,7 +121,7 @@ def main(argv):
   shutil.copy2(
       os.path.join(BOOTSTRAP_DIR, 'last_commit_position.h'), gn_build_dir)
   subprocess.check_call(
-      ['ninja', '-C', gn_build_dir, 'gn', '-w', 'dupbuild=err'])
+      [ninja_binary, '-C', gn_build_dir, '-w', 'dupbuild=err', 'gn'])
   shutil.copy2(os.path.join(gn_build_dir, 'gn'), gn_path)
 
   if not options.skip_generate_buildfiles: