New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 682804 link

Starred by 3 users

Issue metadata

Status: Archived
Owner:
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocked on:
issue 683192



Sign in to add a comment

mash: Cannot switch to VT2 when in dev mode

Project Member Reported by jamescook@chromium.org, Jan 19 2017

Issue description

On Pixel 1:
* Switch to dev mode
* Install canary 9198.0.0 chrome 57.0.2984.0
* Login and set --mash in chrome://flags
* Reboot

You'll see a blank login screen (I'm filing a separate bug for that).

Try hitting Ctrl-Alt-F2 to switch to VT2. Nothing happens. Probably chrome is not releasing the display.

This is pretty important to fix, since it makes it impossible to troubleshoot problems on machines where you can't ssh in.

To rjkroege to find an owner.

+derat because I think there might be a dbus signal related to frecon involved here.
 
Cc: jonr...@chromium.org

Comment 2 by derat@chromium.org, Jan 19 2017

Cc: dnicoara@chromium.org hashimoto@chromium.org
I don't have any experience with this code, but I think it's chromeos/dbus/services/console_service_provider.* and chrome/browser/chromeos/dbus/chrome_console_service_provider_delegate.*. It looks like it goes through DisplayConfigurator, so there's a good chance that powerd's SetDisplayPower D-Bus method calls can be fixed at the same time.

Comment 3 by sky@chromium.org, Jan 19 2017

Labels: mustash-1
Owner: h...@chromium.org
hshi@ you know this code? Can you fix?

Comment 5 by h...@chromium.org, Jan 19 2017

Cc: marc...@chromium.org h...@chromium.org
Owner: dbehr@chromium.org
+dbehr@ -- this is a frecon issue.
It's not necessarily a frecon issue; Chrome has to participate in the negotiation and I suspect that the mashified Chrome doesn't do that. Basically what derat@ says in #2.

Comment 7 by derat@chromium.org, Jan 19 2017

Yeah, I don't think that anything within org.chromium.LibCrosService* works in mash yet.

* crazy idea: rename it to org.chromium.Chromium while we're at it :-P
Owner: rjkroege@chromium.org
 Issue 644323  mentions ConsoleServiceProvider.

Chrome browser seems to hook this up here: https://cs.chromium.org/chromium/src/chrome/browser/chromeos/chrome_browser_main_chromeos.cc?q=consoleserviceprovider&sq=package:chromium&dr=C&l=239

The implementation depends on ash::Shell::GetInstance()->display_configurator()

https://cs.chromium.org/chromium/src/chrome/browser/chromeos/dbus/chrome_console_service_provider_delegate.cc?sq=package:chromium&dr=C&l=20

rjkroege, this sounds like something that needs to get fixed as part of mustash display refactoring. It doesn't seems like an issue with frecon itself, so I doubt it's something for dbehr@. I'm not sure which process DisplayConfigurator is going to live it, but it looks like that process needs to respond to a dbus signal.

I'm not sure who should own this.

Labels: -mustash-1 Proj-Mustash-Milestone-Tadpole
Would be me or kyle so owner is right for now.
ChromeConsoleServiceProviderDelegate isn't running in the same process as DisplayConfiguration in mustash. We will need two new IPC messages from chrome -> mus-ws for TakeDisplayOwnership() and ReleaseDisplayOwnership() and a new implementation of ChromeConsoleServiceProviderDelegate that calls those IPCs. The response is already async so that shouldn't be a problem.
Blockedon: 683192
It looks like there is another bug where two Chrome instances are getting launched. This is interfering with dbus messages and so I can't try added IPCs for TakeDisplayOwnership() and ReleaseDisplayOwnership(). Once that is fixed I'll check if the IPCs work.
Alternately, mus-ws could learn to speak dbus. This would be more robust (e.g. VT2 switch would work even if chrome browser crashes). OTOH, it might involve splitting up the org.chromium.LibCrosService dbus service -- I have no idea if a dbus service can be provided by two processes (like the console switch by mus-ws and the other stuff by content_browser). Dan?

Another halfway solution might be for pieces of org.chromium.LibCrosService to live in the ash process.

Comment #10 seems OK if it's really simple to do, but long-term I think the dbus signal needs to be handled by mus-ws.

Indeed, the right long term fix is for mus to directly manage the console switch. I'd rather not have mus take a dependency on dbus but my objection is not particularly pragmatic.

In an ideal world, shouldn't LibCrosService be itself accessed via mojo?


Comment 14 by derat@chromium.org, Jan 21 2017

#12: No, at least with the conventions that we've settled upon, a service is identified by a single name that can only be owned by one D-Bus connection.

org.chromium.LibCrosService is a poorly-named dumping ground, though, so there's probably no reason why it shouldn't be split into two or more reasonably-named services as part of this, which live in different processes for mus but all inside of the browser otherwise. That can be done incrementally without breaking non-mus Chrome OS.

#13: The consensus that I've seen is that using mojo instead of D-Bus for Chrome OS system services is out-of-scope until the mojo interface is stabilized. cmasone@ was working on it for a while, a while ago, but he left.

Is the plan for DisplayConfigurator to live inside of mash or in mus-ws? The D-Bus service that controls it should probably live in the same process.
DisplayConfigurator (and all the display management code really) will live in mus-ws.
Owner: kylec...@chromium.org
Status: Started (was: Assigned)
I've sent out https://codereview.chromium.org/2648433006 which adds IPCs from chrome to mus-ws and frecon works. It seems like having a separate dbus connection in mus-ws for display related dbus messages as per #12 and #14 is correct solution in the end? I can file a bug for that.
Blocking: 682807
Blocking: -682807
Cc: xiy...@chromium.org
 Issue 682807  has been merged into this issue.
Labels: Proj-Ozone-DRM
Re #16 -- please file bug. But note that the high-level goal is that musws should do the right thing without needing a Chrome browser instance but a separate dbus connection may not necessarily be the only way.
Project Member

Comment 21 by bugdroid1@chromium.org, Jan 24 2017

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

commit a653f8962715401e37ae038f4946e85ab6433d6d
Author: kylechar <kylechar@chromium.org>
Date: Tue Jan 24 23:29:05 2017

Get frecon working with mustash.

This CL adds a mus specific ConsoleServiceProviderDelegate. It sends
IPCs to mus-ws to take and relinquish display control. This is
necessary because dbus and display management are not in the same
process anymore.

BUG= 682804 

Review-Url: https://codereview.chromium.org/2648433006
Cr-Commit-Position: refs/heads/master@{#445857}

[modify] https://crrev.com/a653f8962715401e37ae038f4946e85ab6433d6d/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/a653f8962715401e37ae038f4946e85ab6433d6d/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/a653f8962715401e37ae038f4946e85ab6433d6d/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[add] https://crrev.com/a653f8962715401e37ae038f4946e85ab6433d6d/chrome/browser/chromeos/dbus/mus_console_service_provider_delegate.cc
[add] https://crrev.com/a653f8962715401e37ae038f4946e85ab6433d6d/chrome/browser/chromeos/dbus/mus_console_service_provider_delegate.h
[modify] https://crrev.com/a653f8962715401e37ae038f4946e85ab6433d6d/services/ui/display/screen_manager_ozone.cc
[modify] https://crrev.com/a653f8962715401e37ae038f4946e85ab6433d6d/services/ui/display/screen_manager_ozone.h
[modify] https://crrev.com/a653f8962715401e37ae038f4946e85ab6433d6d/services/ui/manifest.json
[modify] https://crrev.com/a653f8962715401e37ae038f4946e85ab6433d6d/services/ui/public/interfaces/display/display_controller.mojom

Status: Fixed (was: Started)

Comment 23 by dchan@google.com, Apr 17 2017

Labels: VerifyIn-59
 Issue 672970  has been merged into this issue.

Comment 25 by dchan@google.com, May 30 2017

Labels: VerifyIn-60
Labels: VerifyIn-61

Comment 27 by dchan@chromium.org, Oct 14 2017

Status: Archived (was: Fixed)
Components: -Internals>MUS Internals>Services>WindowService

Sign in to add a comment