New issue
Advanced search Search tips

Issue 878126 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

BrowserNonClientFrameViewMac::PaintThemedFrame() implementation incorrect

Project Member Reported by pkasting@chromium.org, Aug 27

Issue description

BrowserNonClientFrameViewMac::PaintThemedFrame() is simplistic.  It tiles the frame image at 0,0 with default flags, then draws the overlay over it.

Compare to GlassBrowserFrameView::PaintTitlebar().  It draws a solid color first, then tiles the frame image using vertical mirroring, ensuring that the image always starts ThemeProperties::kFrameHeightAboveTabs px above the top of the tabs.  Finally it draws the overlay image.

So at least those three things -- the background color, the mirroring flag, and the y offset -- need to be implemented.

I consider this reasonably high-priority so custom themes work on Mac like they do on other platforms.
 
Labels: Target-70
mac triage: weili@, let's target this for M70.
Labels: Hotlist-DesktopUIChecked Hotlist-DesktopUIToolingRequired
***UI Mass Triage***

Adding appropriate label for expert review.
Labels: -Target-70 -M-70
Owner: dfried@chromium.org
To dfried@ for triage.
Cc: ellyjo...@chromium.org pkasting@chromium.org dfried@chromium.org
Owner: ----
Status: Untriaged (was: Assigned)
Do we have an example of this code actually causing visual artifacts in the frame rendering on Mac? Do we have test cases? If not it's really hard for me to prioritize this work.

If this is just Mac-specific code cleanup, I'd prefer that either PK or Elly owned the issue and prioritized it accordingly.
Yes, the frame background image is painted at the wrong offset and with the wrong tiling on Mac, for all custom themes that use background images.  Not cleanup, this is a functional bug.

You can use this theme as a testcase: https://chrome.google.com/webstore/detail/hedgehog-in-the-fog/haocganpkafanhkfldbbmhcpaelmkejg?hl=en
Labels: -Pri-1 Pri-2
Owner: ellyjo...@chromium.org
Status: Assigned (was: Untriaged)
Assigning per #4.
Labels: Target-73 M-73
Owner: lgrey@chromium.org
Mac triage: to lgrey@ for M73.
pkasting@ is there some kind of additional condition? Installing the theme in c#5, it looks like the screenshot to me (in fullscreen also)
Screen Shot 2018-12-13 at 9.39.58 AM.png
397 KB View Download
Add more tabs; as background tabs and the new tab button overlay the frame they should appear as if they're semitransparent, but I think you'll actually get a 7 px vertical misalignment, which I'd expect to be visible where those dark shapes are.

Basically you want BrowserNonClientFrameViewMac::PaintThemedFrame() to mostly copy the code from GlassBrowserFrameView::PaintTitlebar().

The theme I linked isn't a good test case for the background color and mirroring stuff, just the y offset.

Sign in to add a comment