Commit 9f7a1b1e authored by Joe DeBlasio's avatar Joe DeBlasio Committed by Commit Bot

Unification of accessibility and secure chip logic.

This CL simplifies the logic that determines what text is displayed in
the HTTPS UI indicator. It explicitly merges the logic for determining
what text is visually displayed with that of the accessibility label
into one function.

Bug: 812447
Change-Id: I72125b81003223ecd00d290a6900533dfb424d10
Reviewed-on: https://chromium-review.googlesource.com/c/1331569
Commit-Queue: Joe DeBlasio <jdeblasio@chromium.org>
Reviewed-by: default avatarTommy Li <tommycli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607456}
parent d2cde601
...@@ -96,13 +96,12 @@ void LocationIconView::GetAccessibleNodeData(ui::AXNodeData* node_data) { ...@@ -96,13 +96,12 @@ void LocationIconView::GetAccessibleNodeData(ui::AXNodeData* node_data) {
return; return;
} }
security_state::SecurityLevel security_level = // If no display text exists, ensure that the accessibility label is added.
delegate_->GetLocationBarModel()->GetSecurityLevel(false); auto accessibility_label = base::UTF16ToUTF8(
if (label()->text().empty() && (security_level == security_state::EV_SECURE || delegate_->GetLocationBarModel()->GetSecureAccessibilityText());
security_level == security_state::SECURE)) { if (label()->text().empty() && !accessibility_label.empty()) {
node_data->AddStringAttribute( node_data->AddStringAttribute(ax::mojom::StringAttribute::kDescription,
ax::mojom::StringAttribute::kDescription, accessibility_label);
l10n_util::GetStringUTF8(IDS_SECURE_VERBOSE_STATE));
} }
IconLabelBubbleView::GetAccessibleNodeData(node_data); IconLabelBubbleView::GetAccessibleNodeData(node_data);
...@@ -141,7 +140,7 @@ bool LocationIconView::ShouldShowText() const { ...@@ -141,7 +140,7 @@ bool LocationIconView::ShouldShowText() const {
return true; return true;
} }
return !location_bar_model->GetSecureVerboseText().empty(); return !location_bar_model->GetSecureDisplayText().empty();
} }
base::string16 LocationIconView::GetText() const { base::string16 LocationIconView::GetText() const {
...@@ -166,7 +165,7 @@ base::string16 LocationIconView::GetText() const { ...@@ -166,7 +165,7 @@ base::string16 LocationIconView::GetText() const {
return extension_name; return extension_name;
} }
return delegate_->GetLocationBarModel()->GetSecureVerboseText(); return delegate_->GetLocationBarModel()->GetSecureDisplayText();
} }
bool LocationIconView::ShouldAnimateTextVisibilityChange() const { bool LocationIconView::ShouldAnimateTextVisibilityChange() const {
......
...@@ -60,7 +60,7 @@ class LocationBarModel { ...@@ -60,7 +60,7 @@ class LocationBarModel {
// Returns text for the omnibox secure verbose chip, displayed next to the // Returns text for the omnibox secure verbose chip, displayed next to the
// security icon on certain platforms. // security icon on certain platforms.
virtual base::string16 GetSecureVerboseText() const = 0; virtual base::string16 GetSecureDisplayText() const = 0;
// Returns text describing the security state for accessibility. // Returns text describing the security state for accessibility.
virtual base::string16 GetSecureAccessibilityText() const = 0; virtual base::string16 GetSecureAccessibilityText() const = 0;
......
...@@ -159,64 +159,66 @@ base::string16 LocationBarModelImpl::GetEVCertName() const { ...@@ -159,64 +159,66 @@ base::string16 LocationBarModelImpl::GetEVCertName() const {
base::UTF8ToUTF16(cert->subject().country_name)); base::UTF8ToUTF16(cert->subject().country_name));
} }
base::string16 LocationBarModelImpl::GetSecureText() const { LocationBarModelImpl::SecureChipText LocationBarModelImpl::GetSecureChipText()
const {
// Note that displayed text (the first output) will be implicitly used as the
// accessibility text unless no display text has been specified.
// Security UI study (https://crbug.com/803501): Change EV/Secure text.
const std::string securityUIStudyParam =
base::FeatureList::IsEnabled(omnibox::kSimplifyHttpsIndicator)
? base::GetFieldTrialParamValueByFeature(
omnibox::kSimplifyHttpsIndicator,
OmniboxFieldTrial::kSimplifyHttpsIndicatorParameterName)
: std::string();
if (IsOfflinePage())
return SecureChipText(l10n_util::GetStringUTF16(IDS_OFFLINE_VERBOSE_STATE));
switch (GetSecurityLevel(false)) { switch (GetSecurityLevel(false)) {
case security_state::HTTP_SHOW_WARNING: case security_state::HTTP_SHOW_WARNING:
return l10n_util::GetStringUTF16(IDS_NOT_SECURE_VERBOSE_STATE); return SecureChipText(
l10n_util::GetStringUTF16(IDS_NOT_SECURE_VERBOSE_STATE));
case security_state::EV_SECURE: case security_state::EV_SECURE:
return GetEVCertName(); if (securityUIStudyParam ==
OmniboxFieldTrial::kSimplifyHttpsIndicatorParameterEvToSecure)
return SecureChipText(
l10n_util::GetStringUTF16(IDS_SECURE_VERBOSE_STATE));
if (securityUIStudyParam ==
OmniboxFieldTrial::kSimplifyHttpsIndicatorParameterBothToLock)
return SecureChipText(base::string16(), l10n_util::GetStringUTF16(
IDS_SECURE_VERBOSE_STATE));
return SecureChipText(GetEVCertName());
case security_state::SECURE: case security_state::SECURE:
return l10n_util::GetStringUTF16(IDS_SECURE_VERBOSE_STATE); if (securityUIStudyParam !=
OmniboxFieldTrial::kSimplifyHttpsIndicatorParameterKeepSecureChip)
return SecureChipText(base::string16(), l10n_util::GetStringUTF16(
IDS_SECURE_VERBOSE_STATE));
return SecureChipText(
l10n_util::GetStringUTF16(IDS_SECURE_VERBOSE_STATE));
case security_state::DANGEROUS: case security_state::DANGEROUS:
if (delegate_->FailsMalwareCheck()) if (delegate_->FailsMalwareCheck())
return l10n_util::GetStringUTF16(IDS_DANGEROUS_VERBOSE_STATE); return SecureChipText(
l10n_util::GetStringUTF16(IDS_DANGEROUS_VERBOSE_STATE));
// Don't show any text in the security indicator for sites on the billing // Don't show any text in the security indicator for sites on the billing
// interstitial list. // interstitial list.
return delegate_->FailsBillingCheck() return SecureChipText(
? base::string16() delegate_->FailsBillingCheck()
: l10n_util::GetStringUTF16(IDS_NOT_SECURE_VERBOSE_STATE); ? base::string16()
: l10n_util::GetStringUTF16(IDS_NOT_SECURE_VERBOSE_STATE));
default: default:
return base::string16(); return SecureChipText(base::string16());
} }
} }
base::string16 LocationBarModelImpl::GetSecureVerboseText() const { base::string16 LocationBarModelImpl::GetSecureDisplayText() const {
if (IsOfflinePage()) return GetSecureChipText().display_text_;
return l10n_util::GetStringUTF16(IDS_OFFLINE_VERBOSE_STATE);
// Security UI study (https://crbug.com/803501): Change EV/Secure text.
const std::string parameter =
base::FeatureList::IsEnabled(omnibox::kSimplifyHttpsIndicator)
? base::GetFieldTrialParamValueByFeature(
omnibox::kSimplifyHttpsIndicator,
OmniboxFieldTrial::kSimplifyHttpsIndicatorParameterName)
: std::string();
auto security_level = GetSecurityLevel(false);
if (security_level == security_state::EV_SECURE) {
if (parameter ==
OmniboxFieldTrial::kSimplifyHttpsIndicatorParameterEvToSecure) {
return l10n_util::GetStringUTF16(IDS_SECURE_VERBOSE_STATE);
}
if (parameter ==
OmniboxFieldTrial::kSimplifyHttpsIndicatorParameterBothToLock) {
return base::string16();
}
}
if (security_level == security_state::SECURE) {
if (parameter !=
OmniboxFieldTrial::kSimplifyHttpsIndicatorParameterKeepSecureChip) {
return base::string16();
}
}
return GetSecureText();
} }
base::string16 LocationBarModelImpl::GetSecureAccessibilityText() const { base::string16 LocationBarModelImpl::GetSecureAccessibilityText() const {
if (IsOfflinePage()) auto labels = GetSecureChipText();
return l10n_util::GetStringUTF16(IDS_OFFLINE_VERBOSE_STATE); return labels.display_text_.empty() ? labels.accessibility_label_
: labels.display_text_;
return GetSecureText();
} }
bool LocationBarModelImpl::ShouldDisplayURL() const { bool LocationBarModelImpl::ShouldDisplayURL() const {
......
...@@ -35,15 +35,27 @@ class LocationBarModelImpl : public LocationBarModel { ...@@ -35,15 +35,27 @@ class LocationBarModelImpl : public LocationBarModel {
bool ignore_editing) const override; bool ignore_editing) const override;
bool IsSecurityInfoInitialized() const override; bool IsSecurityInfoInitialized() const override;
const gfx::VectorIcon& GetVectorIcon() const override; const gfx::VectorIcon& GetVectorIcon() const override;
base::string16 GetSecureVerboseText() const override; base::string16 GetSecureDisplayText() const override;
base::string16 GetSecureAccessibilityText() const override; base::string16 GetSecureAccessibilityText() const override;
base::string16 GetEVCertName() const override; base::string16 GetEVCertName() const override;
bool ShouldDisplayURL() const override; bool ShouldDisplayURL() const override;
bool IsOfflinePage() const override; bool IsOfflinePage() const override;
private: private:
// Get the security text describing the current security state. struct SecureChipText {
base::string16 GetSecureText() const; base::string16 display_text_;
base::string16 accessibility_label_;
SecureChipText(base::string16 display_text,
base::string16 accessibility_label)
: display_text_(display_text),
accessibility_label_(accessibility_label) {}
SecureChipText(base::string16 display_text)
: display_text_(display_text), accessibility_label_(display_text) {}
};
// Get the security chip labels for the current security state.
SecureChipText GetSecureChipText() const;
base::string16 GetFormattedURL( base::string16 GetFormattedURL(
url_formatter::FormatUrlTypes format_types) const; url_formatter::FormatUrlTypes format_types) const;
......
...@@ -51,7 +51,7 @@ const gfx::VectorIcon& TestLocationBarModel::GetVectorIcon() const { ...@@ -51,7 +51,7 @@ const gfx::VectorIcon& TestLocationBarModel::GetVectorIcon() const {
return *icon_; return *icon_;
} }
base::string16 TestLocationBarModel::GetSecureVerboseText() const { base::string16 TestLocationBarModel::GetSecureDisplayText() const {
return base::string16(); return base::string16();
} }
......
...@@ -31,7 +31,7 @@ class TestLocationBarModel : public LocationBarModel { ...@@ -31,7 +31,7 @@ class TestLocationBarModel : public LocationBarModel {
bool ignore_editing) const override; bool ignore_editing) const override;
bool IsSecurityInfoInitialized() const override; bool IsSecurityInfoInitialized() const override;
const gfx::VectorIcon& GetVectorIcon() const override; const gfx::VectorIcon& GetVectorIcon() const override;
base::string16 GetSecureVerboseText() const override; base::string16 GetSecureDisplayText() const override;
base::string16 GetSecureAccessibilityText() const override; base::string16 GetSecureAccessibilityText() const override;
base::string16 GetEVCertName() const override; base::string16 GetEVCertName() const override;
bool ShouldDisplayURL() const override; bool ShouldDisplayURL() const override;
......
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