Chromium is a very mature project. Most things that are generally useful are
already here and things not here aren't generally useful.
-Base is pulled into many projects. For example, various ChromeOS daemons. So
-the bar for adding stuff is that it must have demonstrated wide
+The bar for adding stuff to base is that it must have demonstrated wide
applicability. Prefer to add things closer to where they're used (i.e. "not
-base"), and pull into base only when needed. In a project our size,
+base"), and pull into base only when needed. In a project our size,
sometimes even duplication is OK and inevitable.
Adding a new logging macro `DPVELOG_NE` is not more clear than just
multiple consumers across the codebase, consider placing it in a new directory
under components/ instead.
+base is written for the Chromium project and is not intended to be used
+outside it. Using base outside of src.git is explicitly not supported,
+and base makes no guarantees about API (or even ABI) stability (like all
+other code in Chromium). New code that depends on base/ must be in
+src.git. Code that's not in src.git but pulled in through DEPS (for
+example, v8) cannot use base.
+
## Qualifications for being in //base OWNERS
* interest and ability to learn low level/high detail/complex c++ stuff
* inclination to always ask why and understand everything (including external
* MessageLoopPerfTest: Measures the speed of task posting in various
configurations.
* ObserverListPerfTest: Exercises adding, removing and signalling observers.
+ * PartitionLockPerfTest: Tests the implementation of Lock used in
+ PartitionAlloc
* PthreadEventPerfTest: Establishes the baseline thread switching cost using
pthreads.
+ * RandUtilPerfTest: Measures the time it takes to generate random numbers.
* ScheduleWorkTest: Measures the overhead of MessagePump::ScheduleWork.
* SequenceManagerPerfTest: Benchmarks SequenceManager scheduling with various
underlying task runners.
* TaskObserverPerfTest: Measures the incremental cost of adding task
observers.
* TaskPerfTest: Checks the cost of posting tasks between threads.
+ * ThreadLocalStoragePerfTest: Exercises different mechanisms for accessing
+ data associated with the current thread (C++ `thread_local`, the
+ implementation in //base, the POSIX/WinAPI directly)
* WaitableEvent{Thread,}PerfTest: Measures waitable events in single and
multithreaded scenarios.