blob: 841aa7f623d0b87f8a7a502148d5234293308c52 [file] [log] [blame] [view]
nodir469b2a12015-09-14 16:20:211# Chromium docs
2
pwnall3f918382016-11-16 17:22:123This directory contains chromium project documentation in
Vincent Scheibde853a02017-07-13 23:31:184[Gitiles-flavored Markdown]. It is automatically [rendered by Gitiles].
5
6[Gitiles-flavored Markdown]: https://gerrit.googlesource.com/gitiles/+/master/Documentation/markdown.md
7[rendered by Gitiles]: https://chromium.googlesource.com/chromium/src/+/master/docs/
nodir469b2a12015-09-14 16:20:218
justincarlson90a1c8c2017-04-14 00:34:259If you add new documents, please also add a link to them in the Document Index
10below.
11
12[TOC]
13
Vincent Scheib394b907a2017-07-14 22:30:0614## Creating Documentation
nodir469b2a12015-09-14 16:20:2115
Vincent Scheibde853a02017-07-13 23:31:1816Markdown documents must follow the
17[style guide](https://github.com/google/styleguide/tree/gh-pages/docguide).
nodir469b2a12015-09-14 16:20:2118
Vincent Scheib394b907a2017-07-14 22:30:0619### Preview local changes using [md_browser](../tools/md_browser/):
nodir6efa4992015-12-20 00:54:3320
21```bash
22# in chromium checkout
agabled40b9542016-05-11 01:15:0623./tools/md_browser/md_browser.py
nodir6efa4992015-12-20 00:54:3324```
25
Vincent Scheib394b907a2017-07-14 22:30:0626This is only an estimate. The **gitiles** view may differ.
nodir6efa4992015-12-20 00:54:3327
Vincent Scheib394b907a2017-07-14 22:30:0628### Review changes online with gerrit's links to gitiles:
29
Mathieu Perreault339625382017-07-29 00:32:58301. Upload a patch to gerrit, or receive a review request.
Vincent Scheib394b907a2017-07-14 22:30:0631 e.g. https://chromium-review.googlesource.com/c/572236
Mathieu Perreault339625382017-07-29 00:32:58322. View a specific .md file.
Vincent Scheib394b907a2017-07-14 22:30:0633 e.g. https://chromium-review.googlesource.com/c/572236/2/docs/README.md
343. Click on **gitiles** link at top of page.
35
36This **gitiles** view is the authoritative view, exactly the same as will be
37used when committed.
nodir6efa4992015-12-20 00:54:3338
justincarlson90a1c8c2017-04-14 00:34:2539## Document Index
40
41### Checking Out and Building
42* [Linux Build Instructions](linux_build_instructions.md) - Linux
43* [Mac Build Instructions](mac_build_instructions.md) - MacOS
44* [Windows Build Instructions](windows_build_instructions.md) - Windows
45* [Android Build Instructions](android_build_instructions.md) - Android target
46 (on a Linux host)
47* [Cast Build Instructions](linux_cast_build_instructions.md) - Cast target
48 (on a Linux host)
49* [Cast for Android Build Instructions](android_cast_build_instructions.md) -
50 Cast for Android (on a Linux host)
Scott Graham6b17c6522018-09-25 20:39:3651* [Fuchsia Build Instructions](fuchsia_build_instructions.md) - Fuchsia target
52 (on a Linux host)
justincarlson90a1c8c2017-04-14 00:34:2553* [iOS Build Instructions](ios/build_instructions.md) - iOS target (on a MacOS
54 host)
Euisang Lim1f253912018-04-30 01:46:3255* [Chrome OS Build Instructions](chromeos_build_instructions.md) - Chrome OS
justincarlson90a1c8c2017-04-14 00:34:2556* [Linux Chromium ARM Recipes](linux_chromium_arm.md) - Recipes for building
57 Chromium for ARM on Linux.
justincarlson90a1c8c2017-04-14 00:34:2558* [Chrome Component Build](component_build.md) - Faster builds using more
59 libraries
60* [Using the BuildRunner](using_build_runner.md) - Scripts that extract build
61 stops from builders and runs them locally on a slave
62* [Cr User Manual](cr_user_manual.md) - Manual for `cr`, a tool that tries to
63 hide some of the tools used for working on Chromium behind an abstraction
64 layer
65
justincarlsonad589ce2017-04-20 17:26:0766### Design Docs
67* See [design/README.md](design/README.md)
68
justincarlson90a1c8c2017-04-14 00:34:2569### Integrated Development Environment (IDE) Set Up Guides
70* [Android Studio](android_studio.md) - Android Studio for Android builds
71* [Eclipse for Android](eclipse.md) - Eclipse for Android
72* [Eclipse for Linux](linux_eclipse_dev.md) - Eclipse for other platforms
73 (This guide was written for Linux, but is probably usable on Windows/MacOS
74 as well)
75* [Qt Creator](qtcreator.md) - Using Qt Creator as an IDE or GUI debugger
76* [Setting up Visual Studio Code](vscode.md) - Visual Studio Code
77* [EMACS Notes](emacs.md) - EMACS commands/styles/tool integrations
78* [Atom](atom.md) - Atom multi-platform code editor
79
80### Git
81* [Git Cookbook](git_cookbook.md) - A collection of git recipes for common
82 tasks
83* [Git Tips](git_tips.md) - More git tips
84
85### Clang
86* [Clang Compiler](clang.md) - General information on the clang compiler, used
87 by default on Mac and Linux
88* [Clang Tool Refactoring](clang_tool_refactoring.md) - Leveraging clang tools
89 to perform refactorings that are AST-aware
90* [The Clang Static Analyzer](clang_static_analyzer.md) - How to enable static
91 analysis at build time
Yuke Liaobb571bd62018-10-31 21:51:5292* [Clang Code Coverage Wrapper](clang_code_coverage_wrapper.md) - Enable Clang
93 code coverage instrumentation for a subset of source files.
justincarlson90a1c8c2017-04-14 00:34:2594* [Writing Clang Plugins](writing_clang_plugins.md) - Don't write a clang
95 plugin, but if you do, read this
96* [Updating Clang](updating_clang.md) - Updating the version of Clang used to
97 build
98* [Using clang-format on Chromium C++ Code](clang_format.md) - Various ways to
99 invoke clang-format on C++ code
100* [Clang Tidy](clang_tidy.md) - Support for the `clang-tidy` tool in Chromium
101* [Updating Clang Format Binaries](updating_clang_format_binaries.md) - How up
102 update the clang-format binaries that come with a checkout of Chromium
103
104### General Development
105* [Code Reviews](code_reviews.md) - Code review requirements and guidelines
Mathieu Perreault339625382017-07-29 00:32:58106* [Respectful Code Reviews](cr_respect.md) - A guide for code reviewers
107* [Respectful Changes](cl_respect.md) - A guide for code authors
Eric Foo6ea4fbd2018-01-17 04:04:50108* [LUCI Migration FAQ](luci_migration_faq.md) - FAQ on Buildbot-to-LUCI
109 builder migration for Chromium
Eric Fooff7b4982017-12-19 01:59:15110* [Tour of Continuous Integration UI](tour_of_luci_ui.md) - A tour of our
Eric Foo6ea4fbd2018-01-17 04:04:50111 the user interface for LUCI, our continuous integration system
erikchenb83e010a2018-10-08 21:34:01112* [Parsing Test Results](parsing_test_results.md) - An introduction for how to
113 understand the results emitted by polygerrit and CI builds.
justincarlson90a1c8c2017-04-14 00:34:25114* [Closure Compilation](closure_compilation.md) - The _Closure_ JavaScript
115 compiler
fdoraybacba4a22017-05-10 21:10:00116* [Threading and Tasks in Chrome](threading_and_tasks.md) - How to run tasks
117 and handle thread safety in Chrome.
justincarlson90a1c8c2017-04-14 00:34:25118* [Callback<> and Bind()](callback.md) - All about Callbacks, Closures, and
119 Bind().
120* [Views Platform Styling](ui/views/platform_style.md) - How views are styled
121 to fit in different native platforms
122* [Tab Helpers](tab_helpers.md) - Using WebContents/WebContentsObserver to add
123 features to browser tabs.
124* [Adding third_party Libraries](adding_to_third_party.md) - How to get code
125 into third_party/
126* [Graphical Debugging Aid for Chromium Views](graphical_debugging_aid_chromium_views.md) -
127 Visualizing view trees during debugging
128* [Bitmap Pipeline](bitmap_pipeline.md) - How bitmaps are moved from the
129 renderer to the screen.
130* [base::Optional](optional.md) - How to use `base::Optional` in C++ code.
131* [Using the Origin Trials Framework](origin_trials_integration.md) - A
132 framework for conditionally enabling experimental APIs for testing.
Jan Krcal02520366d2018-03-07 10:05:18133* [`ClientTagBasedModelTypeProcessor` in Unified Sync and Storage](sync/uss/client_tag_based_model_type_processor.md) -
justincarlson90a1c8c2017-04-14 00:34:25134 Notes on the central data structure used in Chrome Sync.
135* [Chrome Sync's Model API](sync/model_api.md) - Data models used for syncing
136 information across devices using Chrome Sync.
137* [Ozone Overview](ozone_overview.md) - Ozone is an abstraction layer between
138 the window system and low level input and graphics.
139* [Optimizing Chrome Web UIs](optimizing_web_uis.md) - Notes on making webuis
140 more performant
Makoto Shimazu9f0bd3a2017-08-08 01:54:24141* [Adding a new feature flag in chrome://flags](how_to_add_your_feature_flag.md) - Quick
142 guide to add a new feature flag to experiment your feature.
Dimitri Glazkov2070775d2017-10-24 17:47:02143* [Guidelines for considering branch dates in project planning](release_branch_guidance.md) -
144 What to do (and not to do) around branch dates when scheduling your project
145 work.
Dan Beam19812212018-11-29 08:16:56146* [WebUI Explainer](webui_explainer.md) - An explanation of C++ and JavaScript
147 infrastructural code for Chrome UIs implemented with web technologies (i.e.
148 chrome:// URLs).
justincarlson90a1c8c2017-04-14 00:34:25149
150### Testing
Kent Tamura59ffb022018-11-27 05:30:56151* [Running and Debugging Web Tests](testing/web_tests.md)
152* [Writing Web Tests](testing/writing_web_tests.md) - Web Tests using
justincarlson90a1c8c2017-04-14 00:34:25153 `content_shell`
Kent Tamura