Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3719)

Unified Diff: chrome/browser/ui/views/location_bar/location_bar_view.cc

Issue 2144903004: New location security strings and animation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't animate if level is same Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/location_bar/location_bar_view.cc
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index 7ffa3e9e7d73a16df4e74ffa17c4b9c1c0b02f7e..99876e4df91ac45c6b698f0aff3b46e0e222b8a8 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -138,7 +138,9 @@ LocationBarView::LocationBarView(Browser* browser,
is_popup_mode_(is_popup_mode),
show_focus_rect_(false),
template_url_service_(NULL),
- web_contents_null_at_last_refresh_(true) {
+ web_contents_null_at_last_refresh_(true),
+ previous_security_level_(
+ security_state::SecurityStateModel::SecurityLevel::NONE) {
edit_bookmarks_enabled_.Init(
bookmarks::prefs::kEditBookmarksEnabled, profile->GetPrefs(),
base::Bind(&LocationBarView::UpdateWithoutTabRestore,
@@ -326,10 +328,10 @@ SkColor LocationBarView::GetColor(
case DEEMPHASIZED_TEXT:
return color_utils::AlphaBlend(GetColor(TEXT), GetColor(BACKGROUND), 128);
- case EV_BUBBLE_TEXT_AND_BORDER:
+ case SECURITY_CHIP_TEXT_AND_BORDER:
return ui::MaterialDesignController::IsModeMaterial()
? GetSecureTextColor(
- security_state::SecurityStateModel::EV_SECURE)
+ GetToolbarModel()->GetSecurityLevel(false))
: SkColorSetRGB(7, 149, 0);
}
NOTREACHED();
@@ -358,7 +360,7 @@ SkColor LocationBarView::GetSecureTextColor(
security_state::SecurityStateModel::SECURITY_ERROR) {
text_color = SkColorSetRGB(162, 0, 0);
} else {
- text_color = GetColor(EV_BUBBLE_TEXT_AND_BORDER);
+ text_color = GetColor(SECURITY_CHIP_TEXT_AND_BORDER);
}
}
return color_utils::GetReadableColor(text_color, GetColor(BACKGROUND));
@@ -532,11 +534,11 @@ gfx::Size LocationBarView::GetPreferredSize() const {
int leading_width = edge_thickness;
if (ShouldShowKeywordBubble()) {
// The selected keyword view can collapse completely.
- } else if (ShouldShowEVBubble()) {
- leading_width += GetLayoutConstant(LOCATION_BAR_BUBBLE_HORIZONTAL_PADDING) +
- location_icon_view_->GetMinimumSizeForLabelText(
- GetToolbarModel()->GetEVCertName())
- .width();
+ } else if (ShouldShowSecurityChip()) {
+ base::string16 security_text = GetSecurityText();
+ leading_width +=
+ GetLayoutConstant(LOCATION_BAR_BUBBLE_HORIZONTAL_PADDING) +
+ location_icon_view_->GetMinimumSizeForLabelText(security_text).width();
} else {
leading_width += padding + location_icon_view_->GetMinimumSize().width();
}
@@ -612,8 +614,8 @@ void LocationBarView::Layout() {
selected_keyword_view_->set_is_extension_icon(false);
}
}
- } else if (ShouldShowEVBubble()) {
- location_icon_view_->SetLabel(GetToolbarModel()->GetEVCertName());
+ } else if (ShouldShowSecurityChip()) {
+ location_icon_view_->SetLabel(GetSecurityText());
location_icon_view_->SetBackground(true);
// The largest fraction of the omnibox that can be taken by the EV bubble.
const double kMaxBubbleFraction = 0.5;
@@ -790,7 +792,7 @@ void LocationBarView::Update(const WebContents* contents) {
RefreshTranslateIcon();
RefreshSaveCreditCardIconView();
RefreshManagePasswordsIconView();
- content::WebContents* web_contents_for_sub_views =
+ WebContents* web_contents_for_sub_views =
GetToolbarModel()->input_in_progress() ? nullptr : GetWebContents();
open_pdf_in_reader_view_->Update(web_contents_for_sub_views);
@@ -802,6 +804,22 @@ void LocationBarView::Update(const WebContents* contents) {
else
omnibox_view_->Update();
+ if (ShouldShowSecurityChip()) {
+ security_state::SecurityStateModel::SecurityLevel level =
+ GetToolbarModel()->GetSecurityLevel(false);
+ if (level == security_state::SecurityStateModel::SecurityLevel::EV_SECURE)
+ level = security_state::SecurityStateModel::SecurityLevel::SECURE;
+ if (previous_security_level_ != level) {
+ previous_security_level_ = level;
+ location_icon_view_->AnimateSecurityChip();
+ } else if (!location_icon_view_->IsAnimatingSecurityChip()) {
+ location_icon_view_->ShowSecurityChip();
+ }
Peter Kasting 2016/08/20 01:16:43 I don't understand why this whole complicated bloc
Kevin Bailey 2016/08/22 15:58:56 Correct. I assumed that you saw this in: coderevi
Peter Kasting 2016/08/22 22:58:09 I left a similar comment there. THanks for pointi
Kevin Bailey 2016/08/23 15:17:13 When the user presses back arrow or forwards, cont
Peter Kasting 2016/08/23 18:01:57 Yes, because that's an update to the state of the
Kevin Bailey 2016/08/23 20:01:39 I'm not sure who "we" is, but LocationBarView::Upd
Peter Kasting 2016/08/23 20:11:00 You always tell the icon to animate (or snap, if t
Kevin Bailey 2016/08/23 20:39:25 The UI designers want it such that, if you go from
Peter Kasting 2016/08/23 20:42:20 I'm confused. That's what you should get with my
groby-ooo-7-16 2016/08/23 22:11:15 I think the confusion here stems from a previous c
Peter Kasting 2016/08/23 22:17:18 No. We don't need to track the previous level. I
groby-ooo-7-16 2016/08/23 23:12:40 Thank you for clarifying that! That does cover the
Peter Kasting 2016/08/23 23:19:15 OK, that contradicts Kevin's earlier comment. I w
+ } else {
+ previous_security_level_ = GetToolbarModel()->GetSecurityLevel(false);
+ location_icon_view_->HideSecurityChip();
+ }
+
OnChanged(); // NOTE: Calls Layout().
}
@@ -1038,6 +1056,11 @@ bool LocationBarView::HasValidSuggestText() const {
!suggested_text_view_->size().IsEmpty();
}
+base::string16 LocationBarView::GetSecurityText() const {
+ return ShouldShowEVBubble() ? GetToolbarModel()->GetEVCertName()
+ : GetToolbarModel()->GetSecureVerboseText();
+}
+
bool LocationBarView::ShouldShowKeywordBubble() const {
return !omnibox_view_->model()->keyword().empty() &&
!omnibox_view_->model()->is_keyword_hint();
@@ -1048,6 +1071,17 @@ bool LocationBarView::ShouldShowEVBubble() const {
security_state::SecurityStateModel::EV_SECURE);
}
+bool LocationBarView::ShouldShowSecurityChip() const {
+ if (ShouldShowKeywordBubble())
+ return false;
+ using security_state::SecurityStateModel;
+ SecurityStateModel::SecurityLevel level =
+ GetToolbarModel()->GetSecurityLevel(false);
+ return level == SecurityStateModel::SecurityLevel::SECURE ||
+ level == SecurityStateModel::SecurityLevel::EV_SECURE ||
+ level == SecurityStateModel::SecurityLevel::SECURITY_ERROR;
+}
+
////////////////////////////////////////////////////////////////////////////////
// LocationBarView, private LocationBar implementation:

Powered by Google App Engine
This is Rietveld 408576698