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

Issue 615153 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug

Blocking:
issue 505805



Sign in to add a comment

top-chrome material tab glitch at 1.5x

Project Member Reported by scottmg@chromium.org, May 26 2016

Issue description

53.0.2749.0 (Official Build) canary (32-bit)

Running at 1.5x which I assume is the problem.

White underline at bottom of active tab and grey overline below new tab button.

(Likely a dupe? But I didn't see anything with a quick search.)
 
taboutline.png
8.8 KB View Download
Blocking: 505805
Components: UI>Browser>TabStrip
Labels: -Pri-2 M-53 Pri-1
Maybe  bug 614146 ?

Everything in the top chrome is totally untested at non-integral scale factors, though.  We're assuming we're really buggy there and just hoping we're less buggy than the pre-MD UI.
Not sure if it's the same. I would guess it broke about 2-3 canaries ago if that helps.
Cc: tkonch...@chromium.org
Labels: Needs-Feedback
Unable to reproduce the issue on win8.1 chrome version 53.0.2749.0 and latest canary 53.0.2753.0 with material design in the browsers top chrome flag selected as "Material" in chrome://flags

scottmg@, Could you please let me know if i am missing something here in reproducing the issue.
tkonchada: you're running at device scale factor 1.5 (150%)? I still see it at 53.0.2751.0.
Project Member

Comment 5 by sheriffbot@chromium.org, Jun 1 2016

Labels: -Needs-Feedback Needs-Review
Owner: tkonch...@chromium.org
Thank you for providing more feedback. Adding requester "tkonchada@chromium.org" for another review and adding "Needs-Review" label for tracking.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
 Issue 612444  has been merged into this issue.

Comment 7 by bsep@chromium.org, Jun 9 2016

Labels: -Needs-Review
Owner: bsep@chromium.org
Status: Assigned (was: Unconfirmed)
I'll take a look at this. I just reproed it in 53.0.2763.0 so I don't need more information.
This may or may not be similar to  https://crbug.com/601135  but it is worth being aware of.  Are tabs painted to their own Layers?

The final suspicion coming out of my investigations was that the gfx::Canvas's being painted to were not being scaled perfectly with the backing Layer and the result would end up with a 1 pixel line on the bottom and right sides.  We suspected a rounding error somewhere but I never did track it down.

Comment 9 by bsep@chromium.org, Jun 20 2016

I don't think tabs are painted to their own layer, but I could be wrong. I'm still in the midst of investigating. It does LOOK like a rounding error, but I noticed after playing around with it that it seems to be some sort of anti-aliasing problem, because that 1 pixel line actually has a little of the tab color in it. So I'm not sure but I think it's a different issue.
This isn't related to  bug 614146 , is it?
It's still happening on current Canary (53.0.2773.0) if by related you mean "hopefully fixed". :)

Comment 12 by bsep@chromium.org, Jun 21 2016

I figured it out but fixing it will be slightly tricky.

There are two problems. The first is straightforward: when filling the tab we get the wonky tab-shaped path and we don't really care if it's aligned to pixels. Normally this is fine, except that the path needs to be a polygon to fill properly, so we call "close" on it, which draws a straight line across the bottom. But this line isn't pixel-aligned, and we call ClipPath with anti-aliasing turned on. So the fix is just to ceil the tab bottom. It's supposed to blend with the toolbar below, or in the case of inactive tabs get a stroke drawn on top of it, so this shouldn't cause any problems.

The other issue was introduced with this patch I believe: https://chromium.googlesource.com/chromium/src/+/ce3dce9ffa916d60c9b6d70f427a244a80358ccb%5E%21/#F0 It looks like blink was having trouble with transformed rectangles looking aliased, and it turned out that clipping rectangles were never anti-aliased, so they just made them always anti-aliased. Unfortunately views bounds are clipped using the same code, and at non-integral scale factors the bounding rects might not be pixel-aligned, so it also causes this problem. The fix is that they need anti-aliasing off. So it seems like clip_display_item needs additional context which will be a lot of plumbing.
Project Member

Comment 13 by bugdroid1@chromium.org, Jun 22 2016

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

commit a33441839f9a8d028db80a164891d32eaaf50b0b
Author: bsep <bsep@chromium.org>
Date: Wed Jun 22 02:25:19 2016

Fix tab strip rendering at non-integral scale factors in MD.

This fixes two issues:
* Hairline horizontal borders were actually drawing with thickness equal
  to the dsf for non-integral scale factors, due to loss of precision.
* The bottom of the tab fill path was not aligned with whole pixels,
  which was partially causing an artifact when ClipPath was called.

BUG= 615153 

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

[modify] https://crrev.com/a33441839f9a8d028db80a164891d32eaaf50b0b/chrome/browser/ui/views/frame/browser_view.cc
[modify] https://crrev.com/a33441839f9a8d028db80a164891d32eaaf50b0b/chrome/browser/ui/views/tabs/tab.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 23 2016

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

commit e11a8ea32baa62619f66c2e1104786ad861e9c05
Author: bsep <bsep@chromium.org>
Date: Thu Jun 23 21:28:56 2016

Remove antialiasing from views bounds rects.

A views object clips drawing to its rectangular bounds. Those bounds are
in DIPs, and have antialiasing turned on. At non-integral scale factors
those bounds might not be pixel-aligned. When that happens it can cause
artifacting, so it needs antialiasing turned off. Since Blink appears to
need antialiasing turned on, this patch adds a field to ClipDisplayItem
so that each callsite can do the thing it wants.

BUG= 615153 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

[modify] https://crrev.com/e11a8ea32baa62619f66c2e1104786ad861e9c05/cc/blink/web_display_item_list_impl.cc
[modify] https://crrev.com/e11a8ea32baa62619f66c2e1104786ad861e9c05/cc/playback/clip_display_item.cc
[modify] https://crrev.com/e11a8ea32baa62619f66c2e1104786ad861e9c05/cc/playback/clip_display_item.h
[modify] https://crrev.com/e11a8ea32baa62619f66c2e1104786ad861e9c05/cc/playback/display_item_list_unittest.cc
[modify] https://crrev.com/e11a8ea32baa62619f66c2e1104786ad861e9c05/cc/playback/largest_display_item.cc
[modify] https://crrev.com/e11a8ea32baa62619f66c2e1104786ad861e9c05/cc/proto/display_item.proto
[modify] https://crrev.com/e11a8ea32baa62619f66c2e1104786ad861e9c05/ui/compositor/clip_recorder.cc

Comment 15 by bsep@chromium.org, Jun 23 2016

Status: Fixed (was: Assigned)
I noticed the cert dialog has a similar artifact (attached) do you want me to file a separate bug?
cert_arrow.png
17.1 KB View Download

Comment 17 by bsep@chromium.org, Jun 29 2016

Please do, though it's likely a similar issue.

Sign in to add a comment