Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Initiate a multi-screen experience from a single user activation #98

Open
michaelwasserman opened this issue May 9, 2022 · 12 comments
Assignees
Labels
enhancement New feature or request

Comments

@michaelwasserman
Copy link
Member

An API partner submitted a feature request: the ability to initiate a multi-screen experience from a single user activation.
This is a reasonable request, and there are many avenues of exploration for future API enhancements in this regard.

The API partner's specific request is to request fullscreen on a specific screen, and open a popup window on another screen see https://crbug.com/1233970. This specific request seems highly actionable in the short term, since the requisite API surface already exists, and support only requires modifications of user activation gating, likely adding a separate internal slot for this specific use case, which could be generalized in the future.

Chromium is highly interested in supporting this functionality, and has some functionaly available behind a flag; see the chromestatus entry https://chromestatus.com/feature/5173162437246976.

@michaelwasserman
Copy link
Member Author

As stated in the goals of the new EXPLAINER_initiating_multi_screen_experiences.md,

An eventual end-goal (that is not explored here) is to enable scripts to enter fullscreen on N screens and open M popup windows on M screens from a single user activation, where N and M are disjoint and potentially empty sets, as long as the site has the multi-screen window-placement permission.

@lcl45
Copy link

lcl45 commented Jun 24, 2022

Opening two or more new windows directly in fullscreen would be awesome!
In the company I'm currently working this would be very useful for our software: we need a way to open automatically two new windows from a single click. In these windows we will display medical exams and information regarding the patient's health. Dealing with physicians who commonly have 2/3/more monitors and being very useful to compare the wanted exam with some others (like previous exams of the same patient), not having to enter in fullscreen in every windows manually every time would be very useful.

@morsssss
Copy link

Thanks for your comment @lcl45 ! What you describe is exactly one of our fundamental goals for this API: allowing an application to open a number of fullscreen windows after a single user activation.

@fortheday001
Copy link

This is what my company need (my company is a google api partner).
Our software open windows for each extended monitors and make each window enter fullscreen. Right now, user need to click buttons in each window to enter fullscreen,which is very inconvenient.
So we have a strong demand that user only click one button to make all windows in extended monitors enter fullscreen. It will be better if can open window directly in fullscreen no need any click.

@morsssss
Copy link

morsssss commented Aug 3, 2022

Thanks for speaking up, @fortheday001 ! All makes sense.

Would you want to say more about the application your company makes?

@fortheday001
Copy link

@morsssss Thanks, I work for VMware Horizon product. We have a strong demand that user only click one button to make all windows enter fullscreen.

@morsssss
Copy link

Ah, you're from VMWare. I see why this feature would be crucial for your product! Thanks.

@tarasinf
Copy link

Also, it would be very useful for me to open an element on multiple screens, instead of this await elem.requestFullscreen({ screen: primary } make it possible to accept a list: await elem.requestFullscreen({ screens: [] }.

@michaelwasserman
Copy link
Member Author

Thanks for your comments! There's lots to explore in this space and we would really appreciate detailed use cases to motivate these suggestions. I'll be actively soliciting more directed feedback and brainstorming as we explore this space in the coming months.

Regarding elem.requestFullscreen({ screens: [] }): It's unclear how a single element would be made fullscreen across multiple screens, especially if the union of screen bounds is non-rectilinear or even disjoint (containing other screens and/or offscreen regions).

@nadavsinai-philips
Copy link

Hello @michaelwasserman, I've participated in this spec discussion in the past as @nadavsinai.
for us in Philips medical systems, the use of a window spread over multiple screen is an every reality - in our radiology viewer.
In our current implementation - we use a Chrome Extension to solve the issue of resizing and placing it.
Giving the platform native abilities to achieve this would be great and could perhaps allow us to ditch the need of extension. (although we still have no way to do window.minimize(), but that's another issue...)

We only extend windows across multiple screens when the screens have same dimensions, for multiple screens of different resolutions/sizes - we use multiple windows.

@tarasinf
Copy link

Hello @michaelwasserman, thank you for the feedback.
In my case, I have to open the same element over all monitors (a wallpaper/ a video). It's very useful for people with multiple monitors (3, 4 or even 5).

@morsssss
Copy link

Sounds like there's a lot of interest in extending a single element across multiple screens. We're not sure quite how this would work, or if it could be made to work reliably, but given the interest we will give this some thought!

If you have more detailed ideas about how you'd like to see this work, and how this could work in the way you'd like it to, please add those here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

6 participants