mash: System tray network proxy gear icon does not work |
||||
Issue description
Pixel 1 ("link") with ToT chrome r499741 and OS 9914.
* Add --mash to /etc/chrome_dev.conf, start ui
* At login screen, click on system tray menu
* Go to networking section, click on gear
Nothing happens.
Some dialog or delegate must not be wired up properly.
Steven, this could also be a good first bug for mash.
,
Sep 27 2017
,
Sep 27 2017
I'll start looking into this one first thing next week.
,
Oct 5 2017
,
Oct 5 2017
This appears to be failing because the host window is incorrect for mash. Specifically LoginDisplayHostImpl::GetNativeWindow() does not appear to be providing the correct window. The window is opened here: https://cs.chromium.org/chromium/src/chrome/browser/chromeos/login/ui/login_display_host_impl.cc?type=cs&q=OpenInternetDetailDialog&l=632 We do something special for mash for native views dialogs with SystemTrayClient::CreateUnownedDialogWidget(), but I will have to refresh my understanding of the relationship between gfx::NativeWindow and views::Widget.
,
Oct 6 2017
FYI - ash and chrome browser have separate aura::Window hierarchies. So if there's code assuming it can set a widget aura::Window* parent in chrome code, and it's not another widget owned by chrome (e.g. it's a root window or an ash container), it won't work. I'm not sure what to expect if the dialog parent is supposed to be a chrome window. That should work kinda like a JS dialog in Chrome for desktop platforms, by creating a widget that is a child of the main browser window. I don't know the answer here, just rambling.
,
Oct 9 2017
The dialog parent can be the current Ash desktop; the dialog is opened from the status tray. I just need to figure out where/how to fix that.
,
Oct 10 2017
"The current ash desktop"? Do you mean the RootWindow for the current display? If it's expecting to stick the window in a particular ash window container then it needs to set the Widget initparams for container id and display id like CreateUnownedDialogWidget does it. If you're not already using it, --ash-debug-shortcuts + --ash-dev-shortcuts + Ctrl-Alt-Shift-W will dump the window hierarchy so you can see where the dialog ends up in classic ash. HTH
,
Oct 10 2017
I have a lot of catching up to do and I'm still mired in finishing up my current stuff, but if it helps expalin things: We are opening the dialog from the system tray. I don't actually know what is supposed to host / parent it in Mash. It occurs to me that having Chrome create a system tray dialog may be fundamentally problematic, so this may need to turn into "enable Ash to show Web UI". I'm not sure whether there is an intermediate step available.
,
Oct 11 2017
It's OK for chrome to create windows/widgets in mash. It's nice if ash does it, but not required. The issue here is figuring out who hosts / parents the window. Chrome can create windows that are parented to other chrome windows. Ash can create windows that go anywhere (it has completely knowledge of the window hierarchy). If chrome needs to put a window in an arbitrary position, there are Widget::InitParams::mus_properties that let you do that, but chrome can't just pass an aura::Window* parent if it doesn't really own the parent. HTH, we can chat later if you like, I just haven't looked at this particular dialog in detail.
,
Oct 19 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8706ae035f109dc32dbc48f104b6385f7fe07d7c commit 8706ae035f109dc32dbc48f104b6385f7fe07d7c Author: Steven Bennetts <stevenjb@chromium.org> Date: Thu Oct 19 20:57:41 2017 Deprecate NOTIFICATION_LOGIN_PROXY_CHANGED This cleanup has two purposes: 1. Elininates a chrome NotificationType which is deprecated. 2. Simplifies proxy config (now internet details) dialog and removes an awkward and imprecise relationship where a UI action (closing the dialog) was triggering an event that can be better detected by observing changes to the model. Bug: 762308 Change-Id: I522cddffa19c31fb09f750e132a1e6b2b2b60ac3 Reviewed-on: https://chromium-review.googlesource.com/726263 Commit-Queue: Steven Bennetts <stevenjb@chromium.org> Reviewed-by: Toni Barzic <tbarzic@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Alexander Alekseev <alemate@chromium.org> Cr-Commit-Position: refs/heads/master@{#510204} [modify] https://crrev.com/8706ae035f109dc32dbc48f104b6385f7fe07d7c/chrome/browser/chrome_notification_types.h [modify] https://crrev.com/8706ae035f109dc32dbc48f104b6385f7fe07d7c/chrome/browser/chromeos/login/ui/internet_detail_dialog.cc [modify] https://crrev.com/8706ae035f109dc32dbc48f104b6385f7fe07d7c/chrome/browser/chromeos/login/ui/internet_detail_dialog.h [modify] https://crrev.com/8706ae035f109dc32dbc48f104b6385f7fe07d7c/chrome/browser/chromeos/net/network_portal_detector_impl.cc [modify] https://crrev.com/8706ae035f109dc32dbc48f104b6385f7fe07d7c/chrome/browser/chromeos/net/network_portal_detector_impl.h [modify] https://crrev.com/8706ae035f109dc32dbc48f104b6385f7fe07d7c/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc [modify] https://crrev.com/8706ae035f109dc32dbc48f104b6385f7fe07d7c/chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.cc [modify] https://crrev.com/8706ae035f109dc32dbc48f104b6385f7fe07d7c/chrome/browser/ui/webui/chromeos/login/network_state_informer.cc [modify] https://crrev.com/8706ae035f109dc32dbc48f104b6385f7fe07d7c/chrome/browser/ui/webui/chromeos/login/network_state_informer.h
,
Oct 19 2017
,
Oct 23 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6f4425ade0e3fff371f0d0b90f923140b45b7af7 commit 6f4425ade0e3fff371f0d0b90f923140b45b7af7 Author: Steven Bennetts <stevenjb@chromium.org> Date: Mon Oct 23 18:06:06 2017 Create a common SystemWebDialogDelegate for system dialogs This creates SystemWebDialogDelegate and uses it for both IInternetConfigDialog and InternetDetailDialog. In doing so it removes the InternetDetailDialog dependency on LoginWebDialog which is not needed or desired for these dialogs which can also be opened from the System Tray (from either the login screen or while logged in). This fixes a problem with how these were parented which prevents them from opening in mash. For chrome_web_ui_controller_factory.cc: TBR=michaelpg@chromium.org Bug: 762308 Change-Id: I1aab155ece2b31e12b81a027df1e9eeb8873f166 Reviewed-on: https://chromium-review.googlesource.com/729221 Commit-Queue: Steven Bennetts <stevenjb@chromium.org> Reviewed-by: Toni Barzic <tbarzic@chromium.org> Cr-Commit-Position: refs/heads/master@{#510848} [modify] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/chromeos/BUILD.gn [modify] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/chromeos/login/ui/captive_portal_window_proxy.cc [delete] https://crrev.com/8bf6a886aad1c42210fd16f372097236db34c162/chrome/browser/chromeos/login/ui/internet_detail_dialog.cc [delete] https://crrev.com/8bf6a886aad1c42210fd16f372097236db34c162/chrome/browser/chromeos/login/ui/internet_detail_dialog.h [modify] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/chromeos/login/ui/login_display_host_impl.cc [modify] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/chromeos/login/ui/webui_login_view.cc [modify] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/chromeos/status/network_menu.cc [modify] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/ui/BUILD.gn [modify] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/ui/ash/system_tray_client.cc [modify] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc [modify] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/ui/webui/chromeos/internet_config_dialog.cc [modify] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/ui/webui/chromeos/internet_config_dialog.h [rename] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/ui/webui/chromeos/internet_detail_dialog.cc [add] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/ui/webui/chromeos/internet_detail_dialog.h [delete] https://crrev.com/8bf6a886aad1c42210fd16f372097236db34c162/chrome/browser/ui/webui/chromeos/internet_detail_dialog_ui.h [add] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.cc [add] https://crrev.com/6f4425ade0e3fff371f0d0b90f923140b45b7af7/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h
,
Feb 26 2018
|
||||
►
Sign in to add a comment |
||||
Comment 1 by steve...@chromium.org
, Sep 5 2017Owner: steve...@chromium.org
Status: Assigned (was: Untriaged)