Mac: detect when we're in "partial" RTL mode and account for it when laying out toolbar
Reported by
sanyam.g...@etouch.net,
Jul 6
|
||||||||||||
Issue descriptionChrome Version: 69.0.3483.0 (Official Build) Revision 68bf9707c1026959630e89e90235cfcf0440c08c-refs/branch-heads/3483@{#1} (64-bit) OS: Mac (10.12.6, 10.13.1, 10.13.6, 10.14) Pre-condition: 1. Enable flag "Use Views browser windows instead of Cocoa" from chrome://flags. 2. Enable flag "Force UI direction" to 'Right-to-left' and 'Enable RTL'. Steps to reproduce: 1. Launch chrome and open atleast 5 tabs. 2. Observe the New Tab '(+)' button on LHS. Actual Result: New Tab '(+)' button overlaps with green traffic signal button. Expected Result: New Tab '(+)' button should not overlap with green traffic signal button. This is a Mac specific non-regression issue, seen from M-69 series build #69.0.3481.0. NOTE: This issue is not reproducible on Win (7,8,8.1,10) & Linux (14.04 LTS). Thank you..!!
,
Jul 6
As this being a Non-Regression issue, changing the status to Untriaged so that the issue would get addressed. Thank You!
,
Jul 6
It sounds like this is, in fact, a regression in M69. I don't understand what "non-regression" means in comment 0.
,
Jul 6
,
Jul 6
Actually, do we support these flags on Mac? On a second look it looks like the frame layout code is expecting the traffic lights to have flipped to the opposite corner (which is also where I'd expect them for RTL), but I don't know if that's what Macs would actually do for true-RTL windows.
,
Jul 6
If we do support these, I suspect at least two things have to happen: (1) BrowserNonClientFrameViewMac::CaptionButtonsOnLeadingEdge() has to return false in this case; see how GlassBrowserFrameView::CaptionButtonsOnLeadingEdge() keys off base::i18n::IsRTL() (2) BrowserNonClientFrameViewMac needs to modify the return values of GetTabstripLeftInset() and GetTabstripRightInset() (soon to be converted to GetAfterTabstripItemWidth() in a CL I'm working on) to account for the caption buttons moving There may be more changes needed to position various frame items correctly in logical order as well.
,
Jul 9
MacViews triage: over to lgrey@ :)
,
Jul 9
macOS doesn't flip the traffic lights until you restart or relog with Arabic/Hebrew as the system language. This affects some other issues like natural text direction as well, so I think that switching UI direction in a session is unsupported OS behavior. I'm going to leave this open but downgrade to P3 since it wouldn't hurt to do what Safari does: detect that we're in this middle state, and lay out everything in RTL but leave space for the traffic lights on the right.
,
Jul 9
I don't think Chrome supports switching the UI direction without restarting either; I think the bug here is simply that we don't support RTL layout at all. The plan in comment 6 should implement some of comment 8.
,
Jul 9
We support it. If you switch to Arabic, then log in and out, the toolbar and traffic lights will all be where you expect (see attached). You can simulate it via -NSForceRightToLeftWritingDirection YES -AppleTextDirection YES when launching via command line.
,
Jul 9
But is that with MacViews on or off? I would assume that's with it off.
,
Jul 9
That's MacViews on. We don't have MD refresh in Cocoa :)
,
Jul 9
Odd. OK, I don't know how that works in the code then.
,
Jul 12
,
Jul 26
,
Aug 13
Renamed to make this actionable. For this purpose, "partial" RTL refers to the situation where the conditions for RTL are met, but the system is still putting traffic lights on the left.
,
Sep 20
,
Sep 26
,
Nov 14
"Mass UI Triage" update : Rechecked the above issue on Mac OS X(10.13.1,10.13.6,10.14.2) using latest Canary build : 72.0.3609.3 and the issue is still reproducible. @lgrey: Could you please take a look in to this issue. Thank you..!!
,
Nov 14
Unassigning, since I don't see myself getting to this P3 in the near future. |
||||||||||||
►
Sign in to add a comment |
||||||||||||
Comment 1 by pkasting@chromium.org
, Jul 6