[webkit-dev] Experimental and (new) Internal feature flags

Dean Jackson dino at apple.com
Wed Sep 12 16:20:03 PDT 2018

> On 13 Sep 2018, at 09:03, youenn fablet <youennf at gmail.com> wrote:
> What about testing?
> ----
> You can turn both experimental and internal features on via headers in WebKitTestRunner. Use experimental:FeatureName or internal:FeatureName. For example...
> <!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=true ] -->
> It seems tedious to add such things to every test.
> That would also mean we would need to remove these lines to every test when we activate the flag by default or when we remove the flag.

It's just a find and replace. I modified hundreds of tests in this manner (I didn't actually have to, since the headers were turning on something that was already on, but I did it anyway)

> As of WPT, modifying tests on the fly at import time is doable but it goes against the idea of making WPT import/export simpler so I hope we can find something better.
> testharnessreport.js might help activating flags specifically for WPT.

These features are not tweakable from the Web API, but from the client API. JS is too late.

> Since an experimental feature flag should not remain off for a long time, a per-experimental-feature file listing the tests to which activate the feature could be considered.

That clashes with Ryosuke's point that moving tests shouldn't change behaviour.

The larger problems are:

- We don't want experimental features to be on in shipping browsers. It might be ok for them to be always on in tests, but then MiniBrowser would be different from WKTR. At the moment they are always on in tests, and use their default value in MiniBrowser (and shipping).

- Internal features can either be on or off by default, because we don't expect users to toggle them. The tests should reflect their default value. You use the header to test the non-default case.

So what we have right now is probably ok. The issue is with things I moved from experimental to internal and that have a default value of off. I think it is perfectly fine for those features to require test headers, since they clearly aren't ready.

Note that even if I turned off all experimental features outside of testing, MiniBrowser and Safari remember if you enable the feature.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20180913/e0d4a112/attachment.html>

More information about the webkit-dev mailing list