RuntimeEnabledFeatures flags that we could remove?

17 views
Skip to first unread message

David Baron

unread,
Aug 16, 2022, 1:32:08 PM8/16/22
to rendering-core-dev
I made a list of rendering-related features in 

runtime_enabled_features.json5 where it looks like the flags could be removed because they've been shipping on stable for at least 6 months or so.  (A number of such flags have been removed recently.)  I think it may be possible to remove many of these flags if there is, in fact, no need for the code to be behind a flag anymore.


Some of the features in the list have footnotes (see below) about virtual test suites.


AutoExpandDetailsElement 

CompositeRelativeKeyframes [1]

CSSDynamicRangeMediaQueries

CSSFocusVisible

CSSModules [2]

DialogFocusNewSpecBehavior [3]

ForcedColors

OffMainThreadCSSPaint [2]

PrefersColorSchemeClientHintHeader

PrefersContrast

ScrollTopLeftInterop

VirtualKeyboard [1]

WebAnimationsAPI

WindowOpenNewPopupBehavior

XSLT


[1] This feature also has a virtual test suite testing the feature enabled (so it's currently a no-op virtual suite).
[2] This feature also has a virtual test suite (testing its flag enabled, and named for it), though its virtual test suite has some other flags too.
[3] This feature has a virtual test suite testing the feature disabled.

-David

Rune Lillesveen

unread,
Aug 16, 2022, 1:41:59 PM8/16/22
to David Baron, rendering-core-dev
On Tue, Aug 16, 2022 at 7:32 PM David Baron <dba...@chromium.org> wrote:
I made a list of rendering-related features in 

runtime_enabled_features.json5 where it looks like the flags could be removed because they've been shipping on stable for at least 6 months or so.  (A number of such flags have been removed recently.)  I think it may be possible to remove many of these flags if there is, in fact, no need for the code to be behind a flag anymore.


Some of the features in the list have footnotes (see below) about virtual test suites.


CSSDynamicRangeMediaQueries


Removal of this is in progress.

--
Rune Lillesveen

Xianzhu Wang

unread,
Aug 16, 2022, 1:47:50 PM8/16/22
to David Baron, rendering-core-dev
I have been thinking about an expiration mechanism for runtime enabled features, like that for metrics. Besides stable features, we should also remove abandoned test/experimental features.

--
You received this message because you are subscribed to the Google Groups "rendering-core-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rendering-core-...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/rendering-core-dev/CAG0MU3idug%3DfFkZqDoJdEaY%2BUkuUeJ%2BQh9X0hC7KoWSTD%3DVMMA%40mail.gmail.com.

Joey Arhar

unread,
Aug 16, 2022, 2:27:28 PM8/16/22
to Xianzhu Wang, David Baron, rendering-core-dev
I created AutoExpandDetailsElement and DialogFocusNewSpecBehavior.
The AutoExpandDetailsElement flag is being used by puppeteer, I'm going to migrate them off of it by using the new element.checkVisibility API. Once that's done, I'll feel comfortable removing it.
DialogFocusNewSpecBehavior can probably be removed, I'll get on it.

Xianzhu Wang

unread,
Aug 16, 2022, 2:49:40 PM8/16/22
to Joey Arhar, David Baron, rendering-core-dev
On Tue, Aug 16, 2022 at 11:27 AM Joey Arhar <jar...@chromium.org> wrote:
I created AutoExpandDetailsElement and DialogFocusNewSpecBehavior.
The AutoExpandDetailsElement flag is being used by puppeteer, I'm going to migrate them off of it by using the new element.checkVisibility API. Once that's done, I'll feel comfortable removing it.

Just curious, by "removing it", do you mean to remove the feature and the code behind it, or remove the feature and enable the code behind the feature forever? I think we should do the latter for stable features, but this feature seems to be different?

Joey Arhar

unread,
Aug 16, 2022, 2:54:00 PM8/16/22
to Xianzhu Wang, David Baron, rendering-core-dev
> Just curious, by "removing it", do you mean to remove the feature and the code behind it, or remove the feature and enable the code behind the feature forever? I think we should do the latter for stable features, but this feature seems to be different?

I mean enable the code behind the feature forever. It was a small change that I was worried would break the internet so I put it behind this flag as a killswitch with a setup to disable via finch if needed as well. Here is the patch: https://chromium-review.googlesource.com/c/chromium/src/+/3832317

Daniel Libby

unread,
Aug 16, 2022, 3:26:38 PM8/16/22
to Joey Arhar, wangxianzhu, David Baron, rendering-core-dev

For ForcedColors, users have requested to be able to configure this via about:flags while we build out settings UI for official support and customizability (see crbug.com/1231644).

 

I will remove the following (and associated virtual test suites) after confirming with folks over here that they’re no longer needed.

CSSModules [2]

PrefersContrast

VirtualKeyboard [1]

Justin Novosad

unread,
Aug 23, 2022, 11:41:19 PM8/23/22
to Daniel Libby, Joey Arhar, wangxianzhu, David Baron, rendering-core-dev
For the OffMainThreadCSSPaint flag we need to keep it even though it has shipped.  This is because the feature can get disabled internally when certain conditions are met. Therefore, the runtime flag is useful in tests to ensure adequate coverage. It is technically feasible to get the same coverage without the flag, by triggering conditions that enable/disable that code path, but it would make tests more brittle and less readable.

Reply all
Reply to author
Forward
0 new messages