blob: 3d18d0906bde274844a9e313906b8d5f9dc5cb1f [file] [log] [blame] [view]
Elly Fong-Jonesd5c233a2019-07-29 19:48:271# Flag Expiry
2
3This document outlines the process by which flags in chromium expire and are
4removed from the codebase, and describes which flags are about to expire. This
5is the authoritative list of flags that are expiring and being removed. This
6document only describes entries in chrome://flags, *not* command-line switches
7(commonly also called command-line flags). This process does not cover
8command-line switches and there continue to be no guarantees about those.
9
10[TOC]
11
12## Do Not Depend On Flags
13
14If you are using (or think you need to use) a flag to configure Chromium for
15your use case, please [file a bug] or email flags-dev@, because that flag will
16likely be removed at some point.
17
18Flags have never been a supported configuration surface in Chromium, and we have
19never guaranteed that any specific flag will behave consistently or even
20continue to exist. This document describes a process for removing flags that
21have been around for long enough that users *might* have come to rely on their
22ongoing existence in a way that hopefully minimizes pain, but Chromium
23developers are free to change the behavior of or remove flags at any time. In
24particular, just because a flag will expire through this process does not mean a
25developer will not remove it earlier than this process specifies.
26
27## The Process
28
29After each milestone's branch point:
30
311. The flags team chooses a set of flags to begin expiring, from the list
32 produced by `tools/flags/list-flags.py --expired-by $MSTONE`. In the steady
33 state, when there is not a big backlog of flags to remove, this set will be
34 the entire list of flags that are `expired-by $MSTONE`.
352. The flags team hides the flags in this set by default from `chrome://flags`,
36 and adds a flag `temporary-unexpire-flags-M$MSTONE` and a base::Feature
37 `TemporaryUnexpireFlagsM$MSTONE` which unhide these flags. When hidden from
38 `chrome://flags`, all the expired flags will behave as if unset, so users
39 cannot be stuck with a non-default setting of a hidden flag.
403. After two further milestones have passed (i.e. at $MSTONE+2 branch), the
41 temporary unhide flag & feature will be removed (meaning the flags are now
42 permanently invisible), and TPMs will file bugs against the listed owners to
43 remove the flags and clean up the backing code.
44
45There are other elements of this process not described here, such as emails to
46flags-dev@ tracking the status of the process.
47
48## The Set
49
50In M77, the following flags are being hidden as the second step of this process.
51If you are using one of these flags for some reason, please get in touch with
52the flags team (via flags-dev@) and/or the listed owner(s) of that flag. This
53list will be updated at each milestone as we expire more flags. This is the
54authoritative source of the expiry set for a given milestone.
55
56* allow-remote-context-for-notifications
Elly Fong-Jonesd5c233a2019-07-29 19:48:2757* android-files-in-files-app
58* app-service-ash
59* arc-available-for-child
60* arc-boot-completed-broadcast
61* arc-custom-tabs-experiment
62* arc-documents-provider
63* arc-graphics-buffer-visualization-tool
64* arc-native-bridge-experiment
65* arc-usb-host
66* arc-vpn
67* ash-enable-pip-rounded-corners
Elly Fong-Jonesd5c233a2019-07-29 19:48:2768* autofill-always-show-server-cards-in-sync-transport
Elly Fong-Jonesd5c233a2019-07-29 19:48:2769* autofill-enable-company-name
70* autofill-enable-local-card-migration-for-non-sync-user
71* autofill-enforce-min-required-fields-for-heuristics
72* autofill-enforce-min-required-fields-for-query
73* autofill-enforce-min-required-fields-for-upload
74* autofill-restrict-formless-form-extraction
75* autofill-rich-metadata-queries
76* autofill-settings-split-by-card-type
77* background-task-component-update
78* calculate-native-win-occlusion
79* cct-module-cache
80* cct-module-custom-request-header
81* cct-module-dex-loading
82* cct-module-post-message
83* cct-module-use-intent-extras
Elly Fong-Jonesd5c233a2019-07-29 19:48:2784* crostini-usb-support
Elly Fong-Jonesd5c233a2019-07-29 19:48:2785* document-passive-wheel-event-listeners
86* enable-app-list-search-autocomplete
87* enable-arc-cups-api
88* enable-arc-unified-audio-focus
Elly Fong-Jonesd5c233a2019-07-29 19:48:2789* enable-autofill-credit-card-upload-editable-cardholder-name
90* enable-autofill-credit-card-upload-editable-expiration-date
91* enable-autofill-do-not-upload-save-unsupported-cards
92* enable-autofill-import-dynamic-forms
93* enable-autofill-import-non-focusable-credit-card-forms
94* enable-autofill-local-card-migration-uses-strike-system-v2
Elly Fong-Jonesd5c233a2019-07-29 19:48:2795* enable-autofill-send-experiment-ids-in-payments-rpcs
Elly Fong-Jonesd5c233a2019-07-29 19:48:2796* enable-bulk-printers
97* enable-chromeos-account-manager
98* enable-custom-mac-paper-sizes
99* enable-encryption-migration
100* enable-experimental-accessibility-features
101* enable-experimental-accessibility-language-detection
102* enable-fs-nosymfollow
103* enable-google-branded-context-menu
104* enable-immersive-fullscreen-toolbar
Elly Fong-Jonesd5c233a2019-07-29 19:48:27105* enable-myfiles-volume
106* enable-native-controls
107* enable-native-google-assistant
108* enable-reopen-tab-in-product-help
109* enable-safe-browsing-ap-download-verdicts
Elly Fong-Jonesd5c233a2019-07-29 19:48:27110* enable-webrtc-hw-vp9-encoding
111* enable-webrtc-pipewire-capturer
112* enable-zero-state-suggestions
113* enable_messages_web_push
114* force-use-chrome-camera
115* foreground-notification-manager
116* gdi-text-printing
117* handwriting-gesture
118* manual-password-generation-android
Elly Fong-Jonesd5c233a2019-07-29 19:48:27119* offline-indicator-always-http-probe
120* offline-pages-ct-suppress-completed-notification
121* offline-pages-load-signal-collecting
122* offline-pages-resource-based-snapshot
123* omnibox-experimental-keyword-mode
124* on-the-fly-mhtml-hash-computation
Elly Fong-Jonesd5c233a2019-07-29 19:48:27125* pdf-annotations
126* postscript-printing
Elly Fong-Jonesd5c233a2019-07-29 19:48:27127* rewrite-leveldb-on-deletion
128* session-restore-prioritizes-background-use-cases
129* smart-text-selection
130* stop-in-background
Elly Fong-Jonesd5c233a2019-07-29 19:48:27131* ui-show-composited-layer-borders
132* unfiltered-bluetooth-devices
133* unsafely-treat-insecure-origin-as-secure
134* use_messages_google_com_domain
135* use_messages_staging_url
Elly Fong-Jonesd5c233a2019-07-29 19:48:27136* wake-on-wifi-packet
137
138[file a bug]: https://new.crbug.com