New issue
Advanced search Search tips

Issue 843018 link

Starred by 4 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug

Blocking:
issue 578890



Sign in to add a comment

[ozone/wayland] Add support for window interactions in Ozone (maximize/minimize and etc)

Project Member Reported by msi...@igalia.com, May 15 2018

Issue description

Also implement IsFullScreenMode() in chrome/browser/fullscreen_ozone
 

Comment 1 by msi...@igalia.com, May 17 2018

Blocking: 578890
Labels: Proj-Ozone

Comment 2 by msi...@igalia.com, May 17 2018

Status: Started (was: Untriaged)
Project Member

Comment 3 by bugdroid1@chromium.org, May 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c99ae3b88d7b6e01097a208ed08416cfc0efb896

commit c99ae3b88d7b6e01097a208ed08416cfc0efb896
Author: Maksim Sisov <msisov@igalia.com>
Date: Mon May 21 07:09:54 2018

[ozone/platform/wayland/x11] Fix minimize/maximize/fullscreen/restore support

This commit adds IsMinimized/IsMaximized/IsFullscreen to
PlatformWindow and makes DesktopWindowTreeHostPlatform use it.

What is more, DesktopWindowTreeHostPlatform also updates
compositor's visibility based on OnWindowStateChanged's

ui::PlatformWindowState, and does relayouting to update
OpaqueBrowserFrameView's buttons.

TEST = ozone_unittests and manual testing with ./out/ozone/chrome
--ozone-platform=wayland --in-process-gpu.

Bug: 843018
Change-Id: Ic7d671a3954dc5a700b9f0ffecbba0b707a31ca9
Reviewed-on: https://chromium-review.googlesource.com/1058792
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
Cr-Commit-Position: refs/heads/master@{#560238}
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/chrome/browser/fullscreen_ozone.cc
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/ozone/platform/drm/host/drm_window_host.cc
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/ozone/platform/drm/host/drm_window_host.h
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/ozone/platform/wayland/wayland_window.cc
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/ozone/platform/wayland/wayland_window.h
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/ozone/platform/wayland/wayland_window_unittest.cc
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/platform_window/platform_window.h
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/platform_window/stub/stub_window.cc
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/platform_window/stub/stub_window.h
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/platform_window/win/win_window.cc
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/platform_window/win/win_window.h
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/platform_window/x11/x11_window_base.cc
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/platform_window/x11/x11_window_base.h
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
[modify] https://crrev.com/c99ae3b88d7b6e01097a208ed08416cfc0efb896/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8f2591aee2f2977b0904b0c44393b57b40e58626

commit 8f2591aee2f2977b0904b0c44393b57b40e58626
Author: Maksim Sisov <msisov@igalia.com>
Date: Thu Jun 21 06:44:02 2018

[ozone/wayland] Manually handle fullscreen states.

In order to ensure media files can enter fullscreen mode, manually
handle fullscreen states. Basically, a compositor sends configuration
events on each request for state changes from clients asynchronously,
which is unefficient for media files when they enter a fullscreen mode.

For example, when a youtube video file is being set to fullscreen, a
WaylandWindow is also set to a fullscreen mode, but the return value from
the WaylandWindow::GetPlatformWindowState still contains an old value until
the compositor calls with a configuration event. This short race is
enough for a media content to be placed in a forever "entering fullscreen"
state, which never results in a fullscreen state for media files.

Bug: 843018
TEST: XdgVersionV5Test/WaylandWindowTest.SetFullscreenAndRestore/0
XdgVersionV6Test/WaylandWindowTest.SetFullscreenAndRestore/0

Change-Id: Ib9bc8c0ce09412c36437d165efc6a0cad60c4d17
Reviewed-on: https://chromium-review.googlesource.com/1107636
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
Cr-Commit-Position: refs/heads/master@{#569172}
[modify] https://crrev.com/8f2591aee2f2977b0904b0c44393b57b40e58626/ui/ozone/platform/wayland/wayland_window.cc
[modify] https://crrev.com/8f2591aee2f2977b0904b0c44393b57b40e58626/ui/ozone/platform/wayland/wayland_window_unittest.cc

Comment 5 by msi...@igalia.com, Jun 21 2018

Status: Fixed (was: Started)

Comment 6 by msi...@igalia.com, Jun 21 2018

Status: Available (was: Fixed)
Project Member

Comment 7 by bugdroid1@chromium.org, Jun 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fde30eeb991ca8348d5710705776c8d7d8b10c07

commit fde30eeb991ca8348d5710705776c8d7d8b10c07
Author: Martin Šrámek <msramek@chromium.org>
Date: Thu Jun 21 13:24:52 2018

Revert "[ozone/wayland] Manually handle fullscreen states."

This reverts commit 8f2591aee2f2977b0904b0c44393b57b40e58626.

Reason for revert: Likely broke DesktopMediaPickerViewsTest.
https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac10.10%20Tests/33273

Original change's description:
> [ozone/wayland] Manually handle fullscreen states.
> 
> In order to ensure media files can enter fullscreen mode, manually
> handle fullscreen states. Basically, a compositor sends configuration
> events on each request for state changes from clients asynchronously,
> which is unefficient for media files when they enter a fullscreen mode.
> 
> For example, when a youtube video file is being set to fullscreen, a
> WaylandWindow is also set to a fullscreen mode, but the return value from
> the WaylandWindow::GetPlatformWindowState still contains an old value until
> the compositor calls with a configuration event. This short race is
> enough for a media content to be placed in a forever "entering fullscreen"
> state, which never results in a fullscreen state for media files.
> 
> Bug: 843018
> TEST: XdgVersionV5Test/WaylandWindowTest.SetFullscreenAndRestore/0
> XdgVersionV6Test/WaylandWindowTest.SetFullscreenAndRestore/0
> 
> Change-Id: Ib9bc8c0ce09412c36437d165efc6a0cad60c4d17
> Reviewed-on: https://chromium-review.googlesource.com/1107636
> Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
> Commit-Queue: Maksim Sisov <msisov@igalia.com>
> Cr-Commit-Position: refs/heads/master@{#569172}

TBR=rjkroege@chromium.org,msisov@igalia.com

Change-Id: I9920185d61395a70663fa184e834592f02176da3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 843018
Reviewed-on: https://chromium-review.googlesource.com/1110057
Reviewed-by: Martin Šrámek <msramek@chromium.org>
Commit-Queue: Martin Šrámek <msramek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569239}
[modify] https://crrev.com/fde30eeb991ca8348d5710705776c8d7d8b10c07/ui/ozone/platform/wayland/wayland_window.cc
[modify] https://crrev.com/fde30eeb991ca8348d5710705776c8d7d8b10c07/ui/ozone/platform/wayland/wayland_window_unittest.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/022ec12f9b54c29530f126c28779dcd41e0f1a31

commit 022ec12f9b54c29530f126c28779dcd41e0f1a31
Author: Maksim Sisov <msisov@igalia.com>
Date: Wed Jun 27 11:31:19 2018

Reland "[ozone/wayland] Manually handle fullscreen states."

This is a reland of 8f2591aee2f2977b0904b0c44393b57b40e58626

Original change's description:
> [ozone/wayland] Manually handle fullscreen states.
> 
> In order to ensure media files can enter fullscreen mode, manually
> handle fullscreen states. Basically, a compositor sends configuration
> events on each request for state changes from clients asynchronously,
> which is unefficient for media files when they enter a fullscreen mode.
> 
> For example, when a youtube video file is being set to fullscreen, a
> WaylandWindow is also set to a fullscreen mode, but the return value from
> the WaylandWindow::GetPlatformWindowState still contains an old value until
> the compositor calls with a configuration event. This short race is
> enough for a media content to be placed in a forever "entering fullscreen"
> state, which never results in a fullscreen state for media files.
> 
> Bug: 843018
> TEST: XdgVersionV5Test/WaylandWindowTest.SetFullscreenAndRestore/0
> XdgVersionV6Test/WaylandWindowTest.SetFullscreenAndRestore/0
> 
> Change-Id: Ib9bc8c0ce09412c36437d165efc6a0cad60c4d17
> Reviewed-on: https://chromium-review.googlesource.com/1107636
> Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
> Commit-Queue: Maksim Sisov <msisov@igalia.com>
> Cr-Commit-Position: refs/heads/master@{#569172}

Bug: 843018
Change-Id: I63866a785f5dca088aba70e500d85748b86e8a8c
Reviewed-on: https://chromium-review.googlesource.com/1113238
Commit-Queue: Maksim Sisov <msisov@igalia.com>
Reviewed-by: Maksim Sisov <msisov@igalia.com>
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570730}
[modify] https://crrev.com/022ec12f9b54c29530f126c28779dcd41e0f1a31/ui/ozone/platform/wayland/wayland_window.cc
[modify] https://crrev.com/022ec12f9b54c29530f126c28779dcd41e0f1a31/ui/ozone/platform/wayland/wayland_window_unittest.cc

Comment 9 by msi...@igalia.com, Jun 29 2018

Labels: OS-Linux
Status: Fixed (was: Available)
Status: Available (was: Fixed)
chrome/browser/fullscreen_ozone needs also to be implemented
You re-opened the bug because chrome/browser/fullscreen_ozone remains? 
correct. I realized fullscreen_ozone hasn't been implemented yet.
Status: Assigned (was: Available)
Cc: toniki...@chromium.org
 Issue 784836  has been merged into this issue.
Labels: Wayland
Summary: [ozone/wayland] Add support for window interactions in Ozone (maximize/minimize and etc) (was: Add support for window interactions in Ozone (maximize/minimize and etc))
Components: UI
Project Member

Comment 17 by bugdroid1@chromium.org, Oct 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f154daab631433d3d9706af7f3512aa6b196e52f

commit f154daab631433d3d9706af7f3512aa6b196e52f
Author: Maksim Sisov <msisov@igalia.com>
Date: Fri Oct 12 06:36:54 2018

[ozone/wayland] Fix kiosk mode.

This CL fixes a fullscreen state changes before the surface is
activated.

That is, Wayland may ignore fullscreen changes before the surface
is activated. Thus, store a pending state, and once the surface
is activated, trigger the change.

Change-Id: I8c0b995eb9f282f6be16e82d094d9dd93821a60a
Bug: 843018
Reviewed-on: https://chromium-review.googlesource.com/c/1275885
Reviewed-by: Antonio Gomes <tonikitoo@igalia.com>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
Cr-Commit-Position: refs/heads/master@{#599120}
[modify] https://crrev.com/f154daab631433d3d9706af7f3512aa6b196e52f/ui/ozone/platform/wayland/wayland_window.cc
[modify] https://crrev.com/f154daab631433d3d9706af7f3512aa6b196e52f/ui/ozone/platform/wayland/wayland_window.h
[modify] https://crrev.com/f154daab631433d3d9706af7f3512aa6b196e52f/ui/ozone/platform/wayland/wayland_window_unittest.cc

Owner: ----
Status: Available (was: Assigned)
Cc: ligim...@chromium.org
Labels: Hotlist-DesktopUIChecked
***UI Mass Triage ***

If there is no pending work, please feel free to close the issue.

Sign in to add a comment