This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The features() method of the FeaturePolicy interface returns a list of names of all features supported by the User Agent. Feature whose name appears on the list might not be allowed by the Feature Policy of the current execution context and/or might not be accessible because of user's permissions.


const supportedFeatures = FeaturePolicy.features()



Return value

A list of strings that represent names of all Feature Policy directives supported by the User Agent.


The followin example logs all the supported directives in the console.

// Get the Feature Policy object
const featurePolicy = document.featurePolicy

// Retreive the list of all supported Feature Policy directives
const supportedDirectives = featurePolicy.features()

// Print out each directive into the console
for (const directive of supportedDirectives){


Specification Status Comment
Permissions Policy
The definition of 'features' in that specification.
Editor's Draft Initial definition.

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Chrome Full support 74Edge Full support 79Firefox Full support 70
Full support 70
Disabled From version 70: this feature is behind the dom.security.featurePolicy.webidl.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 62Safari No support NoWebView Android Full support 74Chrome Android Full support 74Firefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android Full support 11.0


Full support  
Full support
No support  
No support
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
User must explicitly enable this feature.
User must explicitly enable this feature.