blob: 41c38809a8b272df41e2a6179dcf1889ff6dad73 [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/omnibox/browser/location_bar_model_util.h"
#include "base/feature_list.h"
#include "base/notreached.h"
#include "build/build_config.h"
#include "components/omnibox/browser/buildflags.h"
#include "components/omnibox/common/omnibox_features.h"
#include "components/safe_browsing/core/common/features.h"
#include "components/security_interstitials/core/features.h"
#include "components/security_state/core/security_state.h"
#include "ui/base/ui_base_features.h"
#include "ui/gfx/vector_icon_types.h"
#if (!BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_VR)) && !BUILDFLAG(IS_IOS)
#include "components/omnibox/browser/vector_icons.h" // nogncheck
#include "components/vector_icons/vector_icons.h" // nogncheck
#endif
namespace location_bar_model {
const gfx::VectorIcon& GetSecurityVectorIcon(
security_state::SecurityLevel security_level,
security_state::VisibleSecurityState* visible_security_state) {
#if (!BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_VR)) && !BUILDFLAG(IS_IOS)
security_state::MaliciousContentStatus malicious_content_status =
visible_security_state->malicious_content_status;
switch (security_level) {
case security_state::NONE:
return omnibox::kHttpChromeRefreshIcon;
case security_state::SECURE:
return omnibox::kSecurePageInfoChromeRefreshIcon;
case security_state::WARNING:
if (base::FeatureList::IsEnabled(
security_interstitials::features::kHttpsFirstDialogUi) &&
visible_security_state->is_https_only_mode_upgraded) {
return vector_icons::kNoEncryptionIcon;
}
return vector_icons::kNotSecureWarningChromeRefreshIcon;
case security_state::DANGEROUS:
if (malicious_content_status ==
security_state::MALICIOUS_CONTENT_STATUS_MANAGED_POLICY_WARN ||
malicious_content_status ==
security_state::MALICIOUS_CONTENT_STATUS_MANAGED_POLICY_BLOCK) {
return vector_icons::kBusinessChromeRefreshIcon;
}
if (malicious_content_status !=
security_state::MALICIOUS_CONTENT_STATUS_BILLING) {
return vector_icons::kDangerousChromeRefreshIcon;
}
return vector_icons::kNotSecureWarningChromeRefreshIcon;
case security_state::SECURITY_LEVEL_COUNT:
NOTREACHED();
}
#endif
NOTREACHED();
}
} // namespace location_bar_model