What's behind Chrome's "Experimental WebKit Features" and "Experimental JavaScript Features" flags.
I've been wondering what's behind the "Experimental WebKit Features" and "Experimental JavaScript Features" flags in Chrome, so spent a couple of hours to look inside the Chromium source code.

Experimental WebKit Features It's controlled by a switch called switches::kEnableExperimentalWebKitFeatures . And there are currently two files that make use of the switch: content/renderer/render_thread_impl.cc and content/browser/web_contents/web_contents_impl.cc


Do a find in page with "kEnableExperimentalWebKitFeatures" and voila. Here are the features that are currently in experimental stage and can be tested with the runtime flag on:

* Scoped Stylesheets
* Custom DOM Elements
* Experimental Content Security Policy
* HTML <dialog> Element
* HTML <iframe seamless> Attribute
* CSS Regions
* CSS Exclusions
* CSS Grid Layout
* CSS Sticky Positioning (position: -webkit-sticky)
* CSS Variables

Experimental JavaScript Features can be enabled by launching Chrome with the --harmony command-line flag.

Chrome uses V8, so we need to dig into V8 source... Found!


Looks like currently these are enabled with the --harmony flag:

* Block scoping (let)
* Modules
* Symbols
* Proxies
* Collections (Sets, Maps, WeakMaps)
* Observation (object.observe)

Hmm no rest params nor default params :(
ASHISH KUMAR AMAN's profile photo
Add a comment...