{
    "dom-gamepad-axes": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/Gamepad.json",
            "name": "axes",
            "slug": "API/Gamepad/axes",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/Gamepad/axes",
            "summary": "The Gamepad.axes property of the Gamepad interface returns an array representing the controls with axes present on the device (e.g. analog thumb sticks).",
            "support": {
                "chrome": {
                    "version_added": "21"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "Gamepad.axes"
        }
    ],
    "dom-gamepad-buttons": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/Gamepad.json",
            "name": "buttons",
            "slug": "API/Gamepad/buttons",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/Gamepad/buttons",
            "summary": "The Gamepad.buttons property of the Gamepad interface returns an array of gamepadButton objects representing the buttons present on the device.",
            "support": {
                "chrome": {
                    "version_added": "21"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "Gamepad.buttons"
        }
    ],
    "dom-gamepad-connected": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/Gamepad.json",
            "name": "connected",
            "slug": "API/Gamepad/connected",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/Gamepad/connected",
            "summary": "The Gamepad.connected property of the Gamepad interface returns a boolean indicating whether the gamepad is still connected to the system.",
            "support": {
                "chrome": {
                    "version_added": "25"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "Gamepad.connected"
        }
    ],
    "dom-gamepad-id": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/Gamepad.json",
            "name": "id",
            "slug": "API/Gamepad/id",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/Gamepad/id",
            "summary": "The Gamepad.id property of the Gamepad interface returns a string containing some information about the controller.",
            "support": {
                "chrome": {
                    "version_added": "21"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "Gamepad.id"
        }
    ],
    "dom-gamepad-index": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/Gamepad.json",
            "name": "index",
            "slug": "API/Gamepad/index",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/Gamepad/index",
            "summary": "The Gamepad.index property of the Gamepad interface returns an integer that is auto-incremented to be unique for each device currently connected to the system.",
            "support": {
                "chrome": {
                    "version_added": "21"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "Gamepad.index"
        }
    ],
    "dom-gamepad-mapping": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/Gamepad.json",
            "name": "mapping",
            "slug": "API/Gamepad/mapping",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/Gamepad/mapping",
            "summary": "The Gamepad.mapping property of the Gamepad interface returns a string indicating whether the browser has remapped the controls on the device to a known layout.",
            "support": {
                "chrome": {
                    "version_added": "21"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "Gamepad.mapping"
        }
    ],
    "dom-gamepad-timestamp": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/Gamepad.json",
            "name": "timestamp",
            "slug": "API/Gamepad/timestamp",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/Gamepad/timestamp",
            "summary": "The Gamepad.timestamp property of the Gamepad interface returns a DOMHighResTimeStamp representing the last time the data for this gamepad was updated.",
            "support": {
                "chrome": {
                    "version_added": "21"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "Gamepad.timestamp"
        }
    ],
    "gamepad-interface": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/Gamepad.json",
            "name": "Gamepad",
            "slug": "API/Gamepad",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/Gamepad",
            "summary": "The Gamepad interface of the Gamepad API defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id.",
            "support": {
                "chrome": {
                    "version_added": "21"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "Gamepad"
        }
    ],
    "dom-gamepadbutton-pressed": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/GamepadButton.json",
            "name": "pressed",
            "slug": "API/GamepadButton/pressed",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/GamepadButton/pressed",
            "summary": "The GamepadButton.pressed property of the GamepadButton interface returns a boolean indicating whether the button is currently pressed (true) or unpressed (false).",
            "support": {
                "chrome": {
                    "version_added": "21"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "GamepadButton.pressed"
        }
    ],
    "dom-gamepadbutton-touched": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/GamepadButton.json",
            "name": "touched",
            "slug": "API/GamepadButton/touched",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/GamepadButton/touched",
            "summary": "The touched property of the GamepadButton interface returns a boolean indicating whether a button capable of detecting touch is currently touched (true) or not touched (false).",
            "support": {
                "chrome": {
                    "version_added": "73"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "15"
                },
                "firefox": {
                    "version_added": "55"
                },
                "firefox_android": "mirror",
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": {
                    "version_added": false
                },
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "GamepadButton.touched"
        }
    ],
    "dom-gamepadbutton-value": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/GamepadButton.json",
            "name": "value",
            "slug": "API/GamepadButton/value",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/GamepadButton/value",
            "summary": "The GamepadButton.value property of the GamepadButton interface returns a double value used to represent the current state of analog buttons on many modern gamepads, such as the triggers.",
            "support": {
                "chrome": {
                    "version_added": "21"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "GamepadButton.value"
        }
    ],
    "gamepadbutton-interface": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/GamepadButton.json",
            "name": "GamepadButton",
            "slug": "API/GamepadButton",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/GamepadButton",
            "summary": "The GamepadButton interface defines an individual button of a gamepad or other controller, allowing access to the current state of different types of buttons available on the control device.",
            "support": {
                "chrome": {
                    "version_added": "21"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "GamepadButton"
        }
    ],
    "dom-gamepadevent-constructor": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/GamepadEvent.json",
            "name": "GamepadEvent",
            "slug": "API/GamepadEvent/GamepadEvent",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent/GamepadEvent",
            "summary": "The GamepadEvent() constructor creates a new GamepadEvent object.",
            "support": {
                "chrome": {
                    "version_added": "35"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "GamepadEvent()"
        }
    ],
    "dom-gamepadevent-gamepad": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/GamepadEvent.json",
            "name": "gamepad",
            "slug": "API/GamepadEvent/gamepad",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent/gamepad",
            "summary": "The GamepadEvent.gamepad property of the GamepadEvent interface returns a Gamepad object, providing access to the associated gamepad data for fired gamepadconnected and gamepaddisconnected events.",
            "support": {
                "chrome": {
                    "version_added": "21"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "GamepadEvent.gamepad"
        }
    ],
    "gamepadevent-interface": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/GamepadEvent.json",
            "name": "GamepadEvent",
            "slug": "API/GamepadEvent",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent",
            "summary": "The GamepadEvent interface of the Gamepad API contains references to gamepads connected to the system, which is what the gamepad events gamepadconnected and gamepaddisconnected are fired in response to.",
            "support": {
                "chrome": {
                    "version_added": "21"
                },
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79"
                }
            },
            "title": "GamepadEvent"
        }
    ],
    "dom-navigator-getgamepads": [
        {
            "engines": [
                "blink",
                "gecko",
                "webkit"
            ],
            "filename": "api/Navigator.json",
            "name": "getGamepads",
            "slug": "API/Navigator/getGamepads",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getGamepads",
            "summary": "The Navigator.getGamepads() method returns an array of Gamepad objects, one for each gamepad connected to the device.",
            "support": {
                "chrome": [
                    {
                        "version_added": "35"
                    },
                    {
                        "version_added": "21",
                        "prefix": "webkit"
                    }
                ],
                "chrome_android": "mirror",
                "edge": {
                    "version_added": "12"
                },
                "firefox": {
                    "version_added": "29"
                },
                "firefox_android": {
                    "version_added": "32"
                },
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": [
                    {
                        "version_added": "37"
                    },
                    {
                        "version_added": "37",
                        "prefix": "webkit"
                    }
                ],
                "edge_blink": [
                    {
                        "version_added": "79"
                    },
                    {
                        "version_added": "79",
                        "prefix": "webkit"
                    }
                ]
            },
            "title": "Navigator.getGamepads()"
        }
    ],
    "event-gamepadconnected": [
        {
            "engines": [
                "gecko"
            ],
            "partial": [
                "blink",
                "webkit"
            ],
            "filename": "api/Window.json",
            "name": "gamepadconnected_event",
            "slug": "API/Window/gamepadconnected_event",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/Window/gamepadconnected_event",
            "summary": "The gamepadconnected event is fired when the browser detects that a gamepad has been connected or the first time a button/axis of the gamepad is used.",
            "support": {
                "chrome": {
                    "version_added": "35",
                    "partial_implementation": true,
                    "notes": "The <code>ongamepadconnected</code> event handler property is not supported. See <a href='https://crbug.com/1192878'>bug 1192878</a>."
                },
                "chrome_android": {
                    "version_added": "37",
                    "partial_implementation": true,
                    "notes": "The <code>ongamepadconnected</code> event handler property is not supported. See <a href='https://crbug.com/1192878'>bug 1192878</a>."
                },
                "edge": {
                    "version_added": "18"
                },
                "firefox": [
                    {
                        "version_added": "89"
                    },
                    {
                        "version_added": "29",
                        "version_removed": "89",
                        "partial_implementation": true,
                        "notes": "The <code>ongamepadconnected</code> event handler property is not supported. See <a href='https://bugzil.la/1697093'>bug 1697093</a>."
                    }
                ],
                "firefox_android": [
                    {
                        "version_added": "89"
                    },
                    {
                        "version_added": "32",
                        "version_removed": "89",
                        "partial_implementation": true,
                        "notes": "The <code>ongamepadconnected</code> event handler property is not supported. See <a href='https://bugzil.la/1697093'>bug 1697093</a>."
                    }
                ],
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1",
                    "partial_implementation": true,
                    "notes": "The <code>ongamepadconnected</code> event handler property is not supported. See <a href='https://webkit.org/b/223860'>bug 223860</a>."
                },
                "safari_ios": {
                    "version_added": false
                },
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79",
                    "partial_implementation": true,
                    "notes": "The <code>ongamepadconnected</code> event handler property is not supported. See <a href='https://crbug.com/1192878'>bug 1192878</a>."
                }
            },
            "title": "Window: gamepadconnected event"
        }
    ],
    "event-gamepaddisconnected": [
        {
            "engines": [
                "gecko"
            ],
            "partial": [
                "blink",
                "webkit"
            ],
            "filename": "api/Window.json",
            "name": "gamepaddisconnected_event",
            "slug": "API/Window/gamepaddisconnected_event",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/API/Window/gamepaddisconnected_event",
            "summary": "The gamepaddisconnected event is fired when the browser detects that a gamepad has been disconnected.",
            "support": {
                "chrome": {
                    "version_added": "35",
                    "partial_implementation": true,
                    "notes": "The <code>ongamepaddisconnected</code> event handler property is not supported. See <a href='https://crbug.com/1192878'>bug 1192878</a>."
                },
                "chrome_android": {
                    "version_added": "37",
                    "partial_implementation": true,
                    "notes": "The <code>ongamepaddisconnected</code> event handler property is not supported. See <a href='https://crbug.com/1192878'>bug 1192878</a>."
                },
                "edge": {
                    "version_added": "18"
                },
                "firefox": [
                    {
                        "version_added": "89"
                    },
                    {
                        "version_added": "29",
                        "version_removed": "89",
                        "partial_implementation": true,
                        "notes": "The <code>ongamepaddisconnected</code> event handler property is not supported. See <a href='https://bugzil.la/1697093'>bug 1697093</a>."
                    }
                ],
                "firefox_android": [
                    {
                        "version_added": "89"
                    },
                    {
                        "version_added": "32",
                        "version_removed": "89",
                        "partial_implementation": true,
                        "notes": "The <code>ongamepaddisconnected</code> event handler property is not supported. See <a href='https://bugzil.la/1697093'>bug 1697093</a>."
                    }
                ],
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": "10.1",
                    "partial_implementation": true,
                    "notes": "The <code>ongamepaddisconnected</code> event handler property is not supported. See <a href='https://webkit.org/b/223860'>bug 223860</a>."
                },
                "safari_ios": {
                    "version_added": false
                },
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "79",
                    "partial_implementation": true,
                    "notes": "The <code>ongamepaddisconnected</code> event handler property is not supported. See <a href='https://crbug.com/1192878'>bug 1192878</a>."
                }
            },
            "title": "Window: gamepaddisconnected event"
        }
    ],
    "permission-policy": [
        {
            "engines": [
                "blink"
            ],
            "partial": [
                "gecko"
            ],
            "needsflag": [
                "blink"
            ],
            "filename": "http/headers/Feature-Policy.json",
            "name": "gamepad",
            "slug": "HTTP/Headers/Feature-Policy/gamepad",
            "mdn_url": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Feature-Policy/gamepad",
            "summary": "The HTTP Feature-Policy header gamepad directive controls whether the current document is allowed to use the Gamepad API. When this policy is disabled, calls to Navigator.getGamepads() will throw a SecurityError DOMException. In addition, the gamepadconnected and gamepaddisconnected events will not fire.",
            "support": {
                "chrome": {
                    "version_added": "86",
                    "flags": [
                        {
                            "type": "preference",
                            "name": "#restrict-gamepad-access",
                            "value_to_set": "Enabled"
                        }
                    ]
                },
                "chrome_android": "mirror",
                "edge": "mirror",
                "firefox": {
                    "version_added": "91",
                    "partial_implementation": true,
                    "notes": [
                        "Only supported through the <code>allow</code> attribute on <code>&lt;iframe&gt;</code> elements.",
                        "The default allowlist is <code>*</code> instead of <code>self</code> (as required by the specification)."
                    ]
                },
                "firefox_android": "mirror",
                "ie": {
                    "version_added": false
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                    "version_added": false
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "edge_blink": {
                    "version_added": "86",
                    "flags": [
                        {
                            "type": "preference",
                            "name": "#restrict-gamepad-access",
                            "value_to_set": "Enabled"
                        }
                    ]
                }
            },
            "title": "Feature-Policy: gamepad"
        }
    ]
}
