Skip to content

Window management #198

Open
Open

Description

@github-actions

This GitHub issue is for collecting web developer signals for Window management.

The window.getScreenDetails() method gets information about the screens on a device, which you can use to place new windows on a specific screen with window.open().

Browser support

chromeunavailable edgeavailable firefoxunavailable safariunavailable
  • Chrome 111 (Mar 7, 2023)
  • Chrome Android: not supported
  • Edge 111 (Mar 13, 2023)
  • Firefox: not supported
  • Firefox for Android: not supported
  • Safari: not supported
  • Safari on iOS: not supported

Give us feedback

If you're pressed for time, but you want this feature to be available in all browsers, please give this issue a thumbs up 👍 reaction.

However, a much better guide for us is to know how you'd use this feature, and what you're having to do in the meantime. This helps us judge the priority versus other features.

Copy the template below in a comment, and add the details that matter to you.

## What I want to do with this feature

<!-- Add your specific use-cases, even if they seem obvious to you. -->

## What I'm having to do in the meantime

<!--
Are you having to use another feature instead, a polyfill, or is it blocking you completely?
Why are the alternatives worse than using this feature?
-->

All comments are expected to adhere to the Code of Conduct.

Learn more

You can learn more about this feature here:

Activity

  1. paulkorir commented on Sep 3, 2026

    @paulkorir

    What I want to do with this feature

    Exam proctoring has grown in importance since the 2020 pandemic and it is far easier to effect this through a browser than through requiring download of additional client software. One of the core requirements of proctoring is the ability to detect the presence of external monitors. Therefore, this is a critical requirement in all browsers.

    What I'm having to do in the meantime

    I have to disable using the web application on browsers that do not support this feature. Presently, I use Firefox which allows container tabs that allow me to have multiple independent user sessions on the same browser during development and testing but Firefox does not support the Window Management API. I would like to see this added to Firefox as well as part of the core supported API so that users––regardless of their browsers––can take remote exams using their browsers.

  2. Omid-Heydarzadeh commented on Oct 12, 2026

    @Omid-Heydarzadeh

    What I want to do with this feature

    I need to open a secondary report window next to the main application. On a multi-monitor setup, it should open on another screen and use that screen’s available workspace. On a single screen, it should use the opposite half of the current screen—horizontally in landscape orientation or vertically in portrait orientation.

    This requires access to the available screens, their positions and dimensions, and identification of the screen containing the current window.

    What I'm having to do in the meantime

    Without the Window Management API, I only have limited information about the current screen. I can approximate side-by-side placement on a single display, but on multi-monitor systems I must guess the coordinates and use a fixed window size.

    This fallback is unreliable because monitor arrangements, resolutions, scaling factors, available work areas, and taskbar positions vary. The report window may therefore open on the wrong monitor, be partially off-screen, or have an unsuitable size. There is no dependable polyfill because ordinary web APIs do not expose the geometry of all connected displays.

  3. M68HC060 commented on Oct 12, 2026

    @M68HC060

    What I want to do with this feature

    I want to make a presentation "web-site" (instead of making an application in C/C++), so that it works cross-platform.

    For this, I need to have a controlling window and a window that is shown on a projector.
    I want this window to be full-screen.
    Most of my presentation features are automatic, but I can't get sound to work automatically, "for security reasons".

    (It really annoys me that browsers have been crippled, featuers been disabled over the years, so we can't make things work well any longer.
    -AT LEAST, all features should be present when opening a file://.../index.html and all files inside the same directory / subdirectories of the same directory).

    I'd very much like to be able to identify screens by hardware (which connector they're connected to), by size (already possible, unless someone changed resolution - changing resolution on the main screen is also a problem, especially when having 3 screens and the main screen is changed to a different monitor).

    What I'm having to do in the meantime

    Click, click, click and click. Teach others what to click on and they think it's complicated, they forget what they had to do and they can't seem to learn it.
    -I can't use polyfill for this. Sometimes I have to hardcode coordinates and sizes, but it can't fix much.
    There really aren't any alternatives, except from writing an application from scratch in C or C++. This approach will basically need a browser-view, thus I have to write my own web-browser, just to make this presentation stuff work.

    My users (which are about 4-5 people in the same place), often start by pressing the "Full Window" button or resizes the window and that messes up the window-size, which the browser saved from last time. That makes things move around in such a way that they're inconvenien (many objects have fixed sizes, such as a DIV containing a preview of the thing to be displayed on the screen).

    Current solution for identifying screens: The position of the screen. I use "leftmost" and "rightmost" screens, found by traversing screen[n], and finding the highest and lowest values of 'left'. This won't always work if having 3 displays or more; then I'd have to be able to identify the displays by model, manufacturer, capabilities, possibly features, etc., save the identification in localStorage and hope that I can recognize the displays on the next run (avoiding users complaining "It doesn't work - it never works!").

    Edit: I sometimes need to hide my fullscreen-display (eg. the one on the projector), to reveal another presentation below my window (let's say it's a PowerPoint, but it's not).
    I cannot hide my "popup-window" (the fullscreen-window) so I can later unhide it, when the "PowerPoint" presentation is finished.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions