Ozone/Wayland implement async window state changes [chromium/src : main]

0 views
Skip to first unread message

Hidehiko Abe (Gerrit)

unread,
May 8, 2026, 5:25:05 AMMay 8
to Patryk Chodur, Mitsuru Oshima, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, ozone-...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, pwa-com...@google.com
Attention needed from Patryk Chodur

Hidehiko Abe added 6 comments

Patchset-level comments
File-level comment, Patchset 4 (Latest):
Hidehiko Abe . resolved

My initial scan.

First of all, thank you for taking a look into the work!
Then, ... TBH, ...I'm wondering if we're moving towards to the same direction. Now, I replied some design questions below, and skipped detailed code reviews, because the strategy/implementation may need to be largely changed.
Could you take a look into my questions below? Also, if needed, please feel free to reach out to me over IM etc. or maybe VC for better iteration.

File ui/ozone/platform/wayland/host/wayland_toplevel_window.cc
Line 210, Patchset 4 (Parent): if (fullscreen) {
Hidehiko Abe . unresolved

I'm confused. For async model, we expect async-ness is handled in server side, not client side, so we should send the xdg API instantly.

Line 241, Patchset 4 (Latest): if (IsSurfaceConfigured()) {
Hidehiko Abe . unresolved

so in the sense, this block should be removed entirely once async model is being made. We expect onWindowStateChanged is called as a reaction to the response from the server.

Line 818, Patchset 4 (Latest): if (base::FeatureList::IsEnabled(features::kAsyncFullscreenWindowState)) {
Hidehiko Abe . unresolved

same as above.

File ui/ozone/platform/wayland/host/wayland_window_unittest.cc
Line 476, Patchset 4 (Latest):void WaylandWindowTest::DoMinimizeTest(bool async_state) {
Hidehiko Abe . unresolved

May I ask you a bit help to make this code review more reliable by introducing a intermediate PS that just "moves" the code from TEST_* section below to here, so that "what was changed" conceptually can be highlighted by gerrity? Surely, the patch does not need to be compiled. I'd expect almost no-change, but some small parts may be updated, I think. Using tool is more reliable than diff by my eyes :-)

Line 1546, Patchset 4 (Latest): EXPECT_CALL(*xdg_surface->xdg_toplevel(), SetMaximized()).Times(2);
Hidehiko Abe . unresolved

I don't think we should call this twice...

Open in Gerrit

Related details

Attention is currently required from:
  • Patryk Chodur
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I96c443777480ea3908eadffc32b6c3dd6a6a6964
Gerrit-Change-Number: 7806516
Gerrit-PatchSet: 4
Gerrit-Owner: Patryk Chodur <pch...@google.com>
Gerrit-Reviewer: Hidehiko Abe <hide...@chromium.org>
Gerrit-Reviewer: Patryk Chodur <pch...@google.com>
Gerrit-CC: Mitsuru Oshima <osh...@chromium.org>
Gerrit-Attention: Patryk Chodur <pch...@google.com>
Gerrit-Comment-Date: Fri, 08 May 2026 09:24:36 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Patryk Chodur (Gerrit)

unread,
May 8, 2026, 10:47:30 AMMay 8
to Mitsuru Oshima, Hidehiko Abe, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, ozone-...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, pwa-com...@google.com
Attention needed from Hidehiko Abe

Patryk Chodur added 4 comments

File ui/ozone/platform/wayland/host/wayland_toplevel_window.cc
Hidehiko Abe . unresolved

I'm confused. For async model, we expect async-ness is handled in server side, not client side, so we should send the xdg API instantly.

Line 241, Patchset 4 (Latest): if (IsSurfaceConfigured()) {
Hidehiko Abe . unresolved

so in the sense, this block should be removed entirely once async model is being made. We expect onWindowStateChanged is called as a reaction to the response from the server.

Patryk Chodur

This can be cleared out, thanks for pointing that out. I fixed it in the new revision - xdg_toplevel_->SetMinimized() is used directly only with the feature flag disabled. If it is enabled, we just call `SetWindowState`.

Line 818, Patchset 4 (Latest): if (base::FeatureList::IsEnabled(features::kAsyncFullscreenWindowState)) {
Hidehiko Abe . unresolved

same as above.

Patryk Chodur

The `RequestState` is called so that all the variables related to the state are set properly. We call the OnWindowStateChanged only from configure event though.

File ui/ozone/platform/wayland/host/wayland_window_unittest.cc
Line 1546, Patchset 4 (Latest): EXPECT_CALL(*xdg_surface->xdg_toplevel(), SetMaximized()).Times(2);
Hidehiko Abe . unresolved

I don't think we should call this twice...

Patryk Chodur

It is called from Restore() when exiting Fullscreen to Maximized. The whole test flow is
kNormal -> Maximize() -> kMaximized -> SetFullscreen() -> kFullScreen -> Restore() -> kMaximized

Open in Gerrit

Related details

Attention is currently required from:
  • Hidehiko Abe
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I96c443777480ea3908eadffc32b6c3dd6a6a6964
Gerrit-Change-Number: 7806516
Gerrit-PatchSet: 4
Gerrit-Owner: Patryk Chodur <pch...@google.com>
Gerrit-Reviewer: Hidehiko Abe <hide...@chromium.org>
Gerrit-Reviewer: Patryk Chodur <pch...@google.com>
Gerrit-CC: Mitsuru Oshima <osh...@chromium.org>
Gerrit-Attention: Hidehiko Abe <hide...@chromium.org>
Gerrit-Comment-Date: Fri, 08 May 2026 14:47:17 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Hidehiko Abe <hide...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Patryk Chodur (Gerrit)

unread,
May 11, 2026, 5:11:16 PM (13 days ago) May 11
to Mitsuru Oshima, Hidehiko Abe, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, ozone-...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, pwa-com...@google.com
Attention needed from Hidehiko Abe

Patryk Chodur added 1 comment

File ui/ozone/platform/wayland/host/wayland_window_unittest.cc
Line 476, Patchset 4:void WaylandWindowTest::DoMinimizeTest(bool async_state) {
Hidehiko Abe . resolved

May I ask you a bit help to make this code review more reliable by introducing a intermediate PS that just "moves" the code from TEST_* section below to here, so that "what was changed" conceptually can be highlighted by gerrity? Surely, the patch does not need to be compiled. I'd expect almost no-change, but some small parts may be updated, I think. Using tool is more reliable than diff by my eyes :-)

Patryk Chodur

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Hidehiko Abe
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I96c443777480ea3908eadffc32b6c3dd6a6a6964
Gerrit-Change-Number: 7806516
Gerrit-PatchSet: 7
Gerrit-Owner: Patryk Chodur <pch...@google.com>
Gerrit-Reviewer: Hidehiko Abe <hide...@chromium.org>
Gerrit-Reviewer: Patryk Chodur <pch...@google.com>
Gerrit-CC: Mitsuru Oshima <osh...@chromium.org>
Gerrit-Attention: Hidehiko Abe <hide...@chromium.org>
Gerrit-Comment-Date: Mon, 11 May 2026 21:10:58 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy
Reply all
Reply to author
Forward
0 new messages