<select> menus on external screen unusable |
||||||||||||
Issue descriptionChromeOS version: 67+ ChromeOS device model: chell, sentry Case#: 17117155 Description: When opening drop-down menu on external screen connected to Chromebook, it's contents are scaled improperly, making it unusable. However switching window between maximized and non-maximized temporary fixes the issue, unless you reload the page. I was able to find this issue on chell in versions 67-71, however it's not present in v59. Also present in loaner sentry on 69. Issue is not present in mirror mode. Steps to reproduce: 1. Connect external monitor to Chromebook 2. Move Chrome window to external monitor. 3. Open https://developers.google.com/apps-script/add-ons/css 4. Scroll down to "Select menus" 5. Click on dropdown menu 6. Toggle maximization of Chrome window 7. Click on dropdown menu 8. Refresh page 9. Click on dropdown menu Current Behavior / Reproduction: Steps 5 and 9 show unusable dropdown menu, step 7 usable Expected Behavior: Steps 5,7,9 show usable menu Drive link to logs: Customer repro video - https://drive.google.com/open?id=15ZmdIOtdP7_nYac5PXoN3RRoQgpMYBKb
,
Nov 21
Customer provided additional workaround, which works for them - 1. From the external screen, open the link https://developers.google.com/gsuite/add-ons/guides/css and see the problem. 2. Select another tab, click in an input field of it. 3. So, returning to the problematic tab, the contents of the list drop-down is now visible
,
Nov 26
This does not seem to be a blink fonts issue, rather on the Chrome UI side.
,
Nov 28
adding Ash component as the issue sounds like it's specific to Chrome OS secondary displays.
,
Nov 30
Hi Team. Is there any update on this?
,
Dec 10
Assigning to kenrb@ for now so that this issue can gain some traction. kenrb@ if there is someone else on the team that is better equipped to work on this please reassign accordingly. Thank you!
,
Dec 12
Passing this to James who had noticed this independently somewhat recently. Issue 877625 is about cross-origin iframes, and while this might be tangentially related, it happens on main frames as well.
,
Dec 21
Are there any updates on this issue?
,
Jan 4
wjmaclean@, Is there any update that can be shared with the customer?
,
Jan 7
Looking into this now ...
,
Jan 7
So I think I understand what's going on with issue 877625, but I think this issue is different. Based on my trying it out on Linux-CrOS build run with multiple windows, it seems that the ScreenInfo is different when a tab is maximized vs. when it's not ... While I wouldn't expect a maximized tab to be in "full screen mode", I'm not sure what other difference there would be. + danakj@ who has some experience with this. I'll continue to dig into it to see where the discrepancy is coming from ... it should be possible to track it back to the OS Display settings as access from RenderWidgetHostImpl during the creation of the popup widgets.
,
Jan 11
danakj@ As wjmaclean@ commented previously, do you know who has some experience with this? wjmaclean@ Thanks for your support. Is there any update that can be shared with the customer?
,
Jan 11
On Linux/X11 at least, the problem occurs here: https://cs.chromium.org/chromium/src/ui/base/x/x11_display_util.cc?rcl=8c64ebf6ce90f596624c5f43ef1951c3050961bb&l=169 If the 'primary' display doesn't match the x_root_window, then the intersection between the primary display geometry and the work_area_in_pixels is empty, and at line 169 we set the display's work area to be empty. I don't know why the work area calculated at https://cs.chromium.org/chromium/src/ui/base/x/x11_display_util.cc?rcl=8c64ebf6ce90f596624c5f43ef1951c3050961bb&l=122 doesn't include the primary display, though it's fairly obvious that in the case of multiple monitors that the idea of representing work area with a single rect is problematic. When the display's work_area is empty, it seems pop-up render widgets fail. Also note that there is another effect, namely that when first starting Chrome on the primary monitor, the content area for tabs is empty, meaning you have to resize the window before it can be used. I did experiment with not changing the Display's work area if the intersection is empty, and this seems to resolve the problem, though I don't know if this will cause problems elsewhere. *** Important: to repro, you may need to change which monitor you have set as your primary monitor. In my case my two monitors have very different resolutions, with the primary one having the lower resolution. In any case, a user's choice of primary monitors shouldn't make the difference between drop-down menus working and not working. Re-assigning to thomasanderson@ as I'm guessing they know more about this part of the codebase. Adding jkim@ to CC since they were the last to touch this code.
,
Jan 11
,
Jan 11
We shouldn't use work_area for this at all, it's intended to be the part of the desktop where desktop icons should be placed. There should be no interaction with the content of chrome windows.
,
Jan 11
In the absence of external calls to Display::set_work_area(), Display defaults to making it the same as the bounds. Perhaps content/ code has come to rely on that in a way that isn't appropriate.
,
Jan 16
As per comment# 0 from the reporter issue requires Chromebook to test and confirm it, hence routing this issue to Inhouse and requesting someone help in testing the issue using Chromebook and desktop and check if it's regression or not. Hence adding TE-NeedsTriageFromHYD label to it. Thanks!
,
Jan 16
(6 days ago)
Actually, this problem reproduces fine on Linux without a ChromeBook (see Comment #13). |
||||||||||||
►
Sign in to add a comment |
||||||||||||
Comment 1 by tkent@chromium.org
, Nov 5Status: Available (was: Untriaged)