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

Issue 862664 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 30
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug

Blocked on:
issue 856812

Blocking:
issue 820495
issue 866689



Sign in to add a comment

Separator color should be based on inactive tab color, not frame color

Project Member Reported by pkasting@chromium.org, Jul 11

Issue description

Install https://chrome.google.com/webstore/detail/texture/kebdomfinmgmcinggaaojlckicdaajkm?hl=en .

* Tab separators are now nearly invisible
* The NTB is very low contrast
* Bookmark text is moderately-low contrast

We should at least verify that we're computing our contrasting colors against the correct background colors.  I suspect tab separators are not begin computed to contrast with the background tab color in the themed case, for example.

Fixes beyond that might require addressing  bug 856812 .  Hard to know without diving deeper into what's going on right now.
 
Labels: Group-Themes
Cc: -bsep@chromium.org
Owner: bsep@chromium.org
Status: Assigned (was: Untriaged)
I did a little investigating here:
* Texture doesn't a frame color, so chrome uses the (light) defaults. Adding a frame color fixes the problem (see attached screenshot as an example).
* Puk-Puk seems to be doing the best it can right now. The frame image is pretty busy and the new-tab button kinda gets lost. We may want to give it a button background. I filed  bug 864203  for that.
* The problem with Hedgehog in the Fog is that we always match the new-tab button to the inactive tab text, but in this case the contrast considerations are different in the two cases. Not sure what the correct thing to do in this case is; I'll consult a designer.
texture-theme-with-frame-color.PNG
407 KB View Download
Components: UI>Browser>Themes
The last two points should both be addressed by bug 857197.

Having a frame color fix texture seems a bit concerning, since we should be computing the tab separator color based on the background tab color rather than the frame color.

That also doesn't speak to bookmark text color, but maybe that's OK.
Status: WontFix (was: Assigned)
I can't speak to what we should be doing, but we are right now calculating the separator color based on the frame color:

constexpr SkAlpha kTabSeparatorAlpha = 0x4D;  // 30%
const SkColor frame_color = GetFrameColor();
const SkColor base_color =
    color_utils::BlendTowardOppositeLuma(frame_color, SK_AlphaOPAQUE);
return color_utils::AlphaBlend(base_color, frame_color, kTabSeparatorAlpha);

Anyway, I don't think there's any action here for these specific themes.
Status: Assigned (was: WontFix)
Right, that's the primary thing I wanted this bug to be about.  We should be using the inactive tab color (which will match the frame color by default, but not in themed cases; so it should be safe to always use it) instead of the frame color.

I still am concerned about whether the bookmark text has sufficient contrast to hit a11y minimums.
Summary: Separator color should be based on inactive tab color, not frame color (was: Low contrast separators/NTB/bookmark text in "Texture" theme)
Oh okay, changing the bug around then.

The bookmark text is pretty light, but Texture doesn't define a toolbar color either. Even if it did, we need  bug 856812  to solve that.
Owner: pkasting@chromium.org
Status: Started (was: Assigned)
I have to fix this locally anyway for another bug.
Here's some of my progress locally, in the form of Dev 3493 vs. local shots of normal and incognito modes for the three themes named above.

Some work here was done by other people on other bugs (e.g. Allen putting a circle behind the NTB, or Bret writing min-contrast-guaranteeing functions).  Work I did here:

* Remove tab shapes when the theme doesn't ask for them
* Compute frame and tab colors automatically so we can correctly decide what caption button/text/NTB colors to put atop them
* Respect theme-specified colors better
* Improve alignment of background images

There's also work not visible in these shots, e.g. fixing the NTB background alignment, mirroring the tab background image vertically if it's too short, providing more customizability for themes (kind of necessary to fix some of the issues above), and fixing a number of bugs in inactive windows.

Removing the tab shapes mostly meant changing the background tab tint to a no-op by default.  This affects a lot of themes in subtle but noticeable ways, e.g. Puk-Puk's background tabs get a little more transparent, and Hedgehog In The Fog's get darker and more saturated.  I think this is OK; theme authors who object can always override that tint.
texture_trunk.png
110 KB View Download
texture_local.png
96.3 KB View Download
texture_trunk_incognito.png
100 KB View Download
texture_local_incognito.png
97.3 KB View Download
puk-puk_trunk.png
132 KB View Download
puk-puk_local.png
365 KB View Download
puk-puk_trunk_incognito.png
239 KB View Download
puk-puk_local_incognito.png
234 KB View Download
hedgehog_trunk.png
240 KB View Download
hedgehog_local.png
307 KB View Download
hedgehog_trunk_incognito.png
152 KB View Download
hedgehog_local_incognito.png
152 KB View Download
Another sample, that shows off better background image alignment, better separator colors, and fixed gaps below the tabs.

Unfortunately it also demonstrates some of the downsides of removing tab shapes.  In this case the background is very noisy, so even though the autocomputed background tab text color in incognito mode contrasts reasonably well against the darker part of the frame, it's unreadable over the light parts.  While it's probably theoretically possible to do better without overlays here, this is a case where the theme author would likely just need to fix incognito mode to provide tab shapes as normal mode does (which would be easy).
dots_trunk.png
284 KB View Download
dots_local.png
141 KB View Download
dots_trunk_incognito.png
118 KB View Download
dots_local_incognito.png
116 KB View Download
Issue 864727 has been merged into this issue.
I don't think I was clear in the bug that was just duped here. If you look at http://screen/2p4WkXxYbpb.png, you can see that the tabs are 'touching' across the gap near the top.
Yes, the separator is not a gap between tabs but a stroke that is drawn on the tabs in the midst of a region where they overlap.

I'll take your comment as feedback that, when coupled with the curve above, this looks arguably glitchy (and would probably look less so if we filled in the region between tabs).
Ah! That's why I thought it looked 'glitchy' earlier- it looks like there's meant to be a gap, which would be natural- the stroke looks off somehow.

Your interpretation is right, it'd look nicer if the region between tabs was filled with the background.
Blocking: 866689
Project Member

Comment 16 by bugdroid1@chromium.org, Jul 24

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

commit a91ffca64e95ec36000ee43296d5025e89da5244
Author: Peter Kasting <pkasting@chromium.org>
Date: Tue Jul 24 22:04:38 2018

Make HasCustomColor() match GetColor().

The latter has various transformations around when it queries the underlying
the provider and with what constants.  Use this behavior in HasCustomColor()
too.  This ensures callers get consistent behavior in these cases.

Along the way this changes a multi-arm conditional to a helper function.
That isn't necessary for this patch, but it will make it easy to land
subsequent ones that add more such constants.

Bug:  862664 
Change-Id: I83295902f7c38767c3a051a40e5f195f8e78e4ef
Reviewed-on: https://chromium-review.googlesource.com/1147601
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Evan Stade <estade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577703}
[modify] https://crrev.com/a91ffca64e95ec36000ee43296d5025e89da5244/chrome/browser/themes/theme_service.cc
[modify] https://crrev.com/a91ffca64e95ec36000ee43296d5025e89da5244/chrome/browser/themes/theme_service.h

Project Member

Comment 17 by bugdroid1@chromium.org, Jul 27

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

commit 8c35e22c3931c280966345bcaadda1c4f8b38e3e
Author: Peter Kasting <pkasting@chromium.org>
Date: Fri Jul 27 21:06:26 2018

Add background tab colors and inactive images to the theme system.

These will eventually be used for three purposes:
(1) To allow generating different background tab images from a common tint for
    the inactive and incognito cases, thus allowing background tabs that blend
    into the frame for custom themes.
(2) To allow autogenerating the background tab colors from the background tab
    images, thus letting us autocalculate better tab text/separator/etc. colors.
(3) To allow theme authors to customize/override this behavior more precisely.

Reasons (1) and (2) dictated the design here; reason (3) is basically a free
bonus.  I thought about not making these resources overrideable by theme
authors, but there was some technical reason that turned out to not be easily
feasible, and there seems little reason to prevent it.

This also allows us to read THEME_TAB_BACKGROUND_INCOGNITO on Mac (Views).

This shouldn't result in a visual change on its own.

Bug:  862664 
Change-Id: Icc57f78fd526d68b83c692fbac669a7371bb38ff
Reviewed-on: https://chromium-review.googlesource.com/1147869
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Reviewed-by: Evan Stade <estade@chromium.org>
Reviewed-by: Allen Bauer <kylixrd@chromium.org>
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578790}
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/app/theme/theme_resources.grd
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/themes/browser_theme_pack.cc
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/themes/browser_theme_pack_unittest.cc
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/themes/theme_properties.cc
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/themes/theme_properties.h
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/themes/theme_service.cc
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/ui/views/frame/browser_non_client_frame_view.h
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/ui/views/tabs/browser_tab_strip_controller.h
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/ui/views/tabs/fake_base_tab_strip_controller.cc
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/ui/views/tabs/fake_base_tab_strip_controller.h
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/ui/views/tabs/tab_controller.h
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/ui/views/tabs/tab_strip.cc
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/ui/views/tabs/tab_strip.h
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/ui/views/tabs/tab_strip_controller.h
[modify] https://crrev.com/8c35e22c3931c280966345bcaadda1c4f8b38e3e/chrome/browser/ui/views/tabs/tab_unittest.cc

Project Member

Comment 18 by bugdroid1@chromium.org, Jul 27

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

commit df84748a54c4ccd92e732c9168a2b3e8925695f5
Author: Peter Kasting <pkasting@chromium.org>
Date: Fri Jul 27 22:02:51 2018

Compute colors for the frame and tabs from provided images.

If theme authors explicitly provide values here, we'll use them; but if they
don't, but do provide images, set the colors to be the dominant colors of the
images, using an existing K-means algorithm (similar to what we use for
computing representative favicon colors etc.).

This allows us to rely on those colors later when deciding what color to make
tab text, the new tab button, and similar tabstrip/window frame items.

This also does a bit of cleanup to the theme pack code, e.g. moving a map used
in only one function into that function to make its provenance clearer.  I can
try to split this apart into more CLs if desired.

Bug:  862664 
Change-Id: I8c3f15893ad491a6fee8aa5f76ae162cecb2c6fd
Reviewed-on: https://chromium-review.googlesource.com/1152517
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Evan Stade <estade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578823}
[modify] https://crrev.com/df84748a54c4ccd92e732c9168a2b3e8925695f5/chrome/browser/themes/browser_theme_pack.cc
[modify] https://crrev.com/df84748a54c4ccd92e732c9168a2b3e8925695f5/chrome/browser/themes/browser_theme_pack.h
[modify] https://crrev.com/df84748a54c4ccd92e732c9168a2b3e8925695f5/chrome/browser/themes/browser_theme_pack_unittest.cc
[modify] https://crrev.com/df84748a54c4ccd92e732c9168a2b3e8925695f5/ui/gfx/color_analysis.cc
[modify] https://crrev.com/df84748a54c4ccd92e732c9168a2b3e8925695f5/ui/gfx/color_analysis.h

Project Member

Comment 19 by bugdroid1@chromium.org, Jul 27

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

commit a37ba3b982c557fbebf5de025cf300f9333dce07
Author: Scott Violet <sky@chromium.org>
Date: Fri Jul 27 23:27:25 2018

Revert "Compute colors for the frame and tabs from provided images."

This reverts commit df84748a54c4ccd92e732c9168a2b3e8925695f5.

Reason for revert: To fix unit_tests (I have to revert this before the earlier patch). Likely suspect for BrowserThemePackTest.HiDpiThemeTest failing on bots. For example, https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/linux-chromeos-rel/11230 :

[ RUN      ] BrowserThemePackTest.HiDpiThemeTest
../../chrome/browser/themes/browser_theme_pack_unittest.cc:204: Failure
Expected equality of these values:
  ""
  error
    Which is: "File doesn't exist."
Stack trace:
#0 0x0000026103ac testing::internal::UnitTestImpl::CurrentOsStackTraceExceptTop()
#1 0x00000260fd89 testing::internal::AssertHelper::operator=()
#2 0x000000fc9b98 BrowserThemePackTest::BuildFromUnpackedExtension()
#3 0x000000fd22cc BrowserThemePackTest_HiDpiThemeTest_Test::TestBody()
../../chrome/browser/themes/browser_theme_pack_unittest.cc:205: Failure
Value of: valid_value.get()
  Actual: false
Expected: true
Stack trace:
#0 0x0000026103ac testing::internal::UnitTestImpl::CurrentOsStackTraceExceptTop()
#1 0x00000260fd89 testing::internal::AssertHelper::operator=()
#2 0x000000fc9e0b BrowserThemePackTest::BuildFromUnpackedExtension()
#3 0x000000fd22cc BrowserThemePackTest_HiDpiThemeTest_Test::TestBody()
Received signal 11 SEGV_MAPERR 000000000028
#0 0x000004d00e1c base::debug::StackTrace::StackTrace()
#1 0x000004d00981 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#2 0x7f26bba79330 <unknown>
#3 0x0000050f3e24 BrowserThemePack::WriteToDisk()
#4 0x000000fd22db BrowserThemePackTest_HiDpiThemeTest_Test::TestBody()
#5 0x0000026161b2 testing::Test::Run()
#6 0x000002616d30 testing::TestInfo::Run()
#7 0x000002617247 testing::TestCase::Run()
#8 0x000002622747 testing::internal::UnitTestImpl::RunAllTests()
#9 0x0000026222bd testing::UnitTest::Run()
#10 0x0000045565d1 base::TestSuite::Run()
#11 0x000004557fca base::(anonymous namespace)::LaunchUnitTestsInternal()
#12 0x000004557e7a base::LaunchUnitTests()
#13 0x00000454e155 main
#14 0x7f26b86c9f45 __libc_start_main
#15 0x0000006fa82a _start
  r8: 0000000000000000  r9: 54656d6568546970 r10: 747365545f747365 r11: 0000000000000000
 r12: 000024a8af0c0d20 r13: 00007fff447924e8 r14: 00007fff44792560 r15: 0000000000000000
  di: 0000000000000000  si: 00007fff44792560  bp: 00007fff44792520  bx: 00007fff44792578
  dx: 00000000000005e7  ax: 0000000000001fdd  cx: 0000000000000023  sp: 00007fff44792490
  ip: 00000000050f3e24 efl: 0000000000010206 cgf: 0000000000000033 erf: 0000000000000004
 trp: 000000000000000e msk: 0000000000000000 cr2: 0000000000000028
[end of stack trace]

Original change's description:
> Compute colors for the frame and tabs from provided images.
> 
> If theme authors explicitly provide values here, we'll use them; but if they
> don't, but do provide images, set the colors to be the dominant colors of the
> images, using an existing K-means algorithm (similar to what we use for
> computing representative favicon colors etc.).
> 
> This allows us to rely on those colors later when deciding what color to make
> tab text, the new tab button, and similar tabstrip/window frame items.
> 
> This also does a bit of cleanup to the theme pack code, e.g. moving a map used
> in only one function into that function to make its provenance clearer.  I can
> try to split this apart into more CLs if desired.
> 
> Bug:  862664 
> Change-Id: I8c3f15893ad491a6fee8aa5f76ae162cecb2c6fd
> Reviewed-on: https://chromium-review.googlesource.com/1152517
> Commit-Queue: Peter Kasting <pkasting@chromium.org>
> Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
> Reviewed-by: Evan Stade <estade@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#578823}

TBR=pkasting@chromium.org,asvitkine@chromium.org,estade@chromium.org

Change-Id: I6a5a7f2916136ccf93101f36c34a17a4e5ef5d4f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  862664 
Reviewed-on: https://chromium-review.googlesource.com/1153988
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578856}
[modify] https://crrev.com/a37ba3b982c557fbebf5de025cf300f9333dce07/chrome/browser/themes/browser_theme_pack.cc
[modify] https://crrev.com/a37ba3b982c557fbebf5de025cf300f9333dce07/chrome/browser/themes/browser_theme_pack.h
[modify] https://crrev.com/a37ba3b982c557fbebf5de025cf300f9333dce07/chrome/browser/themes/browser_theme_pack_unittest.cc
[modify] https://crrev.com/a37ba3b982c557fbebf5de025cf300f9333dce07/ui/gfx/color_analysis.cc
[modify] https://crrev.com/a37ba3b982c557fbebf5de025cf300f9333dce07/ui/gfx/color_analysis.h

Project Member

Comment 20 by bugdroid1@chromium.org, Jul 27

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

commit 62a8750bd3812074a383ad3e10bf99d5ed49e93c
Author: Scott Violet <sky@chromium.org>
Date: Fri Jul 27 23:39:08 2018

Revert "Add background tab colors and inactive images to the theme system."

This reverts commit 8c35e22c3931c280966345bcaadda1c4f8b38e3e.

Reason for revert: Reverting to fix unit_tests on chromeos bot. This is next in the chain. Ugh!

Original change's description:
> Add background tab colors and inactive images to the theme system.
> 
> These will eventually be used for three purposes:
> (1) To allow generating different background tab images from a common tint for
>     the inactive and incognito cases, thus allowing background tabs that blend
>     into the frame for custom themes.
> (2) To allow autogenerating the background tab colors from the background tab
>     images, thus letting us autocalculate better tab text/separator/etc. colors.
> (3) To allow theme authors to customize/override this behavior more precisely.
> 
> Reasons (1) and (2) dictated the design here; reason (3) is basically a free
> bonus.  I thought about not making these resources overrideable by theme
> authors, but there was some technical reason that turned out to not be easily
> feasible, and there seems little reason to prevent it.
> 
> This also allows us to read THEME_TAB_BACKGROUND_INCOGNITO on Mac (Views).
> 
> This shouldn't result in a visual change on its own.
> 
> Bug:  862664 
> Change-Id: Icc57f78fd526d68b83c692fbac669a7371bb38ff
> Reviewed-on: https://chromium-review.googlesource.com/1147869
> Commit-Queue: Peter Kasting <pkasting@chromium.org>
> Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
> Reviewed-by: Evan Stade <estade@chromium.org>
> Reviewed-by: Allen Bauer <kylixrd@chromium.org>
> Reviewed-by: Bret Sepulveda <bsep@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#578790}

TBR=pkasting@chromium.org,oshima@chromium.org,estade@chromium.org,bsep@chromium.org,kylixrd@chromium.org

Change-Id: I6abe212768916890c11aec28aac5fc96891ac695
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  862664 
Reviewed-on: https://chromium-review.googlesource.com/1153990
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578861}
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/app/theme/theme_resources.grd
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/themes/browser_theme_pack.cc
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/themes/browser_theme_pack_unittest.cc
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/themes/theme_properties.cc
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/themes/theme_properties.h
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/themes/theme_service.cc
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/ui/views/frame/browser_non_client_frame_view.h
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/ui/views/tabs/browser_tab_strip_controller.h
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/ui/views/tabs/fake_base_tab_strip_controller.cc
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/ui/views/tabs/fake_base_tab_strip_controller.h
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/ui/views/tabs/tab_controller.h
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/ui/views/tabs/tab_strip.cc
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/ui/views/tabs/tab_strip.h
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/ui/views/tabs/tab_strip_controller.h
[modify] https://crrev.com/62a8750bd3812074a383ad3e10bf99d5ed49e93c/chrome/browser/ui/views/tabs/tab_unittest.cc

Project Member

Comment 21 by bugdroid1@chromium.org, Jul 28

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

commit edad6258464443787aa84302360fc0b97cfdcabe
Author: Peter Kasting <pkasting@chromium.org>
Date: Sat Jul 28 02:23:11 2018

Reland "Add background tab colors and inactive images to the theme system."

This is a reland of 8c35e22c3931c280966345bcaadda1c4f8b38e3e

Original change's description:
> Add background tab colors and inactive images to the theme system.
>
> These will eventually be used for three purposes:
> (1) To allow generating different background tab images from a common tint for
>     the inactive and incognito cases, thus allowing background tabs that blend
>     into the frame for custom themes.
> (2) To allow autogenerating the background tab colors from the background tab
>     images, thus letting us autocalculate better tab text/separator/etc. colors.
> (3) To allow theme authors to customize/override this behavior more precisely.
>
> Reasons (1) and (2) dictated the design here; reason (3) is basically a free
> bonus.  I thought about not making these resources overrideable by theme
> authors, but there was some technical reason that turned out to not be easily
> feasible, and there seems little reason to prevent it.
>
> This also allows us to read THEME_TAB_BACKGROUND_INCOGNITO on Mac (Views).
>
> This shouldn't result in a visual change on its own.
>
> Bug:  862664 
> Change-Id: Icc57f78fd526d68b83c692fbac669a7371bb38ff
> Reviewed-on: https://chromium-review.googlesource.com/1147869
> Commit-Queue: Peter Kasting <pkasting@chromium.org>
> Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
> Reviewed-by: Evan Stade <estade@chromium.org>
> Reviewed-by: Allen Bauer <kylixrd@chromium.org>
> Reviewed-by: Bret Sepulveda <bsep@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#578790}

Bug:  862664 
Change-Id: I341bbce16853095f17b2608a7639bf0fd105c2cc
TBR: estade, oshima, bsep, kylixrd
Reviewed-on: https://chromium-review.googlesource.com/1154148
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578898}
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/app/theme/theme_resources.grd
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/themes/browser_theme_pack.cc
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/themes/browser_theme_pack_unittest.cc
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/themes/theme_properties.cc
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/themes/theme_properties.h
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/themes/theme_service.cc
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/ui/views/frame/browser_non_client_frame_view.h
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/ui/views/tabs/browser_tab_strip_controller.h
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/ui/views/tabs/fake_base_tab_strip_controller.cc
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/ui/views/tabs/fake_base_tab_strip_controller.h
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/ui/views/tabs/tab_controller.h
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/ui/views/tabs/tab_strip.cc
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/ui/views/tabs/tab_strip.h
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/ui/views/tabs/tab_strip_controller.h
[modify] https://crrev.com/edad6258464443787aa84302360fc0b97cfdcabe/chrome/browser/ui/views/tabs/tab_unittest.cc

Project Member

Comment 22 by bugdroid1@chromium.org, Jul 28

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

commit a4248b92419b60d2e4319448bf9995c7f834e45c
Author: Peter Kasting <pkasting@chromium.org>
Date: Sat Jul 28 19:28:03 2018

Reland "Compute colors for the frame and tabs from provided images."

This is a reland of df84748a54c4ccd92e732c9168a2b3e8925695f5

Original change's description:
> Compute colors for the frame and tabs from provided images.
>
> If theme authors explicitly provide values here, we'll use them; but if they
> don't, but do provide images, set the colors to be the dominant colors of the
> images, using an existing K-means algorithm (similar to what we use for
> computing representative favicon colors etc.).
>
> This allows us to rely on those colors later when deciding what color to make
> tab text, the new tab button, and similar tabstrip/window frame items.
>
> This also does a bit of cleanup to the theme pack code, e.g. moving a map used
> in only one function into that function to make its provenance clearer.  I can
> try to split this apart into more CLs if desired.
>
> Bug:  862664 
> Change-Id: I8c3f15893ad491a6fee8aa5f76ae162cecb2c6fd
> Reviewed-on: https://chromium-review.googlesource.com/1152517
> Commit-Queue: Peter Kasting <pkasting@chromium.org>
> Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
> Reviewed-by: Evan Stade <estade@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#578823}

Bug:  862664 
Change-Id: Ic5d9479a144f07f48de5bf4e2a07d6b6b0ea8f72
TBR: asvitkine, estade
Reviewed-on: https://chromium-review.googlesource.com/1154150
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578932}
[modify] https://crrev.com/a4248b92419b60d2e4319448bf9995c7f834e45c/chrome/browser/themes/browser_theme_pack.cc
[modify] https://crrev.com/a4248b92419b60d2e4319448bf9995c7f834e45c/chrome/browser/themes/browser_theme_pack.h
[modify] https://crrev.com/a4248b92419b60d2e4319448bf9995c7f834e45c/chrome/browser/themes/browser_theme_pack_unittest.cc
[modify] https://crrev.com/a4248b92419b60d2e4319448bf9995c7f834e45c/ui/gfx/color_analysis.cc
[modify] https://crrev.com/a4248b92419b60d2e4319448bf9995c7f834e45c/ui/gfx/color_analysis.h

Project Member

Comment 23 by bugdroid1@chromium.org, Jul 28

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

commit 5ae6d69be3abbac3a2d696120919d26644698162
Author: Peter Kasting <pkasting@chromium.org>
Date: Sat Jul 28 21:53:25 2018

Base the tab separator color on the tab background color.

Bug:  862664 
Change-Id: I05e936b9f165278d46f7b9aee4dc1fe8dd20624c
Reviewed-on: https://chromium-review.googlesource.com/1139410
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578937}
[modify] https://crrev.com/5ae6d69be3abbac3a2d696120919d26644698162/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc

Labels: Merge-Request-69
Project Member

Comment 25 by sheriffbot@chromium.org, Jul 29

Labels: -Merge-Request-69 Merge-Review-69 Hotlist-Merge-Review
This bug requires manual review: There is .grd file changes and we are only 36 days from stable.
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), kariahda@(iOS), cindyb@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Could you pls update which CL you're requesting a merge to M69 for? Also how safe is the CL to merge? Thank you.
All CLs on this bug: comments 16, 17, 18, and 23 (the relands in comments 21 and 22 are identical).

This stuff isn't as safe as I'd like, but our hands are tied: we need this theme work to make Refresh work well with custom themes in GM2.  I'm comfortable merging it and addressing any issues that happen to appear before stable.
Cc: abdulsyed@chromium.org
Labels: -Merge-Review-69 Merge-Approved-69
Thank you pkasting@.

Approving merge to M69 branch 3497 for all CLs listed at #27 based on comment #27. Please merge before 3:00 PM PT, tomorrow, Monday so we can pick it up for next week Dev/Beta release. Thank you.
Project Member

Comment 29 by bugdroid1@chromium.org, Jul 30

Labels: -merge-approved-69 merge-merged-3497
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4136b5199cb58f17b65fc97027584e4c082f334f

commit 4136b5199cb58f17b65fc97027584e4c082f334f
Author: Peter Kasting <pkasting@chromium.org>
Date: Mon Jul 30 19:21:53 2018

Make HasCustomColor() match GetColor().

The latter has various transformations around when it queries the underlying
the provider and with what constants.  Use this behavior in HasCustomColor()
too.  This ensures callers get consistent behavior in these cases.

Along the way this changes a multi-arm conditional to a helper function.
That isn't necessary for this patch, but it will make it easy to land
subsequent ones that add more such constants.

Bug:  862664 
Change-Id: I83295902f7c38767c3a051a40e5f195f8e78e4ef
Reviewed-on: https://chromium-review.googlesource.com/1147601
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Evan Stade <estade@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#577703}(cherry picked from commit a91ffca64e95ec36000ee43296d5025e89da5244)
Reviewed-on: https://chromium-review.googlesource.com/1155489
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/branch-heads/3497@{#229}
Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753}
[modify] https://crrev.com/4136b5199cb58f17b65fc97027584e4c082f334f/chrome/browser/themes/theme_service.cc
[modify] https://crrev.com/4136b5199cb58f17b65fc97027584e4c082f334f/chrome/browser/themes/theme_service.h

Project Member

Comment 30 by bugdroid1@chromium.org, Jul 30

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

commit 2acf05201ec92c2e8e9bedc66551aebb7dd11d07
Author: Peter Kasting <pkasting@chromium.org>
Date: Mon Jul 30 20:39:35 2018

Add background tab colors and inactive images to the theme system.

These will eventually be used for three purposes:
(1) To allow generating different background tab images from a common tint for
    the inactive and incognito cases, thus allowing background tabs that blend
    into the frame for custom themes.
(2) To allow autogenerating the background tab colors from the background tab
    images, thus letting us autocalculate better tab text/separator/etc. colors.
(3) To allow theme authors to customize/override this behavior more precisely.

Reasons (1) and (2) dictated the design here; reason (3) is basically a free
bonus.  I thought about not making these resources overrideable by theme
authors, but there was some technical reason that turned out to not be easily
feasible, and there seems little reason to prevent it.

This also allows us to read THEME_TAB_BACKGROUND_INCOGNITO on Mac (Views).

This shouldn't result in a visual change on its own.

Bug:  862664 
Change-Id: Icc57f78fd526d68b83c692fbac669a7371bb38ff
Reviewed-on: https://chromium-review.googlesource.com/1147869
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Reviewed-by: Evan Stade <estade@chromium.org>
Reviewed-by: Allen Bauer <kylixrd@chromium.org>
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#578790}(cherry picked from commit 8c35e22c3931c280966345bcaadda1c4f8b38e3e)
Reviewed-on: https://chromium-review.googlesource.com/1155608
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/branch-heads/3497@{#241}
Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753}
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/app/theme/theme_resources.grd
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/themes/browser_theme_pack.cc
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/themes/browser_theme_pack_unittest.cc
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/themes/theme_properties.cc
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/themes/theme_properties.h
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/themes/theme_service.cc
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/ui/views/frame/browser_non_client_frame_view.h
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/ui/views/tabs/browser_tab_strip_controller.h
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/ui/views/tabs/fake_base_tab_strip_controller.cc
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/ui/views/tabs/fake_base_tab_strip_controller.h
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/ui/views/tabs/tab_controller.h
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/ui/views/tabs/tab_strip.cc
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/ui/views/tabs/tab_strip.h
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/ui/views/tabs/tab_strip_controller.h
[modify] https://crrev.com/2acf05201ec92c2e8e9bedc66551aebb7dd11d07/chrome/browser/ui/views/tabs/tab_unittest.cc

Project Member

Comment 31 by bugdroid1@chromium.org, Jul 30

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

commit db037b94b66afd8d94e65a2cab220764a22064d8
Author: Peter Kasting <pkasting@chromium.org>
Date: Mon Jul 30 20:41:20 2018

Compute colors for the frame and tabs from provided images.

If theme authors explicitly provide values here, we'll use them; but if they
don't, but do provide images, set the colors to be the dominant colors of the
images, using an existing K-means algorithm (similar to what we use for
computing representative favicon colors etc.).

This allows us to rely on those colors later when deciding what color to make
tab text, the new tab button, and similar tabstrip/window frame items.

This also does a bit of cleanup to the theme pack code, e.g. moving a map used
in only one function into that function to make its provenance clearer.  I can
try to split this apart into more CLs if desired.

Bug:  862664 
Change-Id: I8c3f15893ad491a6fee8aa5f76ae162cecb2c6fd
Reviewed-on: https://chromium-review.googlesource.com/1152517
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Evan Stade <estade@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#578823}(cherry picked from commit df84748a54c4ccd92e732c9168a2b3e8925695f5)
Reviewed-on: https://chromium-review.googlesource.com/1155609
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/branch-heads/3497@{#243}
Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753}
[modify] https://crrev.com/db037b94b66afd8d94e65a2cab220764a22064d8/chrome/browser/themes/browser_theme_pack.cc
[modify] https://crrev.com/db037b94b66afd8d94e65a2cab220764a22064d8/chrome/browser/themes/browser_theme_pack.h
[modify] https://crrev.com/db037b94b66afd8d94e65a2cab220764a22064d8/chrome/browser/themes/browser_theme_pack_unittest.cc
[modify] https://crrev.com/db037b94b66afd8d94e65a2cab220764a22064d8/ui/gfx/color_analysis.cc
[modify] https://crrev.com/db037b94b66afd8d94e65a2cab220764a22064d8/ui/gfx/color_analysis.h

Project Member

Comment 32 by bugdroid1@chromium.org, Jul 30

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

commit 47e0de6c8cb400f98eb46662fcfbb9e10f622643
Author: Peter Kasting <pkasting@chromium.org>
Date: Mon Jul 30 20:42:27 2018

Base the tab separator color on the tab background color.

Bug:  862664 
Change-Id: I05e936b9f165278d46f7b9aee4dc1fe8dd20624c
Reviewed-on: https://chromium-review.googlesource.com/1139410
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#578937}(cherry picked from commit 5ae6d69be3abbac3a2d696120919d26644698162)
Reviewed-on: https://chromium-review.googlesource.com/1155495
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/branch-heads/3497@{#245}
Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753}
[modify] https://crrev.com/47e0de6c8cb400f98eb46662fcfbb9e10f622643/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc

Status: Fixed (was: Started)
+abdulsyed@ fyi, M69 merges taken for Proj-MdRefresh .

Sign in to add a comment