Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(163)

Issue 2277563002: Wires up immersive mode for chrome and mash (Closed)

Created:
4 years, 4 months ago by sky
Modified:
4 years, 3 months ago
Reviewers:
Tom Sepez, James Cook
CC:
chromium-reviews, rjkroege, sadrul, qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, tfarina, yzshen+watch_chromium.org, abarth-chromium, Aaron Boodman, kalyank, darin (slow to review)
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Wires up immersive mode for chrome and mash There is still a slew of things to do, but this is a good start (and rather lengthy). There are two distinct ways for immersive mode to work in mash: 1. Mash takes care of it all. In this mode a separate ui::Window is created for the reveal of the title area. HeaderView is used to render the title area of the reveal in the separate window. The client does nothing special here. 2. The client takes control of it all (as happens in chrome). Chrome too creates a separate window for the reveal. This window is a child of the chrome frame. Mash knows to paint window decorations by way of a special property set on the window. Chrome runs all the immersive logic, including positioning of the reveal window. To get 2 to work I had to relax a constraint of mus, in particular this allows the window manager to set the underlay of any window. Previously only the owner could, but as 2 requires mash to set the underlay I had to relax the constraint. I also changed it so that events in the underlay always go to the window manager, not the owner as previously. BUG=634972, 640365 TEST=none R=jamescook@chromium.org, tsepez@chromium.org Committed: https://crrev.com/2d6a8e0fcb704248b64e7b65f4e76ace658a4bdf Cr-Commit-Position: refs/heads/master@{#414655}

Patch Set 1 #

Patch Set 2 : tweaks #

Patch Set 3 : fix crash #

Total comments: 35

Patch Set 4 : add back native_window_, needed because of timing #

Patch Set 5 : feedback #

Total comments: 6

Patch Set 6 : feedback #

Unified diffs Side-by-side diffs Delta from patch set Stats (+848 lines, -93 lines) Patch
M ash/common/frame/custom_frame_view_ash.h View 1 3 chunks +13 lines, -1 line 0 comments Download
M ash/common/frame/custom_frame_view_ash.cc View 6 chunks +24 lines, -15 lines 0 comments Download
M ash/common/frame/default_header_painter.cc View 1 chunk +1 line, -3 lines 0 comments Download
M ash/common/frame/header_view.h View 2 chunks +5 lines, -0 lines 0 comments Download
M ash/common/frame/header_view.cc View 1 chunk +1 line, -1 line 0 comments Download
M ash/mus/BUILD.gn View 2 chunks +7 lines, -0 lines 0 comments Download
A + ash/mus/bridge/immersive_handler_factory_mus.h View 2 chunks +9 lines, -7 lines 0 comments Download
A ash/mus/bridge/immersive_handler_factory_mus.cc View 1 chunk +43 lines, -0 lines 0 comments Download
M ash/mus/bridge/wm_shell_mus.h View 2 chunks +2 lines, -0 lines 0 comments Download
M ash/mus/bridge/wm_shell_mus.cc View 3 chunks +3 lines, -2 lines 0 comments Download
A ash/mus/frame/README.md View 1 2 3 4 5 1 chunk +30 lines, -0 lines 0 comments Download
A ash/mus/frame/custom_frame_view_mus.h View 1 2 3 4 1 chunk +34 lines, -0 lines 0 comments Download
A ash/mus/frame/custom_frame_view_mus.cc View 1 2 3 4 1 chunk +43 lines, -0 lines 0 comments Download
A ash/mus/frame/detached_title_area_renderer.h View 1 2 3 4 1 chunk +69 lines, -0 lines 0 comments Download
A ash/mus/frame/detached_title_area_renderer.cc View 1 chunk +66 lines, -0 lines 0 comments Download
A ash/mus/frame/detached_title_area_renderer_host.h View 1 chunk +27 lines, -0 lines 0 comments Download
M ash/mus/non_client_frame_controller.h View 6 chunks +14 lines, -9 lines 0 comments Download
M ash/mus/non_client_frame_controller.cc View 1 2 3 4 8 chunks +140 lines, -5 lines 0 comments Download
M ash/mus/property_util.h View 1 chunk +3 lines, -0 lines 0 comments Download
M ash/mus/property_util.cc View 1 2 3 4 1 chunk +7 lines, -0 lines 0 comments Download
M ash/mus/root_window_controller.cc View 1 chunk +1 line, -1 line 0 comments Download
M ash/wm/resize_shadow_and_cursor_unittest.cc View 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/fullscreen_chromeos.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.h View 2 chunks +8 lines, -0 lines 0 comments Download
M chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc View 2 chunks +8 lines, -0 lines 0 comments Download
M chrome/browser/ui/views/frame/browser_frame_mus.cc View 1 1 chunk +3 lines, -0 lines 0 comments Download
A + chrome/browser/ui/views/frame/immersive_context_mus.h View 2 chunks +12 lines, -15 lines 0 comments Download
A chrome/browser/ui/views/frame/immersive_context_mus.cc View 1 chunk +57 lines, -0 lines 0 comments Download
A chrome/browser/ui/views/frame/immersive_handler_factory_mus.h View 1 1 chunk +26 lines, -0 lines 0 comments Download
A chrome/browser/ui/views/frame/immersive_handler_factory_mus.cc View 1 1 chunk +28 lines, -0 lines 0 comments Download
M chrome/browser/ui/views/frame/immersive_mode_controller_ash.h View 1 2 3 4 5 3 chunks +13 lines, -0 lines 0 comments Download
M chrome/browser/ui/views/frame/immersive_mode_controller_ash.cc View 1 2 3 8 chunks +97 lines, -2 lines 0 comments Download
M chrome/browser/ui/views/frame/immersive_mode_controller_factory_views.cc View 2 chunks +3 lines, -7 lines 0 comments Download
M chrome/chrome_browser_ui.gypi View 1 chunk +4 lines, -0 lines 0 comments Download
M services/ui/public/interfaces/window_manager.mojom View 1 2 3 4 2 chunks +10 lines, -0 lines 0 comments Download
M services/ui/ws/window_finder.cc View 1 chunk +5 lines, -1 line 0 comments Download
M services/ui/ws/window_manager_access_policy.cc View 1 chunk +5 lines, -1 line 0 comments Download
M services/ui/ws/window_manager_state.cc View 1 2 3 4 1 chunk +16 lines, -20 lines 0 comments Download
M services/ui/ws/window_tree.cc View 1 chunk +3 lines, -1 line 0 comments Download
M ui/views/mus/native_widget_mus.cc View 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 51 (27 generated)
sky
tsepez: mojom and change to window_manager_access_policy.cc. james: the rest.
4 years, 4 months ago (2016-08-23 23:44:31 UTC) #1
Tom Sepez
https://codereview.chromium.org/2277563002/diff/40001/services/ui/public/interfaces/window_manager.mojom File services/ui/public/interfaces/window_manager.mojom (right): https://codereview.chromium.org/2277563002/diff/40001/services/ui/public/interfaces/window_manager.mojom#newcode28 services/ui/public/interfaces/window_manager.mojom:28: // Disables the window manager from handling immersive fullscreen ...
4 years, 4 months ago (2016-08-24 16:07:18 UTC) #10
sky
https://codereview.chromium.org/2277563002/diff/40001/services/ui/public/interfaces/window_manager.mojom File services/ui/public/interfaces/window_manager.mojom (right): https://codereview.chromium.org/2277563002/diff/40001/services/ui/public/interfaces/window_manager.mojom#newcode28 services/ui/public/interfaces/window_manager.mojom:28: // Disables the window manager from handling immersive fullscreen ...
4 years, 4 months ago (2016-08-24 16:22:17 UTC) #11
Tom Sepez
> When this is set all the windowmanager does is make the window fullscreen. The ...
4 years, 4 months ago (2016-08-24 16:48:03 UTC) #14
sky
You are correct. But the issue you mention isn't new to this patch, it's true ...
4 years, 4 months ago (2016-08-24 16:53:27 UTC) #15
Tom Sepez
Yes, OK, this is LGTM. I just wanted to raise the larger issue. Can we ...
4 years, 4 months ago (2016-08-24 16:59:25 UTC) #16
James Cook
Wow, epic CL. Is it possible to add test coverage for any of this behavior? ...
4 years, 4 months ago (2016-08-24 17:00:33 UTC) #17
sky
I filed http://crbug.com/640671 for the fullscreen issue. -Scott On Wed, Aug 24, 2016 at 9:48 ...
4 years, 4 months ago (2016-08-24 17:30:29 UTC) #18
sky
I'm hoping for test coverage in a future patch. Sorry for ginormo patch. https://codereview.chromium.org/2277563002/diff/40001/ash/common/frame/custom_frame_view_ash.h File ...
4 years, 4 months ago (2016-08-24 19:23:29 UTC) #21
James Cook
LGTM https://codereview.chromium.org/2277563002/diff/40001/ash/common/frame/custom_frame_view_ash.h File ash/common/frame/custom_frame_view_ash.h (right): https://codereview.chromium.org/2277563002/diff/40001/ash/common/frame/custom_frame_view_ash.h#newcode43 ash/common/frame/custom_frame_view_ash.h:43: explicit CustomFrameViewAsh( On 2016/08/24 19:23:28, sky wrote: > ...
4 years, 4 months ago (2016-08-24 19:56:30 UTC) #24
sky
https://codereview.chromium.org/2277563002/diff/80001/ash/mus/frame/README.md File ash/mus/frame/README.md (right): https://codereview.chromium.org/2277563002/diff/80001/ash/mus/frame/README.md#newcode2 ash/mus/frame/README.md:2: frames decorations in mash. On 2016/08/24 19:56:29, James Cook ...
4 years, 4 months ago (2016-08-24 20:11:14 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2277563002/100001
4 years, 4 months ago (2016-08-24 20:11:50 UTC) #28
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/284049)
4 years, 4 months ago (2016-08-24 22:03:56 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2277563002/100001
4 years, 4 months ago (2016-08-24 22:15:24 UTC) #32
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_x64_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_rel_ng/builds/268135)
4 years, 4 months ago (2016-08-25 00:10:45 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2277563002/100001
4 years, 3 months ago (2016-08-25 16:23:08 UTC) #36
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_x64_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_rel_ng/builds/268850)
4 years, 3 months ago (2016-08-25 19:22:35 UTC) #38
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2277563002/100001
4 years, 3 months ago (2016-08-25 20:24:47 UTC) #40
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/281450)
4 years, 3 months ago (2016-08-25 22:31:05 UTC) #42
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2277563002/100001
4 years, 3 months ago (2016-08-25 22:44:08 UTC) #44
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/281536)
4 years, 3 months ago (2016-08-26 01:18:27 UTC) #46
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2277563002/100001
4 years, 3 months ago (2016-08-26 03:28:31 UTC) #48
commit-bot: I haz the power
Committed patchset #6 (id:100001)
4 years, 3 months ago (2016-08-26 05:27:51 UTC) #49
commit-bot: I haz the power
4 years, 3 months ago (2016-08-26 05:30:58 UTC) #51
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/2d6a8e0fcb704248b64e7b65f4e76ace658a4bdf
Cr-Commit-Position: refs/heads/master@{#414655}

Powered by Google App Engine
This is Rietveld 408576698