For Developers
See also: docs in the source code - https://chromium.googlesource.com/chromium/src/+/HEAD/docs/README.md
Start here
How-tos
Note that some of these guides are out-of-date.
Getting the Code
- Quick reference of common development commands.
- Look at our Git Cookbook for a helpful walk-through.
- Changelogs for Chromium and Blink.
Development Guides
- Debugging on Windows, Mac OS X, Linux and Android.
- Threading
- Subtle Threading Bugs and How to Avoid Them
- Visual Studio tricks
- Debugging GPU related code
- How to set up Visual Studio debugger visualizers to make the watch window more convenient
- Linux Development tips and porting guide
- Mac Development
- Generated files
- Chromoting (Chrome Remote Desktop) compilation
- Editing dictionaries
- Editors Guides
- Learning your way around the code
- Guide to Important Libraries, Abstractions, and Data Structures
- //base Newsletters
- Android WebView
- GitHub Collaboration
See also: All How-tos.
Blink
- Blink Project
- Running and Debugging the Blink web tests (pka layout tests)
- Blink Sheriffing
- Web IDL interfaces
- Class Diagram: Blink Core to Chrome Browser
- Rebaselining Tool
- How repaint works
- Phases of Rendering
- Web Platform Tests
- Baseline computation and some line layout docs
- Fast Text Autosizer
Testing and Infrastructure
- Tests
- Browser Tests
- Handling a failing test
- Running Chrome tests
- Reliability Tests
- Using Valgrind
- Page Heap for Chrome
- Establishing Blame for Memory usage via Memory_Watcher
- GPU Rendering Benchmarks
- Infra documentation
- Contacting a Trooper
Performance
- Adding Performance Tests
- Telemetry: Performance testing framework
- Cluster Telemetry: Run benchmarks against the top 10k web pages (Googlers-only)
- Memory
- Profiling Tools:
- Thread and Task Profiling and Tracking (about:profiler) Also allows diagnosing per-task heap usage and churn if Chrome runs with "--enable-heap-profiling=task-profiler".
- Tracing tool (about:tracing)
- Deep Memory Profiler
- Investigating Windows Binary Sizes
- Windows-specific issues can be profiled with UIforETW
- Leak Detection
- Perf Sheriffing
Sync
Diagnostics
Documentation hosted in / generated by source code
- depot_tools
- C++ use in Chromium
- GN: Meta-build system that generates NinjaBuild files; Intended to be GYP replacement.
- MB: Meta-build wrapper around both GN and GYP.
- Chrome Infra
Practices
- Core Product Principles
- Contributing code
- Starting to work on a new web platform feature
- Filing bugs
- Network bug triage
- GPU bug triage
- Ticket milestone punting
- Tree Sheriffs
- Useful extensions for developers
- Adding 3rd-party libraries
- Shipping changes that are enterprise-friendly
Design documents
- Getting around the source code directories
- Tech Talks: Videos & Presentations
- Engineering design docs
- User experience design docs
- Sharing design documents on Google drive: share on Chromium domain If on private domain, share with self@chromium.org, then log in with self@chromium.org, click "Shared with Me", right-click "Make a copy", then set the permissions: "Public on the web" or "Anyone with the link", generally "Can comment". It a good idea to then mark your local copy (PRIVATE) and only edit the public copy.
Communication
- General discussion groups
- Technical discussion groups
- Slack
- IRC
- Development calendar and release info
- Common Terms & Techno Babble
- Public calendar for meetings discussing new ideas
- Questions or problems with your Chromium account? Email accounts@chromium.org.
Status
Usage statistics
Graphics
External links
- Waterfalls
- Build Log Archives (chromium-build-logs)
- Bug tracker
- Code review tool
- Viewing the source
- Glossary (acronyms, abbreviations, jargon, and technobabble)