tools/README.md
This document provides a high-level guide to the scripts and utilities in the
//tools directory. Its purpose is to improve the discoverability of these
tools for both human developers and AI assistants.
Many tools have their own README.md files with more detailed information.
gn/: Contains helper scripts for the GN meta-build system.grit/: The Google Resource and Internationalization Tool. Used for
processing .grd files, which contain strings, images, and other resources
that are compiled into the binary. See grit/README.md for details.json_schema_compiler/: A tool that takes a JSON schema as input and
generates C++ classes for serialization and deserialization.mb/: The Meta-Build wrapper. A Python script that wraps GN argument
generation and Ninja invocation for different configurations. See the
user_guide.md for more.pgo/: Tools for Profile-Guided Optimization.clang/: Contains scripts for managing and using the Clang compiler and
its related tools, such as clang-format and clang-tidy.checklicenses/: A script to check that all third-party code has an
appropriate license. See licenses/README.md.pylint/: Scripts for running Python lint checks.code_analysis/: A directory for helper scripts that perform static
analysis on the codebase.
find_mojo_implementations.py: A script to find the C++ classes that
implement a given Mojo interface.uberblame.py: A powerful tool for assigning blame for code changes.bisect/: Home of bisect-builds.py, a powerful script for
automatically bisecting a regression by downloading pre-built revisions of
Chrome.perf/: The primary location for performance testing tools and test
suites. This is a large and complex area of the codebase.run-swarmed.py: A script for running tests on the Swarming distributed
testing infrastructure.flakiness/: Tools for dealing with test flakiness. See
flakiness/README.md.depot_tools, which is
not in this directory. However, some in-tree tools exist.crates/: Scripts for managing third-party Rust libraries (crates) from
crates.io.profiling/: Contains various scripts for profiling and analyzing
performance, including heap and CPU profilers.memory/: Tools specifically for memory analysis, such as scripts for
investigating memory leaks.binary_size/: Scripts for analyzing and diagnosing the binary size of
Chrome.tracing/: Scripts for analyzing performance traces. See
tracing/README.md.gdb/: GDB-related tools and scripts. See gdb/README.md.valgrind/: Valgrind-related tools and suppressions. See
valgrind/README.md.symsrc/: Tools for managing symbols and source indexing. See
symsrc/README.chromium.metrics/: Tools for UMA histograms and other metrics. See
metrics/histograms/README.md and
metrics/README.md.traffic_annotation/: Tools for annotating network traffic. See
traffic_annotation/README.md.style_variable_generator/: Tools for generating C++ files from CSS
variables. See
style_variable_generator/README.md.typescript/: Tools for working with TypeScript in WebUI.cr/: A wrapper for many common developer commands. See
cr/README.android/: Tools specific to the Android build and development process.chromeos/: Tools specific to ChromeOS development.fuchsia/: Tools specific to Fuchsia development.mac/: Tools specific to macOS development.win/: Tools specific to Windows development.