tree: a03592236213f72fe66dab229a57f7edaf3ca653 [path history] [tgz]
  1. accessibility/
  2. aggregation_service/
  3. android/
  4. bedrock/
  5. binary_size/
  6. bisect/
  7. bisect_repackage/
  8. captured_sites/
  9. cast3p/
  10. cfi/
  11. check_ecs_deps/
  12. checkbins/
  13. checklicenses/
  14. checkperms/
  15. checkteamtags/
  16. chrome_extensions/
  17. chromeos/
  18. clang/
  19. code_cache_generator/
  20. code_coverage/
  21. codeql/
  22. compile_test/
  23. cr/
  24. crates/
  25. crbug/
  26. cros/
  27. cygprofile/
  28. determinism/
  29. disable_tests/
  30. dromaeo_benchmark_runner/
  31. dump_process_memory/
  32. emacs/
  33. find_runtime_symbols/
  34. flags/
  35. flakiness/
  36. fuchsia/
  37. gdb/
  38. generate_library_loader/
  39. generate_shim_headers/
  40. generate_stubs/
  41. get_asan_chrome/
  42. get_swarming_logs/
  43. git/
  44. gn/
  45. grd/
  46. grit/
  47. gritsettings/
  48. idl_parser/
  49. imagediff/
  50. infra/
  51. ininja/
  52. interactive_ui_tests/
  53. ipc_fuzzer/
  54. jj/
  55. json_comment_eater/
  56. json_data_generator/
  57. json_schema_compiler/
  58. json_to_struct/
  59. l10n/
  60. licenses/
  61. linux/
  62. lldb/
  63. mac/
  64. mb/
  65. md_browser/
  66. media_engagement_preload/
  67. memory/
  68. metrics/
  69. msan/
  70. nix/
  71. nocompile/
  72. oobe/
  73. origin_trials/
  74. perf/
  75. perfbot-analysis/
  76. pgo/
  77. pixel_test/
  78. polymer/
  79. privacy_budget/
  80. profiling/
  81. protoc_wrapper/
  82. python/
  83. real_world_impact/
  84. resources/
  85. rust/
  86. site_compare/
  87. strict_enum_value_checker/
  88. style_variable_generator/
  89. sublime/
  90. symsrc/
  91. test_selection/
  92. traceline/
  93. tracing/
  94. traffic_annotation/
  95. translation/
  96. typescript/
  97. ubsan/
  98. usb_gadget/
  99. utr/
  100. v8_context_snapshot/
  101. valgrind/
  102. variations/
  103. vim/
  104. visual_debugger/
  105. vscode/
  106. warning_analysis/
  107. web_bluetooth/
  108. web_dev_style/
  109. whats_new/
  110. win/
  111. .gitignore
  112. .style.yapf
  113. add_header.py
  114. add_header_test.py
  115. apply_cpplint_header_guard.py
  116. auto-nav.py
  117. autotest.py
  118. autotest_test.py
  119. bash-completion
  120. bisect-builds.py
  121. bisect_test.py
  122. boilerplate.py
  123. buildstate.bat
  124. buildstate.py
  125. check_git_config.py
  126. check_grd_for_unused_strings.py
  127. clang-format-js
  128. DEPS
  129. diagnose-me.py
  130. DIR_METADATA
  131. download_optimization_profile.py
  132. hresult_to_enum.py
  133. include_tracer.py
  134. ipc_messages_log.py
  135. make_gtest_filter.py
  136. make_gtest_filter_test.py
  137. mojo_messages_log.py
  138. multi_process_rss.py
  139. omahaproxy.py
  140. OWNERS
  141. perry.py
  142. PRESUBMIT.py
  143. README.md
  144. remove_stale_files.py
  145. remove_stale_pyc_files.py
  146. roll_webgl_conformance.py
  147. run-swarmed.py
  148. sample_clang_tidy_results.py
  149. sort_sources.py
  150. uberblame.py
  151. unused-symbols-report.py
  152. update_pgo_profiles.py
  153. yes_no.py
tools/README.md

Overview of the //tools Directory

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.

Tool Categories

Build & Compilation

  • 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.

Code Analysis & Formatting

  • 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.

Testing & Test Management

  • 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.

Dependency Management

  • Note: Most dependency management is handled by 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.

Performance Analysis & Debugging

  • 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 & Telemetry

WebUI

  • 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.

Developer Workflow

  • cr/: A wrapper for many common developer commands. See cr/README.

Platform-Specific Utilities

  • 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.