From e313f31530030a134ab4caa4385fbd640f22c3f1 Mon Sep 17 00:00:00 2001 From: Matt Giuca Date: Wed, 25 May 2022 14:45:03 +1000 Subject: [PATCH] Move the definition of display-mode back to APPMANIFEST. Closes #7306. This text was moved out of the Manifest spec into CSS mediaqueries-5 in w3c/csswg-drafts#6343, along with the display-mode media feature. The actual definition of display mode belongs in Manifest, while the display-mode media feature remains here. Added some more text explaining how the display-mode media feature works given that this is in a separate spec to where web apps are defined. --- mediaqueries-5/Overview.bs | 116 +++++++++++-------------------------- 1 file changed, 33 insertions(+), 83 deletions(-) diff --git a/mediaqueries-5/Overview.bs b/mediaqueries-5/Overview.bs index 20f0e8662b3..5cb719e4480 100644 --- a/mediaqueries-5/Overview.bs +++ b/mediaqueries-5/Overview.bs @@ -1306,72 +1306,22 @@ Display Modes: the ''display-mode'' media feature Type: discrete - The 'display-mode' media feature represents the [=display mode=] of the web application. + The 'display-mode' media feature represents the [=display mode=] of the current [=browsing context=]. Child browsing contexts reflect the [=display mode=] of their [=top-level browsing context=]. - A display mode represents - how the web application is being presented within the context of an OS (e.g., in fullscreen, etc.). - Display modes correspond to user interface (UI) metaphors - and functionality in use on a given platform. - The UI conventions of the display modes are purely advisory - and implementers are free to interpret them how they best see fit. + The values of this feature correspond to the [=display mode|display modes=] defined in + [[APPMANIFEST]]. However, this media feature reflects the actual display mode that is being used + on the current browsing context, not necessarily the one that was requested in the web app + manifest (if any). - This specification defines the following [=display modes=]: -
-
fullscreen -
- The web application is displayed with browser UI elements hidden - and takes up the entirety of the available display area. - -
standalone -
- The web application is displayed to look and feel like a standalone native application. - This can include the application having a different window, - its own icon in the application launcher, etc. - In this mode, - the user agent excludes standard browser UI elements - such as an URL bar, - but standard system UI elements, - such as window decorations, a system status bar, and/or a system back button, - remain available. - -
minimal-ui -
- This mode is similar to [=display mode/standalone=], - but provides the end-user with some means to access - a minimal set of UI elements for controlling navigation - (i.e., back, forward, reload, and perhaps some way of viewing the document's address). - A user agent may include other platform specific UI elements, - such as "share" and "print" buttons - or whatever is customary on the platform and user agent. - -
browser -
- The web application is displayed using the platform-specific convention - for opening hyperlinks in the user agent - (e.g., in a browser tab or a new window). - -
picture-in-picture -
- This mode allows users to continue consuming media while they interact - with other sites or applications on their device. - The web application is displayed in a floating and always-on-top window. - A user agent may include other platform specific UI elements, - such as "back-to-tab" and "site information" buttons - or whatever is customary on the platform and user agent. - -
+ On normal web pages, 'display-mode' will have a value of 'browser'. Only pages appearing in the + context of an [=installed web application=] can have a different 'display-mode', reflecting the + way in which the application window is being presented to the end user.
The [=display mode/fullscreen=] [=display mode=] is distinct from the [[FULLSCREEN|Fullscreen API]]. - The [=display mode/fullscreen=] [=display mode=] describes the fullscreen state of the browser viewport, - while the [[FULLSCREEN|Fullscreen API]] operates on an element contained within the viewport. - As such, a web application can have its [=display mode=] set to [=display mode/fullscreen=], - even while {{fullscreenElement}} returns null, - and {{fullscreenEnabled}} returns false. - - The ''fullscreen'' display mode is also not directly related + The ''fullscreen'' value for [=display-mode=] is not directly related to the CSS '':fullscreen'' pseudo-class. The '':fullscreen'' pseudo-class matches an element exclusively when that element is put into the fullscreen element stack. @@ -1379,31 +1329,31 @@ Display Modes: the ''display-mode'' media feature on an element using the [[FULLSCREEN|Fullscreen API]] can be that the browser enters a fullscreen mode at the OS-level, in which case both '':fullscreen'' and ''(display-mode: fullscreen)'' will match. -
-
- On some platforms, - it is possible for a user-- - or a [[APPMANIFEST|Web Application Manifest]]-- - to put a web application into fullscreen - without invoking the [[FULLSCREEN|Fullscreen API]]. - When this happens, - the '':fullscreen'' pseudo class will not match, - but ''(display-mode: fullscreen)'' will match. - This is exemplified in CSS code below: - -
-			/* applies when the viewport is fullscreen */
-			@media (display-mode: fullscreen) {
-				...
-			}
+		
+ On some platforms, + it is possible for a user-- + or a [[APPMANIFEST|Web Application Manifest]]-- + to put a web application into fullscreen + without invoking the [[FULLSCREEN|Fullscreen API]]. + When this happens, + the '':fullscreen'' pseudo class will not match, + but ''(display-mode: fullscreen)'' will match. + This is exemplified in CSS code below: + +
+				/* applies when the viewport is fullscreen */
+				@media (display-mode: fullscreen) {
+					...
+				}
 
-			/* applies when an element is fullscreen */
-			#game:fullscreen {
-				...
-			}
-		
-
+ /* applies when an element is fullscreen */ + #game:fullscreen { + ... + } +
+
+