summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/appmanifest/display-override-member
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/appmanifest/display-override-member')
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/display-override-member-app-region-window-controls-overlay-manual.tentative.html73
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/display-override-member-css-environment-variables-window-controls-overlay-manual.tentative.html67
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-browser-manual.tentative.html35
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-fullscreen-manual.tentative.html35
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-minimal-ui-manual.tentative.html35
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-service-worker.js59
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-standalone-manual.tentative.html35
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-standalone-overrides-browser-manual.tentative.html37
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-window-controls-overlay-overrides-browser-manual.tentative.html43
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-app-region-window-controls-overlay.webmanifest12
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-app-region-window-controls-overlay.webmanifest.headers1
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-css-environment-variables-window-controls-overlay.webmanifest12
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-css-environment-variables-window-controls-overlay.webmanifest.headers1
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-browser.webmanifest11
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-browser.webmanifest.headers1
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-fullscreen.webmanifest11
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-fullscreen.webmanifest.headers1
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-manual.js4
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-minimal-ui.webmanifest11
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-minimal-ui.webmanifest.headers1
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone-overrides-browser.webmanifest12
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone-overrides-browser.webmanifest.headers1
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone.webmanifest11
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone.webmanifest.headers1
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-window-controls-overlay-overrides-browser.webmanifest12
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-window-controls-overlay-overrides-browser.webmanifest.headers1
-rw-r--r--testing/web-platform/tests/appmanifest/display-override-member/resources/icon.pngbin0 -> 8565 bytes
27 files changed, 523 insertions, 0 deletions
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-app-region-window-controls-overlay-manual.tentative.html b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-app-region-window-controls-overlay-manual.tentative.html
new file mode 100644
index 0000000000..c802ba67fa
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-app-region-window-controls-overlay-manual.tentative.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+ <title>Test app-region CSS property when "window-controls-overlay" in display-override member</title>
+ <link rel="manifest" href="resources/display-override-member-app-region-window-controls-overlay.webmanifest" />
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <h1>Test app-region CSS property when "window-controls-overlay" in display-override member</h1>
+ <style>
+ #draggableRectangle {
+ app-region: drag;
+ background-color: blue;
+ position: absolute;
+ top: 25px;
+ left: 25px;
+ width: 250px;
+ height: 250px;
+ color: white;
+ }
+
+ #outerRectangle {
+ background-color: green;
+ position: relative;
+ width: 300px;
+ height: 300px;
+ text-align: center;
+ }
+
+ #innerRectangle {
+ app-region: no-drag;
+ background-color: red;
+ position: absolute;
+ top: 50px;
+ left: 50px;
+ width: 150px;
+ height: 150px;
+ }
+ </style>
+
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="resources/display-override-member-media-feature-manual.js"></script>
+
+ <script>
+ setup({ explicit_timeout: true })
+ var manual_test = async_test("app-region element drags window");
+
+ window.addEventListener('DOMContentLoaded', function () {
+ document.getElementById('outerRectangle').addEventListener('click', manual_test.unreached_func('click event fired on outer rectangle'));
+ document.getElementById('innerRectangle').addEventListener('click', (e) => {e.stopPropagation();}, true);
+ });
+ </script>
+</head>
+
+<body>
+ <h1>Description</h1>
+ <p>This test validates that an element will drag the window around when running in "window-controls-overlay" mode.</p>
+ <h1>Manual Test Steps:</h1>
+ <p>
+ <ol>
+ <li> Install this app, and toggle into "window-controls-overlay" mode.</li>
+ <li> Click and drag the blue rectangle containing the text "Drag Me". This element has the app-region:drag CSS property set.</li>
+ <li> If the app window moves around as you drag the blue rectangle, <button onclick="manual_test.done()">Click Here</button>.</li>
+ </ol>
+ </p>
+ <div id="outerRectangle">
+ <div id="draggableRectangle">
+ Drag Me
+ <div id="innerRectangle">Not Draggable</div>
+ </div>
+ </div>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-css-environment-variables-window-controls-overlay-manual.tentative.html b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-css-environment-variables-window-controls-overlay-manual.tentative.html
new file mode 100644
index 0000000000..a49b4f6f98
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-css-environment-variables-window-controls-overlay-manual.tentative.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+ <title>Test CSS environment variables when "window-controls-overlay" in display-override member</title>
+ <link rel="manifest" href="resources/display-override-member-css-environment-variables-window-controls-overlay.webmanifest" />
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <h1>Test CSS environment variables when "window-controls-overlay" in display-override member</h1>
+ <style>
+ #windowControlsOverlayElementStyle {
+ padding-left: env(titlebar-area-x);
+ padding-right: env(titlebar-area-width);
+ padding-top: env(titlebar-area-y);
+ padding-bottom: env(titlebar-area-height);
+ }
+ </style>
+
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="resources/display-override-member-media-feature-manual.js"></script>
+
+ <script>
+ setup({ explicit_timeout: true });
+ var manual_test = async_test("titlebar-area CSS environment variables");
+ manual_test.step_timeout(() => {
+ manual_test.force_timeout();
+ manual_test.done();
+ }, 60000);
+ manual_test.step(() => {
+ navigator.windowControlsOverlay.addEventListener('geometrychange', (event) => {
+ if (navigator.windowControlsOverlay.visible) {
+ const windowControlsOverlayElementStyle = document.getElementById('windowControlsOverlayElementStyle');
+ const x = getComputedStyle(windowControlsOverlayElementStyle).getPropertyValue('padding-left');
+ const w = getComputedStyle(windowControlsOverlayElementStyle).getPropertyValue('padding-right');
+ const y = getComputedStyle(windowControlsOverlayElementStyle).getPropertyValue('padding-top');
+ const h = getComputedStyle(windowControlsOverlayElementStyle).getPropertyValue('padding-bottom');
+ const boundingClientRect = navigator.windowControlsOverlay.getTitlebarAreaRect();
+ manual_test.step(() => {
+ assert_equals(x, boundingClientRect.x + 'px', 'CSS environment "titlebar-area-x" does not equal navigator.windowControlsOverlay.getTitlebarAreaRect().x');
+ assert_equals(y, boundingClientRect.y + 'px', 'CSS environment "titlebar-area-x" does not equal navigator.windowControlsOverlay.getTitlebarAreaRect().y');
+ assert_equals(w, boundingClientRect.width + 'px', 'CSS environment "titlebar-area-x" does not equal navigator.windowControlsOverlay.getTitlebarAreaRect().width');
+ assert_equals(h, boundingClientRect.height + 'px', 'CSS environment "titlebar-area-x" does not equal navigator.windowControlsOverlay.getTitlebarAreaRect().height');
+ });
+ manual_test.done();
+ }
+ });
+ });
+ </script>
+</head>
+
+<body>
+ <h1>Description</h1>
+ <p>This test validates that when in "window-controls-overlay" mode, the 'titlebar-area-*' CSS environment variables
+ match the values returned by navigator.windowControlsOverlay.getTitlebarAreaRect().</p>
+ <h1>Manual Test Steps:</h1>
+ <p>
+ <ol>
+ <li> Install this app, and toggle into "window-controls-overlay" mode.</li>
+ <li> Upon toggling into "window-controls-overlay" mode, the test will validate that the CSS enviroment variable
+ values match the JavaScript API.</li>
+ </ol>
+ Note: This test will automatically timeout and fail if not completed within 60 seconds.
+ </p>
+ <div id="windowControlsOverlayElementStyle"></div>
+</body>
+
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-browser-manual.tentative.html b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-browser-manual.tentative.html
new file mode 100644
index 0000000000..d13d0986ad
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-browser-manual.tentative.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>Test "browser" in display-override member + media feature</title>
+<link rel="help" href="https://w3c.github.io/manifest/#dom-displaymodetype-browser" />
+<link rel="help" href="https://w3c.github.io/manifest/#the-display-mode-media-feature" />
+<link rel="manifest" href="resources/display-override-member-media-feature-browser.webmanifest" />
+<script src="resources/display-override-member-media-feature-manual.js"></script>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<h1>Test "browser" in display-override member + media feature</h1>
+<style>
+ .fail {
+ background-color: red;
+ }
+
+ @media all and (display-mode: browser) {
+ body {
+ background-color: green;
+ }
+ }
+</style>
+<script>
+const browser = matchMedia("(display-mode: browser)");
+
+browser.onchange = () => {
+ if (browser.matches) {
+ document.body.classList.remove("fail");
+ }
+}
+
+if (!browser.matches) {
+ document.body.classList.add("fail");
+}
+</script>
+<p>
+ To pass, the background color must be green after installing.
+</p>
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-fullscreen-manual.tentative.html b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-fullscreen-manual.tentative.html
new file mode 100644
index 0000000000..0b9923f8bd
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-fullscreen-manual.tentative.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>Test "fullscreen" in display-override member + media feature</title>
+<link rel="help" href="https://w3c.github.io/manifest/#dom-displaymodetype-fullscreen" />
+<link rel="help" href="https://w3c.github.io/manifest/#the-display-mode-media-feature" />
+<link rel="manifest" href="resources/display-override-member-media-feature-fullscreen.webmanifest" />
+<script src="resources/display-override-member-media-feature-manual.js"></script>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<h1>Test "fullscreen" in display-override member + media feature</h1>
+<style>
+ .fail {
+ background-color: red;
+ }
+
+ @media all and (display-mode: fullscreen) {
+ body {
+ background-color: green;
+ }
+ }
+</style>
+<script>
+const fullscreen = matchMedia("(display-mode: fullscreen)");
+
+fullscreen.onchange = () => {
+ if (fullscreen.matches) {
+ document.body.classList.remove("fail");
+ }
+}
+
+if (!fullscreen.matches) {
+ document.body.classList.add("fail");
+}
+</script>
+<p>
+ To pass, the background color must be green after installing.
+</p>
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-minimal-ui-manual.tentative.html b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-minimal-ui-manual.tentative.html
new file mode 100644
index 0000000000..5b9d63977d
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-minimal-ui-manual.tentative.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>Test "minimal-ui" in display-override member + media feature</title>
+<link rel="help" href="https://w3c.github.io/manifest/#dom-displaymodetype-minimal-ui" />
+<link rel="help" href="https://w3c.github.io/manifest/#the-display-mode-media-feature" />
+<link rel="manifest" href="resources/display-override-member-media-feature-minimal-ui.webmanifest" />
+<script src="resources/display-override-member-media-feature-manual.js"></script>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<h1>Test "minimal-ui" in display-override member + media feature</h1>
+<style>
+ .fail {
+ background-color: red;
+ }
+
+ @media all and (display-mode: minimal-ui) {
+ body {
+ background-color: green;
+ }
+ }
+</style>
+<script>
+const minimalUi = matchMedia("(display-mode: minimal-ui)");
+
+minimalUi.onchange = () => {
+ if (minimalUi.matches) {
+ document.body.classList.remove("fail");
+ }
+}
+
+if (!minimalUi.matches) {
+ document.body.classList.add("fail");
+}
+</script>
+<p>
+ To pass, the background color must be green after installing.
+</p>
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-service-worker.js b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-service-worker.js
new file mode 100644
index 0000000000..02818dc665
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-service-worker.js
@@ -0,0 +1,59 @@
+// Some user agents only offer app installation if there is a SW and it handles
+// offline requests.
+
+const cacheVersion = "1.2";
+const CACHE_NAME = `cache-v${cacheVersion}`;
+
+// The resources cached by this service worker.
+const resources = [
+ "display-override-member-app-region-window-controls-overlay-manual.tentative.html",
+ "display-override-member-css-environment-variables-window-controls-overlay-manual.tentative.html",
+ "display-override-member-media-feature-browser-manual.tentative.html",
+ "display-override-member-media-feature-fullscreen-manual.tentative.html",
+ "display-override-member-media-feature-minimal-ui-manual.tentative.html",
+ "display-override-member-media-feature-standalone-manual.tentative.html",
+ "display-override-member-media-feature-standalone-overrides-browser-manual.tentative.html",
+ "display-override-member-media-feature-window-controls-overlay-overrides-browser-manual.tentative.html",
+ "display-override-member-media-feature-service-worker.js",
+ "resources/display-override-member-media-feature-manual.js",
+ "resources/icon.png",
+];
+
+// Load all resources for this service worker.
+const precache = async () => {
+ const cache = await caches.open(CACHE_NAME);
+ await cache.addAll(resources);
+};
+
+// Get a resource from the cache.
+const fromCache = async request => {
+ const cache = await caches.open(CACHE_NAME);
+ return await cache.match(request.url);
+};
+
+// Attempt to get resources from the network first, fallback to the cache if we're
+// offline.
+const networkFallbackToCache = async request => {
+ try {
+ const response = await fetch(request);
+ if (response.ok) return response;
+ } catch (err) {}
+ return await fromCache(request);
+};
+
+// When we have a new service worker, update the caches and swap immediately.
+self.addEventListener("install", e => {
+ e.waitUntil(precache().then(() => self.skipWaiting()));
+});
+
+// Claim existing clients.
+self.addEventListener("activate", e => {
+ e.waitUntil(self.clients.claim());
+});
+
+// When a resource need to be fetched, check whether it is
+// contained in the cache and return the cached version, otherwise
+// get it from the network.
+self.addEventListener("fetch", e => {
+ e.respondWith(networkFallbackToCache(e.request));
+});
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-standalone-manual.tentative.html b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-standalone-manual.tentative.html
new file mode 100644
index 0000000000..db1ed38929
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-standalone-manual.tentative.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>Test "standalone" in display-override member + media feature</title>
+<link rel="help" href="https://w3c.github.io/manifest/#the-display-mode-media-feature" />
+<link rel="help" href="https://w3c.github.io/manifest/#dom-displaymodetype-standalone" />
+<link rel="manifest" href="resources/display-override-member-media-feature-standalone.webmanifest" />
+<script src="resources/display-override-member-media-feature-manual.js"></script>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<h1>Test "standalone" in display-override member + media feature</h1>
+<style>
+ .fail {
+ background-color: red;
+ }
+
+ @media all and (display-mode: standalone) {
+ body {
+ background-color: green;
+ }
+ }
+</style>
+<script>
+const standalone = matchMedia("(display-mode: standalone)");
+
+standalone.onchange = () => {
+ if (standalone.matches) {
+ document.body.classList.remove("fail");
+ }
+}
+
+if (!standalone.matches) {
+ document.body.classList.add("fail");
+}
+</script>
+<p>
+ To pass, the background color must be green after installing.
+</p>
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-standalone-overrides-browser-manual.tentative.html b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-standalone-overrides-browser-manual.tentative.html
new file mode 100644
index 0000000000..d42feb3fe2
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-standalone-overrides-browser-manual.tentative.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<title>Test "standalone" in display-override member + "browser" in display member + media feature</title>
+<link rel="help" href="https://w3c.github.io/manifest#display-member" />
+<link rel="help" href="https://w3c.github.io/manifest/#the-display-mode-media-feature" />
+<link rel="help" href="https://w3c.github.io/manifest/#dom-displaymodetype-browser" />
+<link rel="help" href="https://w3c.github.io/manifest/#dom-displaymodetype-standalone" />
+<link rel="manifest" href="resources/display-override-member-media-feature-standalone-overrides-browser.webmanifest" />
+<script src="resources/display-override-member-media-feature-manual.js"></script>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<h1>Test "standalone" in display-override member + "browser" in display member + media feature</h1>
+<style>
+ .fail {
+ background-color: red;
+ }
+
+ @media all and (display-mode: standalone) {
+ body {
+ background-color: green;
+ }
+ }
+</style>
+<script>
+const standalone = matchMedia("(display-mode: standalone)");
+
+standalone.onchange = () => {
+ if (standalone.matches) {
+ document.body.classList.remove("fail");
+ }
+}
+
+if (!standalone.matches) {
+ document.body.classList.add("fail");
+}
+</script>
+<p>
+ To pass, the background color must be green after installing.
+</p>
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-window-controls-overlay-overrides-browser-manual.tentative.html b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-window-controls-overlay-overrides-browser-manual.tentative.html
new file mode 100644
index 0000000000..0929b43dec
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/display-override-member-media-feature-window-controls-overlay-overrides-browser-manual.tentative.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<title>Test "window-controls-overlay" in display-override member + "browser" in display member + media feature</title>
+<link rel="help" href="https://w3c.github.io/manifest#display-member" />
+<link rel="help" href="https://w3c.github.io/manifest/#the-display-mode-media-feature" />
+<link rel="help" href="https://w3c.github.io/manifest/#dom-displaymodetype-browser" />
+<link rel="manifest" href="resources/display-override-member-media-feature-window-controls-overlay-overrides-browser.webmanifest" />
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<script src="resources/display-override-member-media-feature-manual.js"></script>
+<h1>Test "window-controls-overlay" in display-override member + "browser" in display member + media feature</h1>
+<style>
+ .fail {
+ background-color: red;
+ }
+
+ @media all and (display-mode: standalone) {
+ body {
+ background-color: green;
+ }
+ }
+</style>
+<script>
+const standalone = matchMedia("(display-mode: standalone)");
+
+standalone.onchange = () => {
+ if (standalone.matches) {
+ document.body.classList.remove("fail");
+ }
+}
+
+if (!standalone.matches) {
+ document.body.classList.add("fail");
+}
+</script>
+
+<p>This test validates that the display-mode property is 'standalone' when the
+ installed app is running in "window-controls-overlay" mode.</p>
+<h2>Manual Test Steps:</h2>
+<p>
+ <ol>
+ <li>Install this app, and toggle into "window-controls-overlay" mode.</li>
+ <li>The background will be green if the test pases, otherwise red.</li>
+ </ol>
+</p>
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-app-region-window-controls-overlay.webmanifest b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-app-region-window-controls-overlay.webmanifest
new file mode 100644
index 0000000000..a5f3af06b7
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-app-region-window-controls-overlay.webmanifest
@@ -0,0 +1,12 @@
+{
+ "name": "Window Controls Overlay - app-region",
+ "icons": [
+ {
+ "src": "icon.png",
+ "sizes": "192x192"
+ }
+ ],
+ "start_url": "../display-override-member-app-region-window-controls-overlay-manual.tentative.html",
+ "display": "browser",
+ "display_override": [ "window-controls-overlay" ]
+}
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-app-region-window-controls-overlay.webmanifest.headers b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-app-region-window-controls-overlay.webmanifest.headers
new file mode 100644
index 0000000000..2bab061d43
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-app-region-window-controls-overlay.webmanifest.headers
@@ -0,0 +1 @@
+Content-Type: application/manifest+json; charset=utf-8
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-css-environment-variables-window-controls-overlay.webmanifest b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-css-environment-variables-window-controls-overlay.webmanifest
new file mode 100644
index 0000000000..ebfc0a0bd9
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-css-environment-variables-window-controls-overlay.webmanifest
@@ -0,0 +1,12 @@
+{
+ "name": "Window Controls Overlay - CSS environment variables",
+ "icons": [
+ {
+ "src": "icon.png",
+ "sizes": "192x192"
+ }
+ ],
+ "start_url": "../display-override-member-css-environment-variables-window-controls-overlay-manual.tentative.html",
+ "display": "browser",
+ "display_override": [ "window-controls-overlay" ]
+}
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-css-environment-variables-window-controls-overlay.webmanifest.headers b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-css-environment-variables-window-controls-overlay.webmanifest.headers
new file mode 100644
index 0000000000..2bab061d43
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-css-environment-variables-window-controls-overlay.webmanifest.headers
@@ -0,0 +1 @@
+Content-Type: application/manifest+json; charset=utf-8
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-browser.webmanifest b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-browser.webmanifest
new file mode 100644
index 0000000000..a384f6f2c8
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-browser.webmanifest
@@ -0,0 +1,11 @@
+{
+ "name": "Display override member media feature WPT",
+ "icons": [
+ {
+ "src": "icon.png",
+ "sizes": "192x192"
+ }
+ ],
+ "start_url": "../display-override-member-media-feature-browser-manual.tentative.html",
+ "display_override": [ "browser" ]
+}
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-browser.webmanifest.headers b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-browser.webmanifest.headers
new file mode 100644
index 0000000000..2bab061d43
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-browser.webmanifest.headers
@@ -0,0 +1 @@
+Content-Type: application/manifest+json; charset=utf-8
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-fullscreen.webmanifest b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-fullscreen.webmanifest
new file mode 100644
index 0000000000..70cad0a0ca
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-fullscreen.webmanifest
@@ -0,0 +1,11 @@
+{
+ "name": "Display override member media feature WPT",
+ "icons": [
+ {
+ "src": "icon.png",
+ "sizes": "192x192"
+ }
+ ],
+ "start_url": "../display-override-member-media-feature-fullscreen-manual.tentative.html",
+ "display_override": [ "fullscreen" ]
+}
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-fullscreen.webmanifest.headers b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-fullscreen.webmanifest.headers
new file mode 100644
index 0000000000..2bab061d43
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-fullscreen.webmanifest.headers
@@ -0,0 +1 @@
+Content-Type: application/manifest+json; charset=utf-8
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-manual.js b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-manual.js
new file mode 100644
index 0000000000..eca350245f
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-manual.js
@@ -0,0 +1,4 @@
+if ('serviceWorker' in navigator) {
+ navigator.serviceWorker.register(
+ 'display-override-member-media-feature-service-worker.js');
+}
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-minimal-ui.webmanifest b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-minimal-ui.webmanifest
new file mode 100644
index 0000000000..474f58526b
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-minimal-ui.webmanifest
@@ -0,0 +1,11 @@
+{
+ "name": "Display override member media feature WPT",
+ "icons": [
+ {
+ "src": "icon.png",
+ "sizes": "192x192"
+ }
+ ],
+ "start_url": "../display-override-member-media-feature-browser-manual.tentative.html",
+ "display_override": [ "minimal-ui" ]
+}
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-minimal-ui.webmanifest.headers b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-minimal-ui.webmanifest.headers
new file mode 100644
index 0000000000..2bab061d43
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-minimal-ui.webmanifest.headers
@@ -0,0 +1 @@
+Content-Type: application/manifest+json; charset=utf-8
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone-overrides-browser.webmanifest b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone-overrides-browser.webmanifest
new file mode 100644
index 0000000000..dcdd293ab7
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone-overrides-browser.webmanifest
@@ -0,0 +1,12 @@
+{
+ "name": "Display override member media feature WPT",
+ "icons": [
+ {
+ "src": "icon.png",
+ "sizes": "192x192"
+ }
+ ],
+ "start_url": "../display-override-member-media-feature-browser-manual.tentative.html",
+ "display": "browser",
+ "display_override": [ "standalone" ]
+}
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone-overrides-browser.webmanifest.headers b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone-overrides-browser.webmanifest.headers
new file mode 100644
index 0000000000..2bab061d43
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone-overrides-browser.webmanifest.headers
@@ -0,0 +1 @@
+Content-Type: application/manifest+json; charset=utf-8
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone.webmanifest b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone.webmanifest
new file mode 100644
index 0000000000..dfd6b77a25
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone.webmanifest
@@ -0,0 +1,11 @@
+{
+ "name": "Display override member media feature WPT",
+ "icons": [
+ {
+ "src": "icon.png",
+ "sizes": "192x192"
+ }
+ ],
+ "start_url": "../display-override-member-media-feature-browser-manual.tentative.html",
+ "display_override": [ "standalone" ]
+}
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone.webmanifest.headers b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone.webmanifest.headers
new file mode 100644
index 0000000000..2bab061d43
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-standalone.webmanifest.headers
@@ -0,0 +1 @@
+Content-Type: application/manifest+json; charset=utf-8
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-window-controls-overlay-overrides-browser.webmanifest b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-window-controls-overlay-overrides-browser.webmanifest
new file mode 100644
index 0000000000..75e91eaf87
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-window-controls-overlay-overrides-browser.webmanifest
@@ -0,0 +1,12 @@
+{
+ "name": "Window Controls Overlay - CSS environment variables",
+ "icons": [
+ {
+ "src": "icon.png",
+ "sizes": "192x192"
+ }
+ ],
+ "start_url": "../display-override-member-media-feature-window-controls-overlay-overrides-browser-manual.tentative.html",
+ "display": "browser",
+ "display_override": [ "window-controls-overlay" ]
+}
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-window-controls-overlay-overrides-browser.webmanifest.headers b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-window-controls-overlay-overrides-browser.webmanifest.headers
new file mode 100644
index 0000000000..2bab061d43
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/display-override-member-media-feature-window-controls-overlay-overrides-browser.webmanifest.headers
@@ -0,0 +1 @@
+Content-Type: application/manifest+json; charset=utf-8
diff --git a/testing/web-platform/tests/appmanifest/display-override-member/resources/icon.png b/testing/web-platform/tests/appmanifest/display-override-member/resources/icon.png
new file mode 100644
index 0000000000..637cc8daf4
--- /dev/null
+++ b/testing/web-platform/tests/appmanifest/display-override-member/resources/icon.png
Binary files differ