| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/favicon_base/fallback_icon_style.h" | 5 #include "components/favicon_base/fallback_icon_style.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "ui/gfx/color_analysis.h" | 9 #include "ui/gfx/color_analysis.h" |
| 10 #include "ui/gfx/color_utils.h" | 10 #include "ui/gfx/color_utils.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 const SkColor kDefaultTextColorDark = SK_ColorBLACK; | 27 const SkColor kDefaultTextColorDark = SK_ColorBLACK; |
| 28 const SkColor kDefaultTextColorLight = SK_ColorWHITE; | 28 const SkColor kDefaultTextColorLight = SK_ColorWHITE; |
| 29 const double kDefaultFontSizeRatio = 0.44; | 29 const double kDefaultFontSizeRatio = 0.44; |
| 30 const double kDefaultRoundness = 0; // Square. Round corners are applied | 30 const double kDefaultRoundness = 0; // Square. Round corners are applied |
| 31 // externally (Javascript or Java). | 31 // externally (Javascript or Java). |
| 32 | 32 |
| 33 } // namespace | 33 } // namespace |
| 34 | 34 |
| 35 FallbackIconStyle::FallbackIconStyle() | 35 FallbackIconStyle::FallbackIconStyle() |
| 36 : background_color(kDefaultBackgroundColor), | 36 : background_color(kDefaultBackgroundColor), |
| 37 is_default_background_color(true), |
| 37 text_color(kDefaultTextColorLight), | 38 text_color(kDefaultTextColorLight), |
| 38 font_size_ratio(kDefaultFontSizeRatio), | 39 font_size_ratio(kDefaultFontSizeRatio), |
| 39 roundness(kDefaultRoundness) { | 40 roundness(kDefaultRoundness) {} |
| 40 } | |
| 41 | 41 |
| 42 FallbackIconStyle::~FallbackIconStyle() { | 42 FallbackIconStyle::~FallbackIconStyle() { |
| 43 } | 43 } |
| 44 | 44 |
| 45 bool FallbackIconStyle::operator==(const FallbackIconStyle& other) const { | 45 bool FallbackIconStyle::operator==(const FallbackIconStyle& other) const { |
| 46 return background_color == other.background_color && | 46 return background_color == other.background_color && |
| 47 text_color == other.text_color && | 47 is_default_background_color == other.is_default_background_color && |
| 48 font_size_ratio == other.font_size_ratio && | 48 text_color == other.text_color && |
| 49 roundness == other.roundness; | 49 font_size_ratio == other.font_size_ratio && |
| 50 roundness == other.roundness; |
| 50 } | 51 } |
| 51 | 52 |
| 52 void MatchFallbackIconTextColorAgainstBackgroundColor( | 53 void MatchFallbackIconTextColorAgainstBackgroundColor( |
| 53 FallbackIconStyle* style) { | 54 FallbackIconStyle* style) { |
| 54 const uint8_t luma = color_utils::GetLuma(style->background_color); | 55 const uint8_t luma = color_utils::GetLuma(style->background_color); |
| 55 style->text_color = (luma >= kDarkTextLumaThreshold) ? | 56 style->text_color = (luma >= kDarkTextLumaThreshold) ? |
| 56 kDefaultTextColorDark : kDefaultTextColorLight; | 57 kDefaultTextColorDark : kDefaultTextColorLight; |
| 57 } | 58 } |
| 58 | 59 |
| 59 bool ValidateFallbackIconStyle(const FallbackIconStyle& style) { | 60 bool ValidateFallbackIconStyle(const FallbackIconStyle& style) { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 73 bitmap_data, lower_bound, upper_bound, &sampler); | 74 bitmap_data, lower_bound, upper_bound, &sampler); |
| 74 // |CalculateKMeanColorOfPNG| will try to return a color that lies within the | 75 // |CalculateKMeanColorOfPNG| will try to return a color that lies within the |
| 75 // specified bounds if one exists in the image. If there's no such color, it | 76 // specified bounds if one exists in the image. If there's no such color, it |
| 76 // will return the dominant color which may be lighter than our upper bound. | 77 // will return the dominant color which may be lighter than our upper bound. |
| 77 // Clamp lightness down to a reasonable maximum value so text is readable. | 78 // Clamp lightness down to a reasonable maximum value so text is readable. |
| 78 color_utils::HSL color_hsl; | 79 color_utils::HSL color_hsl; |
| 79 color_utils::SkColorToHSL(dominant_color, &color_hsl); | 80 color_utils::SkColorToHSL(dominant_color, &color_hsl); |
| 80 color_hsl.l = std::min(color_hsl.l, kMaxBackgroundColorLightness); | 81 color_hsl.l = std::min(color_hsl.l, kMaxBackgroundColorLightness); |
| 81 style->background_color = | 82 style->background_color = |
| 82 color_utils::HSLToSkColor(color_hsl, SK_AlphaOPAQUE); | 83 color_utils::HSLToSkColor(color_hsl, SK_AlphaOPAQUE); |
| 84 style->is_default_background_color = false; |
| 83 } | 85 } |
| 84 | 86 |
| 85 } // namespace favicon_base | 87 } // namespace favicon_base |
| OLD | NEW |