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

Unified Diff: chrome/browser/ui/views/website_settings/website_settings_popup_view.cc

Issue 2278513003: Material Page Info (Views, 2/3): Update security section. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 3 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/website_settings/website_settings_popup_view.cc
diff --git a/chrome/browser/ui/views/website_settings/website_settings_popup_view.cc b/chrome/browser/ui/views/website_settings/website_settings_popup_view.cc
index bbe313e7e84cefc1816f03a140aea9a62f7266c1..2b04164af80f9c6aae6edb1c20655222570249b1 100644
--- a/chrome/browser/ui/views/website_settings/website_settings_popup_view.cc
+++ b/chrome/browser/ui/views/website_settings/website_settings_popup_view.cc
@@ -47,6 +47,7 @@
#include "ui/gfx/geometry/insets.h"
#include "ui/gfx/image/image.h"
#include "ui/resources/grit/ui_resources.h"
+#include "ui/views/border.h"
#include "ui/views/bubble/bubble_frame_view.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/controls/button/md_text_button.h"
@@ -78,22 +79,18 @@ const int kIconMarginLeft = 6;
const int kHeaderMarginBottom = 10;
const int kHeaderPaddingBottom = 16;
const int kHeaderPaddingLeft = 18;
-const int kHeaderPaddingRightForCloseButton = 8;
const int kHeaderPaddingRightForText = kHeaderPaddingLeft;
-const int kHeaderPaddingTop = 12;
+const int kHeaderPaddingTop = 16;
+const int kHeaderPaddingForCloseButton = 8;
-// Spacing between the site identity label and the site identity status text in
-// the popup header.
-const int kHeaderRowSpacing = 4;
+// Spacing between labels in the header.
+const int kHeaderLabelSpacing = 4;
// The max possible width of the popup.
const int kMaxPopupWidth = 1000;
// The margins between the popup border and the popup content.
-const int kPopupMarginTop = 4;
-const int kPopupMarginLeft = 0;
const int kPopupMarginBottom = 14;
-const int kPopupMarginRight = 0;
// Padding values for sections on the site settings view.
const int kSiteSettingsViewContentMinWidth = 300;
@@ -123,31 +120,33 @@ class PopupHeaderView : public views::View {
views::StyledLabelListener* styled_label_listener);
~PopupHeaderView() override;
- // Sets the name of the site's identity.
- void SetIdentityName(const base::string16& name);
+ // Sets the security summary for the current page.
+ void SetSummary(const base::string16& summary_text);
- // Sets the security summary text for the current page.
- void SetSecuritySummary(const base::string16& security_summary_text,
- bool include_details_link);
+ // Sets the security details for the current page.
+ void SetDetails(const base::string16& details_text,
+ bool include_details_link);
int GetPreferredNameWidth() const;
- void AddResetDecisionsButton();
+ void AddResetDecisionsLabel();
private:
- // The label that displays the name of the site's identity.
- views::Label* name_;
+ // The listener for the styled labels in this view.
+ views::StyledLabelListener* styled_label_listener_;
+
+ // The label that displays security summary for the current page.
+ views::Label* summary_label_;
+
// The label that displays the status of the identity check for this site.
// Includes a link to open the DevTools Security panel.
- views::StyledLabel* status_;
+ views::StyledLabel* details_label_;
- // The button listener attached to the buttons in this view.
- views::ButtonListener* button_listener_;
-
- // A container for the button for resetting cert decisions. The button is only
- // shown sometimes, so we use a container to keep track of where to place it
- // (if needed).
- views::View* reset_decisions_button_container_;
+ // A container for the styled label with a link for resetting cert decisions.
+ // This is only shown sometimes, so we use a container to keep track of
+ // where to place it (if needed).
+ views::View* reset_decisions_label_container_;
+ views::StyledLabel* reset_decisions_label_;
DISALLOW_COPY_AND_ASSIGN(PopupHeaderView);
};
@@ -168,7 +167,6 @@ class InternalPageInfoPopupView : public views::BubbleDialogDelegateView {
views::NonClientFrameView* CreateNonClientFrameView(
views::Widget* widget) override;
void OnWidgetDestroying(views::Widget* widget) override;
- int GetDialogButtons() const override;
private:
friend class WebsiteSettingsPopupView;
@@ -183,10 +181,11 @@ class InternalPageInfoPopupView : public views::BubbleDialogDelegateView {
PopupHeaderView::PopupHeaderView(
views::ButtonListener* button_listener,
views::StyledLabelListener* styled_label_listener)
- : name_(nullptr),
- status_(nullptr),
- button_listener_(button_listener),
- reset_decisions_button_container_(nullptr) {
+ : styled_label_listener_(styled_label_listener),
+ summary_label_(nullptr),
+ details_label_(nullptr),
+ reset_decisions_label_container_(nullptr),
+ reset_decisions_label_(nullptr) {
views::GridLayout* layout = new views::GridLayout(this);
SetLayoutManager(layout);
@@ -206,15 +205,21 @@ PopupHeaderView::PopupHeaderView(
views::GridLayout::USE_PREF,
0,
0);
- column_set->AddPaddingColumn(0, kHeaderPaddingRightForCloseButton);
+ column_set->AddPaddingColumn(0, kHeaderPaddingForCloseButton);
- layout->AddPaddingRow(0, kHeaderPaddingTop);
+ // First we add the padding needed for the close button.
+ // In order to move down the summary, we simulate additional padding by giving
+ // it an empty border on top later on.
+ layout->AddPaddingRow(0, kHeaderPaddingForCloseButton);
- layout->StartRow(0, label_column);
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
- name_ = new views::Label(
- base::string16(), rb.GetFontList(ui::ResourceBundle::BoldFont));
- layout->AddView(name_, 1, 1, views::GridLayout::LEADING,
+
+ layout->StartRow(0, label_column);
+ const gfx::FontList& font_list = rb.GetFontListWithDelta(1);
+ summary_label_ = new views::Label(base::string16(), font_list);
+ summary_label_->SetBorder(views::Border::CreateEmptyBorder(
+ kHeaderPaddingTop - kHeaderPaddingForCloseButton, 0, 0, 0));
+ layout->AddView(summary_label_, 1, 1, views::GridLayout::LEADING,
views::GridLayout::TRAILING);
views::ImageButton* close_button = new views::ImageButton(button_listener);
close_button->SetImage(views::CustomButton::STATE_NORMAL,
@@ -226,7 +231,7 @@ PopupHeaderView::PopupHeaderView(
layout->AddView(close_button, 1, 1, views::GridLayout::TRAILING,
views::GridLayout::LEADING);
- layout->AddPaddingRow(0, kHeaderRowSpacing);
+ layout->AddPaddingRow(0, kHeaderLabelSpacing);
const int label_column_status = 1;
views::ColumnSet* column_set_status =
@@ -236,19 +241,19 @@ PopupHeaderView::PopupHeaderView(
1, views::GridLayout::USE_PREF, 0, 0);
column_set_status->AddPaddingColumn(0, kHeaderPaddingRightForText);
+ layout->AddPaddingRow(0, kHeaderLabelSpacing);
+
layout->StartRow(0, label_column_status);
- status_ = new views::StyledLabel(base::string16(), styled_label_listener);
- layout->AddView(status_,
- 1,
- 1,
- views::GridLayout::LEADING,
+ details_label_ =
+ new views::StyledLabel(base::string16(), styled_label_listener);
+ layout->AddView(details_label_, 1, 1, views::GridLayout::LEADING,
views::GridLayout::LEADING);
layout->StartRow(0, label_column_status);
- reset_decisions_button_container_ = new views::View();
- reset_decisions_button_container_->SetLayoutManager(
+ reset_decisions_label_container_ = new views::View();
+ reset_decisions_label_container_->SetLayoutManager(
new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0));
- layout->AddView(reset_decisions_button_container_, 1, 1,
+ layout->AddView(reset_decisions_label_container_, 1, 1,
views::GridLayout::LEADING, views::GridLayout::LEADING);
layout->AddPaddingRow(1, kHeaderPaddingBottom);
@@ -257,29 +262,28 @@ PopupHeaderView::PopupHeaderView(
PopupHeaderView::~PopupHeaderView() {}
int PopupHeaderView::GetPreferredNameWidth() const {
- return name_->GetPreferredSize().width();
+ return summary_label_->GetPreferredSize().width();
}
-void PopupHeaderView::SetIdentityName(const base::string16& name) {
- name_->SetText(name);
+void PopupHeaderView::SetSummary(const base::string16& summary_text) {
+ summary_label_->SetText(summary_text);
}
-void PopupHeaderView::SetSecuritySummary(
- const base::string16& security_summary_text,
- bool include_details_link) {
- if (include_details_link) {
- base::string16 details_string =
+void PopupHeaderView::SetDetails(const base::string16& details_text,
+ bool include_details_label_link) {
+ if (include_details_label_link) {
+ base::string16 details_link_text =
l10n_util::GetStringUTF16(IDS_WEBSITE_SETTINGS_DETAILS_LINK);
std::vector<base::string16> subst;
- subst.push_back(security_summary_text);
- subst.push_back(details_string);
+ subst.push_back(details_text);
+ subst.push_back(details_link_text);
std::vector<size_t> offsets;
base::string16 text = base::ReplaceStringPlaceholders(
base::ASCIIToUTF16("$1 $2"), subst, &offsets);
- status_->SetText(text);
+ details_label_->SetText(text);
gfx::Range details_range(offsets[1], text.length());
views::StyledLabel::RangeStyleInfo link_style =
@@ -288,29 +292,42 @@ void PopupHeaderView::SetSecuritySummary(
link_style.font_style |= gfx::Font::FontStyle::UNDERLINE;
link_style.disable_line_wrapping = false;
- status_->AddStyleRange(details_range, link_style);
+ details_label_->AddStyleRange(details_range, link_style);
} else {
- status_->SetText(security_summary_text);
+ details_label_->SetText(details_text);
}
// Fit the styled label to occupy available width.
- status_->SizeToFit(0);
+ details_label_->SizeToFit(0);
}
-void PopupHeaderView::AddResetDecisionsButton() {
- // TODO(estade): this looks pretty crazy as an MD button because the button
- // text is very long. See crbug.com/512442
- views::LabelButton* reset_decisions_button =
- views::MdTextButton::CreateSecondaryUiButton(
- button_listener_,
- l10n_util::GetStringUTF16(
- IDS_PAGEINFO_RESET_INVALID_CERTIFICATE_DECISIONS_BUTTON));
- reset_decisions_button->set_id(BUTTON_RESET_CERTIFICATE_DECISIONS);
+void PopupHeaderView::AddResetDecisionsLabel() {
+ std::vector<base::string16> subst;
+ subst.push_back(
+ l10n_util::GetStringUTF16(IDS_PAGEINFO_INVALID_CERTIFICATE_DESCRIPTION));
+ subst.push_back(l10n_util::GetStringUTF16(
+ IDS_PAGEINFO_RESET_INVALID_CERTIFICATE_DECISIONS_BUTTON));
+
+ std::vector<size_t> offsets;
- reset_decisions_button_container_->AddChildView(reset_decisions_button);
+ base::string16 text = base::ReplaceStringPlaceholders(
+ base::ASCIIToUTF16("$1 $2"), subst, &offsets);
+ reset_decisions_label_ = new views::StyledLabel(text, styled_label_listener_);
+ gfx::Range link_range(offsets[1], text.length());
- // Now that it contains a button, the container needs padding at the top.
- reset_decisions_button_container_->SetBorder(
+ views::StyledLabel::RangeStyleInfo link_style =
+ views::StyledLabel::RangeStyleInfo::CreateForLink();
+ if (!ui::MaterialDesignController::IsSecondaryUiMaterial())
+ link_style.font_style |= gfx::Font::FontStyle::UNDERLINE;
+ link_style.disable_line_wrapping = false;
+
+ reset_decisions_label_->AddStyleRange(link_range, link_style);
+ // Fit the styled label to occupy available width.
+ reset_decisions_label_->SizeToFit(0);
+ reset_decisions_label_container_->AddChildView(reset_decisions_label_);
+
+ // Now that it contains a label, the container needs padding at the top.
+ reset_decisions_label_container_->SetBorder(
views::Border::CreateEmptyBorder(8, 0, 0, 0));
InvalidateLayout();
@@ -379,10 +396,6 @@ void InternalPageInfoPopupView::OnWidgetDestroying(views::Widget* widget) {
is_popup_showing = false;
}
-int InternalPageInfoPopupView::GetDialogButtons() const {
- return ui::DIALOG_BUTTON_NONE;
-}
-
////////////////////////////////////////////////////////////////////////////////
// WebsiteSettingsPopupView
////////////////////////////////////////////////////////////////////////////////
@@ -475,8 +488,8 @@ WebsiteSettingsPopupView::WebsiteSettingsPopupView(
site_settings_view_ = CreateSiteSettingsView();
layout->AddView(site_settings_view_);
- set_margins(gfx::Insets(kPopupMarginTop, kPopupMarginLeft,
- kPopupMarginBottom, kPopupMarginRight));
+ // Each section handles its own padding.
+ set_margins(gfx::Insets(0, 0, kPopupMarginBottom, 0));
views::BubbleDialogDelegateView::CreateBubble(this);
@@ -709,19 +722,21 @@ void WebsiteSettingsPopupView::SetPermissionInfo(
void WebsiteSettingsPopupView::SetIdentityInfo(
const IdentityInfo& identity_info) {
- base::string16 security_summary_text = identity_info.GetSecuritySummary();
- header_->SetIdentityName(base::UTF8ToUTF16(identity_info.site_identity));
+ std::unique_ptr<WebsiteSettingsUI::SecurityDescription> security_description =
+ identity_info.GetSecurityDescription();
+
+ header_->SetSummary(security_description->summary);
if (identity_info.certificate) {
certificate_ = identity_info.certificate;
if (identity_info.show_ssl_decision_revoke_button)
- header_->AddResetDecisionsButton();
+ header_->AddResetDecisionsLabel();
}
bool include_details_link = !is_devtools_disabled_ || certificate_;
- header_->SetSecuritySummary(security_summary_text, include_details_link);
+ header_->SetDetails(security_description->details, include_details_link);
Layout();
SizeToContents();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698