Components: allow fullscreen content
diff --git a/frontend/src/components/elements/IFrame/IFrame.test.tsx b/frontend/src/components/elements/IFrame/IFrame.test.tsx
index 2e308ba7aa35..7105e6cb675c 100644
--- a/frontend/src/components/elements/IFrame/IFrame.test.tsx
+++ b/frontend/src/components/elements/IFrame/IFrame.test.tsx
@@ -15,11 +15,14 @@
  * limitations under the License.
  */
 
-import React from "react"
-import { fromJS } from "immutable"
 import { shallow, ShallowWrapper } from "enzyme"
+import { fromJS } from "immutable"
+import {
+  DEFAULT_IFRAME_FEATURE_POLICY,
+  getIFrameSandboxPolicy,
+} from "lib/IFrameUtil"
+import React from "react"
 import IFrame, { Props } from "./IFrame"
-import { getIFrameSandboxPolicy } from "lib/IFrameUtil"
 
 const getProps = (elementProps: Record<string, unknown> = {}): Props => ({
   element: fromJS({
@@ -62,6 +65,12 @@ describe("st.iframe", () => {
       expect(wrapper.find("iframe").prop("src")).toBe("foo")
     })
 
+    it("should use our default feature policy", () => {
+      expect(wrapper.find("iframe").prop("allow")).toBe(
+        DEFAULT_IFRAME_FEATURE_POLICY
+      )
+    })
+
     it("should add `allow-same-origin` parameter to iframe sandbox", () => {
       expect(wrapper.find("iframe").prop("sandbox")).toBe(
         getIFrameSandboxPolicy(true)
@@ -83,6 +92,12 @@ describe("st.iframe", () => {
       expect(wrapper.find("iframe").prop("srcDoc")).toBe("bar")
     })
 
+    it("should use our default feature policy", () => {
+      expect(wrapper.find("iframe").prop("allow")).toBe(
+        DEFAULT_IFRAME_FEATURE_POLICY
+      )
+    })
+
     it("should not add `allow-same-origin` parameter to iframe sandbox", () => {
       expect(wrapper.find("iframe").prop("sandbox")).toBe(
         getIFrameSandboxPolicy(false)
diff --git a/frontend/src/lib/IFrameUtil.ts b/frontend/src/lib/IFrameUtil.ts
index 8145625c8795..00c0cc5237d1 100644
--- a/frontend/src/lib/IFrameUtil.ts
+++ b/frontend/src/lib/IFrameUtil.ts
@@ -105,7 +105,7 @@ export const DEFAULT_IFRAME_FEATURE_POLICY = [
   //"execution-while-out-of-viewport",
 
   // Controls whether the current document is allowed to use Element.requestFullScreen(). When this policy is disabled, the returned Promise rejects with a TypeError DOMException.
-  // "fullscreen",
+  "fullscreen",
 
   // Controls whether the current document is allowed to use the Geolocation Interface. When this policy is disabled, calls to getCurrentPosition() and watchPosition() will cause those functions' callbacks to be invoked with a PositionError code of PERMISSION_DENIED.
   "geolocation",

Adds "fullscreen" to our `iframe allow` feature policy. This applies to `components.iframe`, `components.html`, and `components.declare_component` components. 

With this attribute, components can use the `Element.requestFullscreen()` web API.

(We omitted this simply because we hadn't made a call on it. The team discussed it today, and we're all cool with allowing it.)

Fixes #1710 