Commit 08435c30 authored by Dominique Fauteux-Chapleau's avatar Dominique Fauteux-Chapleau Committed by Commit Bot

Fix dark mode detection in SafetyTipPageInfoBubbleView

Following discussion in crrev.com/c/1991710 about using dark mode PNGs,
the preferred approach is using color_utils::IsDark() instead of
GetNativeTheme()->ShouldUseDarkColors().

Change-Id: I821e28edb287715293b3eb8fb4a59b4b15337c45
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2019782
Commit-Queue: Dominique Fauteux-Chapleau <domfc@chromium.org>
Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#735394}
parent 4a4703ca
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "components/strings/grit/components_strings.h" #include "components/strings/grit/components_strings.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h" #include "ui/base/resource/resource_bundle.h"
#include "ui/gfx/color_utils.h"
#include "ui/views/bubble/bubble_frame_view.h" #include "ui/views/bubble/bubble_frame_view.h"
#include "ui/views/controls/button/button.h" #include "ui/views/controls/button/button.h"
#include "ui/views/controls/button/md_text_button.h" #include "ui/views/controls/button/md_text_button.h"
...@@ -31,40 +32,23 @@ ...@@ -31,40 +32,23 @@
namespace { namespace {
int GetSafetyTipBannerId(security_state::SafetyTipStatus safety_tip_status) { int GetSafetyTipBannerId(security_state::SafetyTipStatus safety_tip_status,
const ui::NativeTheme* native_theme = bool is_dark) {
ui::NativeTheme::GetInstanceForNativeUi(); switch (safety_tip_status) {
bool is_dark = native_theme && native_theme->ShouldUseDarkColors(); case security_state::SafetyTipStatus::kBadReputation:
return is_dark ? IDR_SAFETY_TIP_SUSPICIOUS_ILLUSTRATION_DARK
if (is_dark) { : IDR_SAFETY_TIP_SUSPICIOUS_ILLUSTRATION_LIGHT;
switch (safety_tip_status) { case security_state::SafetyTipStatus::kLookalike:
case security_state::SafetyTipStatus::kBadReputation: return is_dark ? IDR_SAFETY_TIP_LOOKALIKE_ILLUSTRATION_DARK
return IDR_SAFETY_TIP_SUSPICIOUS_ILLUSTRATION_DARK; : IDR_SAFETY_TIP_LOOKALIKE_ILLUSTRATION_LIGHT;
case security_state::SafetyTipStatus::kLookalike: case security_state::SafetyTipStatus::kBadReputationIgnored:
return IDR_SAFETY_TIP_LOOKALIKE_ILLUSTRATION_DARK; case security_state::SafetyTipStatus::kLookalikeIgnored:
case security_state::SafetyTipStatus::kBadReputationIgnored: case security_state::SafetyTipStatus::kBadKeyword:
case security_state::SafetyTipStatus::kLookalikeIgnored: case security_state::SafetyTipStatus::kUnknown:
case security_state::SafetyTipStatus::kBadKeyword: case security_state::SafetyTipStatus::kNone:
case security_state::SafetyTipStatus::kUnknown: NOTREACHED();
case security_state::SafetyTipStatus::kNone: return 0;
NOTREACHED();
}
} else {
switch (safety_tip_status) {
case security_state::SafetyTipStatus::kBadReputation:
return IDR_SAFETY_TIP_SUSPICIOUS_ILLUSTRATION_LIGHT;
case security_state::SafetyTipStatus::kLookalike:
return IDR_SAFETY_TIP_LOOKALIKE_ILLUSTRATION_LIGHT;
case security_state::SafetyTipStatus::kBadReputationIgnored:
case security_state::SafetyTipStatus::kLookalikeIgnored:
case security_state::SafetyTipStatus::kBadKeyword:
case security_state::SafetyTipStatus::kUnknown:
case security_state::SafetyTipStatus::kNone:
NOTREACHED();
}
} }
NOTREACHED();
return IDR_SAFETY_TIP_SUSPICIOUS_ILLUSTRATION_LIGHT;
} }
} // namespace } // namespace
...@@ -129,8 +113,10 @@ SafetyTipPageInfoBubbleView::SafetyTipPageInfoBubbleView( ...@@ -129,8 +113,10 @@ SafetyTipPageInfoBubbleView::SafetyTipPageInfoBubbleView(
1.0, views::GridLayout::USE_PREF, 0, 0); 1.0, views::GridLayout::USE_PREF, 0, 0);
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
const bool use_dark =
color_utils::IsDark(GetBubbleFrameView()->GetBackgroundColor());
const gfx::ImageSkia* image = const gfx::ImageSkia* image =
rb.GetNativeImageNamed(GetSafetyTipBannerId(safety_tip_status)) rb.GetNativeImageNamed(GetSafetyTipBannerId(safety_tip_status, use_dark))
.ToImageSkia(); .ToImageSkia();
auto image_view = std::make_unique<NonAccessibleImageView>(); auto image_view = std::make_unique<NonAccessibleImageView>();
image_view->SetImage(*image); image_view->SetImage(*image);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment