1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
// 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
|