0
Files
src/docs
Elly Fong-Jones 99d8cdad66 flags: flag expiration support, take 2
This change implements flag expiration, with the same goal but a very
different method than the previous implementation
(https://chromium-review.googlesource.com/c/chromium/src/+/1729449).

This change preserves the flag-metadata.json file as the sole
authoritative source for flag expiration data. During the build process,
a new script (//tools/flags/generate_expired_list.py) generates a data
structure from flag-metadata.json listing flags that are expired at or
before the current milestone, with their expiration milestones. Logic in
//chrome/browser/about_flags.cc and //chrome/browser/unexpire_flags.cc
then conditionally hides these flags, depending on the state of the
unexpire flags - see //doc/flag_expiry.md for details about those.

Specifically, this change:
1) Renames //tools/flags/list-flags.py to list_flags.py to make it
   importable as a module;
2) Introduces //chrome/browser/expired_flags_list.h, which describes a
   data structure for representing expired flags;
3) Introduces //tools/flags/generate_expired_list.py, which takes as
   inputs //chrome/browser/flag-metadata.json and //chrome/VERSION and
   generates a C++ source file containing a data structure matching that
   in expired_flags_list.h;
4) Has the //chrome/browser build target depend on the generated file
   from step 3;
5) Re-introduces an unexpire flag as described in //doc/flag_expiry.md;
6) Adds logic to //chrome/browser/about_flags.cc to conditionally hide
   expired flags.

This means that flag-metadata.json is the sole determinant of whether a
flag is currently expired or not.

Note that this change expires all flags whose expiration milestones were
*M76* or earlier, not M78 (the current mstone); this is because the
backlog of flags to expire is currently quite large. In M79, we will
expire flags <= M78, then in M80, we will expire flags <= M80; after
that, each milestone Mx will expire flags <= Mx.

Also note that this change discards the notion of flag expiry depending
on usage metrics - i.e., we will now expire *all* flags that expire
before the target milestone, not just the N with the lowest usage. The
lowest-usage design proved to be extremely manual to implement and very
difficult for developers to predict the results of.

Bug: 953690
Change-Id: I7389b667d1e032c795c137cafadf0e5e80fb82c1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1754762
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#690742}
2019-08-27 15:48:45 +00:00
..
2019-08-19 21:37:31 +00:00
2019-08-10 15:27:50 +00:00
2019-08-21 01:46:35 +00:00
2019-05-29 20:09:53 +00:00
2019-02-18 10:10:57 +00:00
2019-02-01 22:45:30 +00:00
2019-08-12 23:02:12 +00:00
2019-02-15 18:01:27 +00:00
2019-04-10 03:49:38 +00:00
2019-05-21 00:22:50 +00:00
2018-08-22 21:52:02 +00:00
2018-10-09 19:46:36 +00:00
2019-08-07 14:57:59 +00:00
2018-07-09 18:39:53 +00:00
2019-07-30 20:14:41 +00:00
2019-08-07 19:59:45 +00:00

Chromium docs

This directory contains chromium project documentation in Gitiles-flavored Markdown. It is automatically rendered by Gitiles.

If you add new documents, please also add a link to them in the Document Index below.

[TOC]

Creating Documentation

Markdown documents must follow the style guide.

Preview local changes using md_browser:

# in chromium checkout
./tools/md_browser/md_browser.py

This is only an estimate. The gitiles view may differ.

  1. Upload a patch to gerrit, or receive a review request. e.g. https://chromium-review.googlesource.com/c/572236
  2. View a specific .md file. e.g. https://chromium-review.googlesource.com/c/572236/2/docs/README.md
  3. Click on gitiles link at top of page.

This gitiles view is the authoritative view, exactly the same as will be used when committed.

Document Index

Checking Out and Building

Design Docs

Integrated Development Environment (IDE) Set Up Guides

Git

Clang

General Development

Testing

Misc Linux-Specific Docs

Misc MacOS-Specific Docs

Misc Windows-Specific Docs

Misc Android-Specific Docs

Misc iOS-Specific Docs

Misc Chrome-OS-Specific Docs

Misc WebUI-Specific Docs

Media

Accessibility

Memory

Memory Infrastructure Timeline Profiling (MemoryInfra)

Misc

Mojo & Services

WebXR

Probably Obsolete