summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorfinnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-25 10:40:25 +0000
committerfinnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-25 10:40:25 +0000
commit34041bbb342fbd063e378e65482ac32647be3ca2 (patch)
treecbc7d6660d2778eaf9416d797fed427eb5c79a5a /chrome
parent2cb83c853036f789735e17b33d7bfb9805dbfa9f (diff)
downloadchromium_src-34041bbb342fbd063e378e65482ac32647be3ca2.zip
chromium_src-34041bbb342fbd063e378e65482ac32647be3ca2.tar.gz
chromium_src-34041bbb342fbd063e378e65482ac32647be3ca2.tar.bz2
Revert 57311 - Part 2 of the SSL InfoBubble.
- Added Certificate Information link. - Changed iconography to be: Identity : Green check mark vs. Red skull and bones Connection: Green padlock vs. Orange exclamation point. (This used to be Green checkmark and Orange Exclamation point for both sections. - Removed the icon for the First visit section. Need to see if we want an icon for when you haven't visited the site before. Mocks show no icons when you have visited before. BUG=52916 TEST=Open the SSL InfoBubble and notice the new iconography. Click the link and the Certificate dialog should show. Review URL: http://codereview.chromium.org/3136031 TBR=finnur@chromium.org Review URL: http://codereview.chromium.org/3170043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57314 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/app/theme/pageinfo_bad.pngbin1945 -> 1039 bytes
-rw-r--r--chrome/app/theme/pageinfo_good.pngbin1323 -> 1449 bytes
-rw-r--r--chrome/browser/page_info_model.cc17
-rw-r--r--chrome/browser/page_info_model.h24
-rw-r--r--chrome/browser/views/page_info_bubble_view.cc95
-rw-r--r--chrome/browser/views/page_info_bubble_view.h8
-rw-r--r--chrome/browser/views/page_info_window_view.cc2
7 files changed, 43 insertions, 103 deletions
diff --git a/chrome/app/theme/pageinfo_bad.png b/chrome/app/theme/pageinfo_bad.png
index 08ee500..f8be672 100644
--- a/chrome/app/theme/pageinfo_bad.png
+++ b/chrome/app/theme/pageinfo_bad.png
Binary files differ
diff --git a/chrome/app/theme/pageinfo_good.png b/chrome/app/theme/pageinfo_good.png
index dcdc611..9c8311e 100644
--- a/chrome/app/theme/pageinfo_good.png
+++ b/chrome/app/theme/pageinfo_good.png
Binary files differ
diff --git a/chrome/browser/page_info_model.cc b/chrome/browser/page_info_model.cc
index 3656862..229b002 100644
--- a/chrome/browser/page_info_model.cc
+++ b/chrome/browser/page_info_model.cc
@@ -99,8 +99,7 @@ PageInfoModel::PageInfoModel(Profile* profile,
state,
l10n_util::GetStringUTF16(IDS_PAGE_INFO_SECURITY_TAB_IDENTITY_TITLE),
head_line,
- description,
- SECTION_INFO_IDENTITY));
+ description));
// Connection section.
// We consider anything less than 80 bits encryption to be weak encryption.
@@ -140,9 +139,8 @@ PageInfoModel::PageInfoModel(Profile* profile,
if (ssl.security_bits() > 0 && cipher_suite) {
bool did_fallback = (ssl.connection_status() &
net::SSL_CONNECTION_SSL3_FALLBACK) != 0;
- bool no_renegotiation =
- (ssl.connection_status() &
- net::SSL_CONNECTION_NO_RENEGOTIATION_EXTENSION) != 0;
+ bool no_renegotiation = (ssl.connection_status() &
+ net::SSL_CONNECTION_NO_RENEGOTIATION_EXTENSION) != 0;
const char *key_exchange, *cipher, *mac;
net::SSLCipherSuiteToStrings(&key_exchange, &cipher, &mac, cipher_suite);
@@ -183,8 +181,7 @@ PageInfoModel::PageInfoModel(Profile* profile,
state,
l10n_util::GetStringUTF16(IDS_PAGE_INFO_SECURITY_TAB_CONNECTION_TITLE),
head_line,
- description,
- SECTION_INFO_CONNECTION));
+ description));
// Request the number of visits.
HistoryService* history = profile->GetHistoryService(
@@ -229,8 +226,7 @@ void PageInfoModel::OnGotVisitCountToHost(HistoryService::Handle handle,
IDS_PAGE_INFO_SECURITY_TAB_PERSONAL_HISTORY_TITLE),
string16(),
l10n_util::GetStringUTF16(
- IDS_PAGE_INFO_SECURITY_TAB_FIRST_VISITED_TODAY),
- SECTION_INFO_FIRST_VISIT));
+ IDS_PAGE_INFO_SECURITY_TAB_FIRST_VISITED_TODAY)));
} else {
sections_.push_back(SectionInfo(
true,
@@ -239,8 +235,7 @@ void PageInfoModel::OnGotVisitCountToHost(HistoryService::Handle handle,
string16(),
l10n_util::GetStringFUTF16(
IDS_PAGE_INFO_SECURITY_TAB_VISITED_BEFORE_TODAY,
- WideToUTF16(base::TimeFormatShortDate(first_visit))),
- SECTION_INFO_FIRST_VISIT));
+ WideToUTF16(base::TimeFormatShortDate(first_visit)))));
}
observer_->ModelChanged();
}
diff --git a/chrome/browser/page_info_model.h b/chrome/browser/page_info_model.h
index 60e3883..6bf0389 100644
--- a/chrome/browser/page_info_model.h
+++ b/chrome/browser/page_info_model.h
@@ -18,7 +18,7 @@ class PrefService;
class Profile;
// The model that provides the information that should be displayed in the page
-// info dialog/bubble.
+// info dialog.
class PageInfoModel {
public:
class PageInfoModelObserver {
@@ -29,23 +29,15 @@ class PageInfoModel {
virtual ~PageInfoModelObserver() {}
};
- enum SectionInfoType {
- SECTION_INFO_IDENTITY = 0,
- SECTION_INFO_CONNECTION,
- SECTION_INFO_FIRST_VISIT,
- };
-
struct SectionInfo {
SectionInfo(bool state,
const string16& title,
- const string16& headline,
- const string16& description,
- SectionInfoType type)
+ const string16& head_line,
+ const string16& description)
: state(state),
title(title),
- headline(headline),
- description(description),
- type(type) {
+ head_line(head_line),
+ description(description) {
}
bool state; // True if state is OK, false otherwise (ex of bad states:
@@ -55,14 +47,10 @@ class PageInfoModel {
string16 title;
// A single line describing the section, optional.
- string16 headline;
+ string16 head_line;
// The full description of what this section is.
string16 description;
-
- // The type of SectionInfo we are dealing with, for example: Identity,
- // Connection, First Visit.
- SectionInfoType type;
};
PageInfoModel(Profile* profile,
diff --git a/chrome/browser/views/page_info_bubble_view.cc b/chrome/browser/views/page_info_bubble_view.cc
index 291c254..26ab9eb 100644
--- a/chrome/browser/views/page_info_bubble_view.cc
+++ b/chrome/browser/views/page_info_bubble_view.cc
@@ -4,26 +4,20 @@
#include "chrome/browser/views/page_info_bubble_view.h"
-#include "app/l10n_util.h"
#include "app/resource_bundle.h"
#include "base/utf_string_conversions.h"
-#include "chrome/browser/certificate_viewer.h"
#include "chrome/browser/views/frame/browser_view.h"
#include "chrome/browser/views/info_bubble.h"
#include "chrome/browser/views/toolbar_view.h"
-#include "grit/generated_resources.h"
#include "grit/locale_settings.h"
#include "grit/theme_resources.h"
#include "views/controls/image_view.h"
#include "views/controls/label.h"
-#include "views/controls/link.h"
#include "views/controls/separator.h"
#include "views/grid_layout.h"
#include "views/widget/widget_win.h"
#include "views/window/window.h"
-namespace {
-
// Layout constants.
const int kHGapToBorder = 11;
const int kVGapToImage = 10;
@@ -36,29 +30,28 @@ const int kIconOffset = 28;
// A section contains an image that shows a status (good or bad), a title, an
// optional head-line (in bold) and a description.
-class Section : public views::View,
- public views::LinkController {
+class Section : public views::View {
public:
- Section(PageInfoBubbleView* owner,
- const PageInfoModel::SectionInfo& section_info);
+ Section(bool state,
+ const string16& headline,
+ const string16& description);
virtual ~Section();
- // views::View methods:
virtual int GetHeightForWidth(int w);
virtual void Layout();
- // views::LinkController methods:
- virtual void LinkActivated(views::Link* source, int event_flags);
-
private:
// Calculate the layout if |compute_bounds_only|, otherwise does Layout also.
gfx::Size LayoutItems(bool compute_bounds_only, int width);
- // The view that owns this Section object.
- PageInfoBubbleView* owner_;
+ // Whether to show the good/bad icon.
+ bool state_;
- // The information this view represents.
- PageInfoModel::SectionInfo info_;
+ // The first line of the description, show in bold.
+ string16 headline_;
+
+ // The description, displayed below the head line.
+ string16 description_;
static SkBitmap* good_state_icon_;
static SkBitmap* bad_state_icon_;
@@ -66,7 +59,6 @@ class Section : public views::View,
views::ImageView* status_image_;
views::Label* headline_label_;
views::Label* description_label_;
- views::Link* link_;
DISALLOW_COPY_AND_ASSIGN(Section);
};
@@ -75,19 +67,15 @@ class Section : public views::View,
SkBitmap* Section::good_state_icon_ = NULL;
SkBitmap* Section::bad_state_icon_ = NULL;
-} // namespace
-
////////////////////////////////////////////////////////////////////////////////
// PageInfoBubbleView
-PageInfoBubbleView::PageInfoBubbleView(gfx::NativeWindow parent_window,
- Profile* profile,
+PageInfoBubbleView::PageInfoBubbleView(Profile* profile,
const GURL& url,
const NavigationEntry::SSLStatus& ssl,
bool show_history)
: ALLOW_THIS_IN_INITIALIZER_LIST(model_(profile, url, ssl,
show_history, this)),
- parent_window_(parent_window),
cert_id_(ssl.cert_id()),
info_bubble_(NULL) {
LayoutSections();
@@ -96,10 +84,6 @@ PageInfoBubbleView::PageInfoBubbleView(gfx::NativeWindow parent_window,
PageInfoBubbleView::~PageInfoBubbleView() {
}
-void PageInfoBubbleView::ShowCertDialog() {
- ShowCertificateViewerByID(parent_window_, cert_id_);
-}
-
void PageInfoBubbleView::LayoutSections() {
// Remove all the existing sections.
RemoveAllChildViews(true);
@@ -120,7 +104,7 @@ void PageInfoBubbleView::LayoutSections() {
layout->StartRow(0, 0);
// TODO(finnur): Remove title from the info struct, since it is
// not used anymore.
- layout->AddView(new Section(this, info));
+ layout->AddView(new Section(info.state, info.head_line, info.description));
// Add separator after all sections except the last.
if (i < count - 1) {
@@ -140,7 +124,7 @@ gfx::Size PageInfoBubbleView::GetPreferredSize() {
int count = model_.GetSectionCount();
for (int i = 0; i < count; ++i) {
PageInfoModel::SectionInfo info = model_.GetSectionInfo(i);
- Section section(this, info);
+ Section section(info.state, info.head_line, info.description);
size.Enlarge(0, section.GetHeightForWidth(size.width()));
}
@@ -161,43 +145,35 @@ void PageInfoBubbleView::ModelChanged() {
////////////////////////////////////////////////////////////////////////////////
// Section
-Section::Section(PageInfoBubbleView* owner,
- const PageInfoModel::SectionInfo& section_info)
- : owner_(owner),
- info_(section_info) {
+Section::Section(bool state,
+ const string16& headline,
+ const string16& description)
+ : state_(state),
+ headline_(headline),
+ description_(description) {
if (!good_state_icon_) {
ResourceBundle& rb = ResourceBundle::GetSharedInstance();
good_state_icon_ = rb.GetBitmapNamed(IDR_PAGEINFO_GOOD);
bad_state_icon_ = rb.GetBitmapNamed(IDR_PAGEINFO_BAD);
}
- if (info_.type == PageInfoModel::SECTION_INFO_IDENTITY ||
- info_.type == PageInfoModel::SECTION_INFO_CONNECTION) {
- status_image_ = new views::ImageView();
- status_image_->SetImage(info_.state ? good_state_icon_ : bad_state_icon_);
- AddChildView(status_image_);
- }
+ status_image_ = new views::ImageView();
+ status_image_->SetImage(state ? good_state_icon_ : bad_state_icon_);
+ AddChildView(status_image_);
- headline_label_ = new views::Label(UTF16ToWideHack(info_.headline));
+ headline_label_ = new views::Label(UTF16ToWideHack(headline));
headline_label_->SetFont(
headline_label_->font().DeriveFont(0, gfx::Font::BOLD));
headline_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
AddChildView(headline_label_);
- description_label_ = new views::Label(UTF16ToWideHack(info_.description));
+ description_label_ = new views::Label(UTF16ToWideHack(description));
description_label_->SetMultiLine(true);
description_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
// Allow linebreaking in the middle of words if necessary, so that extremely
// long hostnames (longer than one line) will still be completely shown.
description_label_->SetAllowCharacterBreak(true);
AddChildView(description_label_);
-
- if (info_.type == PageInfoModel::SECTION_INFO_IDENTITY) {
- link_ = new views::Link(
- l10n_util::GetStringUTF16(IDS_PAGEINFO_CERT_INFO_BUTTON));
- link_->SetController(this);
- AddChildView(link_);
- }
}
Section::~Section() {
@@ -211,22 +187,14 @@ void Section::Layout() {
LayoutItems(false, width());
}
-void Section::LinkActivated(views::Link* source, int event_flags) {
- owner_->ShowCertDialog();
-}
-
gfx::Size Section::LayoutItems(bool compute_bounds_only, int width) {
int x = kHGapToBorder;
int y = kVGapToImage;
// Layout the image, head-line and description.
- gfx::Size size;
- if (info_.type == PageInfoModel::SECTION_INFO_IDENTITY ||
- info_.type == PageInfoModel::SECTION_INFO_CONNECTION) {
- size = status_image_->GetPreferredSize();
- if (!compute_bounds_only)
- status_image_->SetBounds(x, y, size.width(), size.height());
- }
+ gfx::Size size = status_image_->GetPreferredSize();
+ if (!compute_bounds_only)
+ status_image_->SetBounds(x, y, size.width(), size.height());
int image_height = y + size.height();
x += size.width() + kHGapImageToDescription;
int w = width - x - kTextPaddingRight;
@@ -249,11 +217,6 @@ gfx::Size Section::LayoutItems(bool compute_bounds_only, int width) {
if (!compute_bounds_only)
description_label_->SetBounds(x, y, 0, 0);
}
- if (info_.type == PageInfoModel::SECTION_INFO_IDENTITY) {
- size = link_->GetPreferredSize();
- link_->SetBounds(x, y, size.width(), size.height());
- y += size.height();
- }
// Make sure the image is not truncated if the text doesn't contain much.
y = std::max(y, image_height);
@@ -279,7 +242,7 @@ void ShowPageInfoBubble(gfx::NativeWindow parent,
// Show the bubble.
PageInfoBubbleView* page_info_bubble =
- new PageInfoBubbleView(parent, profile, url, ssl, show_history);
+ new PageInfoBubbleView(profile, url, ssl, show_history);
InfoBubble* info_bubble =
InfoBubble::Show(browser_view->GetWidget(), bounds,
BubbleBorder::TOP_LEFT,
diff --git a/chrome/browser/views/page_info_bubble_view.h b/chrome/browser/views/page_info_bubble_view.h
index 88aac05..ede280b 100644
--- a/chrome/browser/views/page_info_bubble_view.h
+++ b/chrome/browser/views/page_info_bubble_view.h
@@ -18,15 +18,12 @@ class PageInfoBubbleView : public views::View,
public PageInfoModel::PageInfoModelObserver,
public InfoBubbleDelegate {
public:
- PageInfoBubbleView(gfx::NativeWindow parent_window,
- Profile* profile,
+ PageInfoBubbleView(Profile* profile,
const GURL& url,
const NavigationEntry::SSLStatus& ssl,
bool show_history);
virtual ~PageInfoBubbleView();
- // Show the certificate dialog.
- void ShowCertDialog();
void set_info_bubble(InfoBubble* info_bubble) { info_bubble_ = info_bubble; }
@@ -47,9 +44,6 @@ class PageInfoBubbleView : public views::View,
// Layout the sections within the bubble.
void LayoutSections();
- // The parent window of the InfoBubble showing this view.
- gfx::NativeWindow parent_window_;
-
// The model providing the various section info.
PageInfoModel model_;
diff --git a/chrome/browser/views/page_info_window_view.cc b/chrome/browser/views/page_info_window_view.cc
index 2432a93..b962acf 100644
--- a/chrome/browser/views/page_info_window_view.cc
+++ b/chrome/browser/views/page_info_window_view.cc
@@ -217,7 +217,7 @@ void PageInfoWindowView::LayoutSections() {
for (int i = 0; i < model_.GetSectionCount(); ++i) {
PageInfoModel::SectionInfo info = model_.GetSectionInfo(i);
layout->StartRow(0, 0);
- layout->AddView(new Section(info.title, info.state, info.headline,
+ layout->AddView(new Section(info.title, info.state, info.head_line,
info.description));
layout->AddPaddingRow(0, kVerticalPadding);
}