| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/page_info/page_info_popup_view.h" | 5 #include "chrome/browser/ui/views/page_info/page_info_popup_view.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <vector> | 10 #include <utility> |
| 11 | 11 |
| 12 #include "base/command_line.h" |
| 12 #include "base/i18n/rtl.h" | 13 #include "base/i18n/rtl.h" |
| 13 #include "base/macros.h" | 14 #include "base/macros.h" |
| 14 #include "base/memory/ptr_util.h" | 15 #include "base/memory/ptr_util.h" |
| 15 #include "base/strings/string16.h" | 16 #include "base/strings/string16.h" |
| 16 #include "base/strings/string_util.h" | 17 #include "base/strings/string_util.h" |
| 17 #include "base/strings/utf_string_conversions.h" | 18 #include "base/strings/utf_string_conversions.h" |
| 18 #include "chrome/browser/certificate_viewer.h" | 19 #include "chrome/browser/certificate_viewer.h" |
| 19 #include "chrome/browser/infobars/infobar_service.h" | 20 #include "chrome/browser/infobars/infobar_service.h" |
| 20 #include "chrome/browser/profiles/profile.h" | 21 #include "chrome/browser/profiles/profile.h" |
| 21 #include "chrome/browser/ui/browser.h" | 22 #include "chrome/browser/ui/browser.h" |
| 22 #include "chrome/browser/ui/browser_dialogs.h" | 23 #include "chrome/browser/ui/browser_dialogs.h" |
| 23 #include "chrome/browser/ui/layout_constants.h" | 24 #include "chrome/browser/ui/layout_constants.h" |
| 24 #include "chrome/browser/ui/page_info/page_info.h" | 25 #include "chrome/browser/ui/page_info/page_info.h" |
| 25 #include "chrome/browser/ui/views/collected_cookies_views.h" | 26 #include "chrome/browser/ui/views/collected_cookies_views.h" |
| 26 #include "chrome/browser/ui/views/harmony/chrome_typography.h" | 27 #include "chrome/browser/ui/views/harmony/chrome_typography.h" |
| 27 #include "chrome/browser/ui/views/harmony/layout_delegate.h" | 28 #include "chrome/browser/ui/views/harmony/layout_delegate.h" |
| 28 #include "chrome/browser/ui/views/page_info/chosen_object_row.h" | 29 #include "chrome/browser/ui/views/page_info/chosen_object_row.h" |
| 29 #include "chrome/browser/ui/views/page_info/non_accessible_image_view.h" | 30 #include "chrome/browser/ui/views/page_info/non_accessible_image_view.h" |
| 30 #include "chrome/browser/ui/views/page_info/permission_selector_row.h" | 31 #include "chrome/browser/ui/views/page_info/permission_selector_row.h" |
| 32 #include "chrome/common/chrome_switches.h" |
| 31 #include "chrome/common/url_constants.h" | 33 #include "chrome/common/url_constants.h" |
| 32 #include "chrome/grit/chromium_strings.h" | 34 #include "chrome/grit/chromium_strings.h" |
| 33 #include "chrome/grit/generated_resources.h" | 35 #include "chrome/grit/generated_resources.h" |
| 34 #include "chrome/grit/theme_resources.h" | 36 #include "chrome/grit/theme_resources.h" |
| 35 #include "components/content_settings/core/common/content_settings_types.h" | 37 #include "components/content_settings/core/common/content_settings_types.h" |
| 36 #include "components/strings/grit/components_chromium_strings.h" | 38 #include "components/strings/grit/components_chromium_strings.h" |
| 37 #include "components/strings/grit/components_strings.h" | 39 #include "components/strings/grit/components_strings.h" |
| 38 #include "content/public/browser/browser_thread.h" | 40 #include "content/public/browser/browser_thread.h" |
| 39 #include "extensions/common/constants.h" | 41 #include "extensions/common/constants.h" |
| 40 #include "ui/base/l10n/l10n_util.h" | 42 #include "ui/base/l10n/l10n_util.h" |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 | 82 |
| 81 // Margin and padding values for the |PopupHeaderView|. | 83 // Margin and padding values for the |PopupHeaderView|. |
| 82 const int kHeaderMarginBottom = 10; | 84 const int kHeaderMarginBottom = 10; |
| 83 const int kHeaderPaddingBottom = 13; | 85 const int kHeaderPaddingBottom = 13; |
| 84 | 86 |
| 85 // Spacing between labels in the header. | 87 // Spacing between labels in the header. |
| 86 const int kHeaderLabelSpacing = 4; | 88 const int kHeaderLabelSpacing = 4; |
| 87 | 89 |
| 88 // Site Settings Section ------------------------------------------------------- | 90 // Site Settings Section ------------------------------------------------------- |
| 89 | 91 |
| 90 // Spacing above and below the cookies view. | 92 // Spacing above and below the cookies and certificate views. |
| 91 const int kCookiesViewVerticalPadding = 6; | 93 const int kSubViewsVerticalPadding = 6; |
| 92 | 94 |
| 93 // Spacing between a permission image and the text. | 95 // Spacing between a permission image and the text. |
| 94 const int kPermissionImageSpacing = 6; | 96 const int kPermissionImageSpacing = 6; |
| 95 | 97 |
| 96 // Spacing between rows in the site settings section | 98 // Spacing between rows in the site settings section |
| 97 const int kPermissionsVerticalSpacing = 12; | 99 const int kPermissionsVerticalSpacing = 12; |
| 98 | 100 |
| 99 // Spacing between the label and the menu. | 101 // Spacing between the label and the menu. |
| 100 const int kPermissionMenuSpacing = 16; | 102 const int kPermissionMenuSpacing = 16; |
| 101 | 103 |
| 102 // Button/styled label/link IDs ------------------------------------------------ | 104 // Button/styled label/link IDs ------------------------------------------------ |
| 103 const int BUTTON_CLOSE = 1337; | 105 const int BUTTON_CLOSE = 1337; |
| 104 const int STYLED_LABEL_SECURITY_DETAILS = 1338; | 106 const int STYLED_LABEL_SECURITY_DETAILS = 1338; |
| 105 const int STYLED_LABEL_RESET_CERTIFICATE_DECISIONS = 1339; | 107 const int STYLED_LABEL_RESET_CERTIFICATE_DECISIONS = 1339; |
| 106 const int LINK_COOKIE_DIALOG = 1340; | 108 const int LINK_COOKIE_DIALOG = 1340; |
| 107 const int LINK_SITE_SETTINGS = 1341; | 109 const int LINK_SITE_SETTINGS = 1341; |
| 110 const int LINK_CERTIFICATE_VIEWER = 1342; |
| 108 | 111 |
| 109 // The default, ui::kTitleFontSizeDelta, is too large for the page info | 112 // The default, ui::kTitleFontSizeDelta, is too large for the page info |
| 110 // bubble (e.g. +3). Use +1 to obtain a smaller font. | 113 // bubble (e.g. +3). Use +1 to obtain a smaller font. |
| 111 constexpr int kSummaryFontSizeDelta = 1; | 114 constexpr int kSummaryFontSizeDelta = 1; |
| 112 | 115 |
| 113 // Adds a ColumnSet on |layout| with a single View column and padding columns | 116 // Adds a ColumnSet on |layout| with a single View column and padding columns |
| 114 // on either side of it with |margin| width. | 117 // on either side of it with |margin| width. |
| 115 void AddColumnWithSideMargin(views::GridLayout* layout, int margin, int id) { | 118 void AddColumnWithSideMargin(views::GridLayout* layout, int margin, int id) { |
| 116 views::ColumnSet* column_set = layout->AddColumnSet(id); | 119 views::ColumnSet* column_set = layout->AddColumnSet(id); |
| 117 column_set->AddPaddingColumn(0, margin); | 120 column_set->AddPaddingColumn(0, margin); |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 380 Profile* profile, | 383 Profile* profile, |
| 381 content::WebContents* web_contents, | 384 content::WebContents* web_contents, |
| 382 const GURL& url, | 385 const GURL& url, |
| 383 const security_state::SecurityInfo& security_info) | 386 const security_state::SecurityInfo& security_info) |
| 384 : content::WebContentsObserver(web_contents), | 387 : content::WebContentsObserver(web_contents), |
| 385 BubbleDialogDelegateView(anchor_view, views::BubbleBorder::TOP_LEFT), | 388 BubbleDialogDelegateView(anchor_view, views::BubbleBorder::TOP_LEFT), |
| 386 profile_(profile), | 389 profile_(profile), |
| 387 header_(nullptr), | 390 header_(nullptr), |
| 388 separator_(nullptr), | 391 separator_(nullptr), |
| 389 site_settings_view_(nullptr), | 392 site_settings_view_(nullptr), |
| 393 certificate_view_(nullptr), |
| 394 certificate_viewer_link_(nullptr), |
| 390 cookies_view_(nullptr), | 395 cookies_view_(nullptr), |
| 391 cookie_dialog_link_(nullptr), | 396 cookie_dialog_link_(nullptr), |
| 392 permissions_view_(nullptr), | 397 permissions_view_(nullptr), |
| 393 weak_factory_(this) { | 398 weak_factory_(this) { |
| 394 g_shown_popup_type = POPUP_PAGE_INFO; | 399 g_shown_popup_type = POPUP_PAGE_INFO; |
| 395 set_parent_window(parent_window); | 400 set_parent_window(parent_window); |
| 396 | 401 |
| 397 // Compensate for built-in vertical padding in the anchor view's image. | 402 // Compensate for built-in vertical padding in the anchor view's image. |
| 398 set_anchor_view_insets(gfx::Insets( | 403 set_anchor_view_insets(gfx::Insets( |
| 399 GetLayoutConstant(LOCATION_BAR_BUBBLE_ANCHOR_VERTICAL_INSET), 0)); | 404 GetLayoutConstant(LOCATION_BAR_BUBBLE_ANCHOR_VERTICAL_INSET), 0)); |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 555 | 560 |
| 556 const int cookies_view_column = 0; | 561 const int cookies_view_column = 0; |
| 557 views::ColumnSet* column_set = layout->AddColumnSet(cookies_view_column); | 562 views::ColumnSet* column_set = layout->AddColumnSet(cookies_view_column); |
| 558 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 0, | 563 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 0, |
| 559 views::GridLayout::FIXED, kPermissionIconColumnWidth, | 564 views::GridLayout::FIXED, kPermissionIconColumnWidth, |
| 560 0); | 565 0); |
| 561 column_set->AddPaddingColumn(0, kPermissionImageSpacing); | 566 column_set->AddPaddingColumn(0, kPermissionImageSpacing); |
| 562 column_set->AddColumn(views::GridLayout::LEADING, views::GridLayout::FILL, | 567 column_set->AddColumn(views::GridLayout::LEADING, views::GridLayout::FILL, |
| 563 0, views::GridLayout::USE_PREF, 0, 0); | 568 0, views::GridLayout::USE_PREF, 0, 0); |
| 564 | 569 |
| 565 layout->AddPaddingRow(0, kCookiesViewVerticalPadding); | 570 layout->AddPaddingRow(0, kSubViewsVerticalPadding); |
| 566 | 571 |
| 567 layout->StartRow(1, cookies_view_column); | 572 layout->StartRow(1, cookies_view_column); |
| 568 PageInfoUI::PermissionInfo info; | 573 PageInfoUI::PermissionInfo info; |
| 569 info.type = CONTENT_SETTINGS_TYPE_COOKIES; | 574 info.type = CONTENT_SETTINGS_TYPE_COOKIES; |
| 570 info.setting = CONTENT_SETTING_ALLOW; | 575 info.setting = CONTENT_SETTING_ALLOW; |
| 571 info.is_incognito = | 576 info.is_incognito = |
| 572 Profile::FromBrowserContext(web_contents()->GetBrowserContext()) | 577 Profile::FromBrowserContext(web_contents()->GetBrowserContext()) |
| 573 ->IsOffTheRecord(); | 578 ->IsOffTheRecord(); |
| 574 views::ImageView* icon = new NonAccessibleImageView(); | 579 views::ImageView* icon = new NonAccessibleImageView(); |
| 575 const gfx::Image& image = PageInfoUI::GetPermissionIcon(info); | 580 const gfx::Image& image = PageInfoUI::GetPermissionIcon(info); |
| 576 icon->SetImage(image.ToImageSkia()); | 581 icon->SetImage(image.ToImageSkia()); |
| 577 layout->AddView( | 582 layout->AddView( |
| 578 icon, 1, 2, views::GridLayout::FILL, | 583 icon, 1, 2, views::GridLayout::FILL, |
| 579 // TODO: The vertical alignment may change to CENTER once Harmony is | 584 // TODO(lgarron): The vertical alignment may change to CENTER once |
| 580 // implemented. See https://crbug.com/512442#c48 | 585 // Harmony is implemented. See https://crbug.com/512442#c48 |
| 581 views::GridLayout::LEADING); | 586 views::GridLayout::LEADING); |
| 582 | 587 |
| 583 views::Label* cookies_label = new views::Label( | 588 views::Label* cookies_label = new views::Label( |
| 584 l10n_util::GetStringUTF16(IDS_PAGE_INFO_TITLE_SITE_DATA), | 589 l10n_util::GetStringUTF16(IDS_PAGE_INFO_TITLE_SITE_DATA), |
| 585 CONTEXT_BODY_TEXT_LARGE); | 590 CONTEXT_BODY_TEXT_LARGE); |
| 586 layout->AddView(cookies_label); | 591 layout->AddView(cookies_label); |
| 587 layout->StartRow(1, cookies_view_column); | 592 layout->StartRow(1, cookies_view_column); |
| 588 layout->SkipColumns(1); | 593 layout->SkipColumns(1); |
| 589 | 594 |
| 590 layout->AddView(cookie_dialog_link_); | 595 layout->AddView(cookie_dialog_link_); |
| 591 | 596 |
| 592 layout->AddPaddingRow(0, kCookiesViewVerticalPadding); | 597 layout->AddPaddingRow(0, kSubViewsVerticalPadding); |
| 593 } | 598 } |
| 594 | 599 |
| 595 layout->Layout(cookies_view_); | 600 layout->Layout(cookies_view_); |
| 596 SizeToContents(); | 601 SizeToContents(); |
| 597 } | 602 } |
| 598 | 603 |
| 599 void PageInfoPopupView::SetPermissionInfo( | 604 void PageInfoPopupView::SetPermissionInfo( |
| 600 const PermissionInfoList& permission_info_list, | 605 const PermissionInfoList& permission_info_list, |
| 601 ChosenObjectInfoList chosen_object_info_list) { | 606 ChosenObjectInfoList chosen_object_info_list) { |
| 602 // When a permission is changed, PageInfo::OnSitePermissionChanged() | 607 // When a permission is changed, PageInfo::OnSitePermissionChanged() |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 674 identity_info.GetSecurityDescription(); | 679 identity_info.GetSecurityDescription(); |
| 675 | 680 |
| 676 summary_text_ = security_description->summary; | 681 summary_text_ = security_description->summary; |
| 677 GetWidget()->UpdateWindowTitle(); | 682 GetWidget()->UpdateWindowTitle(); |
| 678 | 683 |
| 679 if (identity_info.certificate) { | 684 if (identity_info.certificate) { |
| 680 certificate_ = identity_info.certificate; | 685 certificate_ = identity_info.certificate; |
| 681 | 686 |
| 682 if (identity_info.show_ssl_decision_revoke_button) | 687 if (identity_info.show_ssl_decision_revoke_button) |
| 683 header_->AddResetDecisionsLabel(); | 688 header_->AddResetDecisionsLabel(); |
| 689 |
| 690 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 691 switches::kShowCertButton)) { |
| 692 certificate_view_ = new views::View(); |
| 693 views::GridLayout* layout = static_cast<views::GridLayout*>( |
| 694 certificate_view_->GetLayoutManager()); |
| 695 if (!layout) { |
| 696 layout = new views::GridLayout(certificate_view_); |
| 697 certificate_view_->SetLayoutManager(layout); |
| 698 |
| 699 const int certificate_view_column = 0; |
| 700 views::ColumnSet* column_set = |
| 701 layout->AddColumnSet(certificate_view_column); |
| 702 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, |
| 703 0, views::GridLayout::FIXED, |
| 704 kPermissionIconColumnWidth, 0); |
| 705 column_set->AddPaddingColumn(0, kPermissionImageSpacing); |
| 706 column_set->AddColumn(views::GridLayout::LEADING, |
| 707 views::GridLayout::FILL, 0, |
| 708 views::GridLayout::USE_PREF, 0, 0); |
| 709 |
| 710 layout->AddPaddingRow(0, kSubViewsVerticalPadding); |
| 711 |
| 712 layout->StartRow(1, certificate_view_column); |
| 713 |
| 714 views::ImageView* icon = new NonAccessibleImageView(); |
| 715 const gfx::Image& image = PageInfoUI::GetCertificateIcon(); |
| 716 icon->SetImage(image.ToImageSkia()); |
| 717 layout->AddView( |
| 718 icon, 1, 2, views::GridLayout::FILL, |
| 719 // TODO(lgarron): The vertical alignment may change to CENTER once |
| 720 // Harmony is implemented. See https://crbug.com/512442#c48 |
| 721 views::GridLayout::LEADING); |
| 722 |
| 723 views::Label* certificate_label = new views::Label( |
| 724 l10n_util::GetStringUTF16(IDS_PAGE_INFO_CERTIFICATE), |
| 725 CONTEXT_BODY_TEXT_LARGE); |
| 726 layout->AddView(certificate_label); |
| 727 layout->StartRow(1, certificate_view_column); |
| 728 layout->SkipColumns(1); |
| 729 |
| 730 // The text of link to the Certificate Viewer varies depending on the |
| 731 // validity of the Certificate. |
| 732 certificate_viewer_link_ = new views::Link(l10n_util::GetStringUTF16( |
| 733 (identity_info.identity_status == |
| 734 PageInfo::SITE_IDENTITY_STATUS_ERROR) |
| 735 ? IDS_PAGE_INFO_CERTIFICATE_INVALID_LINK |
| 736 : IDS_PAGE_INFO_CERTIFICATE_VALID_LINK)); |
| 737 certificate_viewer_link_->set_id(LINK_CERTIFICATE_VIEWER); |
| 738 certificate_viewer_link_->set_listener(this); |
| 739 |
| 740 layout->AddView(certificate_viewer_link_); |
| 741 } |
| 742 |
| 743 layout->Layout(certificate_view_); |
| 744 site_settings_view_->AddChildViewAt(certificate_view_, 0); |
| 745 } |
| 684 } | 746 } |
| 685 | 747 |
| 686 header_->SetDetails(security_description->details); | 748 header_->SetDetails(security_description->details); |
| 687 | 749 |
| 688 Layout(); | 750 Layout(); |
| 689 SizeToContents(); | 751 SizeToContents(); |
| 690 } | 752 } |
| 691 | 753 |
| 692 views::View* PageInfoPopupView::CreateSiteSettingsView(int side_margin) { | 754 views::View* PageInfoPopupView::CreateSiteSettingsView(int side_margin) { |
| 693 views::View* site_settings_view = new views::View(); | 755 views::View* site_settings_view = new views::View(); |
| 694 views::BoxLayout* box_layout = | 756 views::BoxLayout* box_layout = |
| 695 new views::BoxLayout(views::BoxLayout::kVertical, side_margin, 0, 0); | 757 new views::BoxLayout(views::BoxLayout::kVertical, side_margin, 0, 0); |
| 696 site_settings_view->SetLayoutManager(box_layout); | 758 site_settings_view->SetLayoutManager(box_layout); |
| 697 box_layout->set_cross_axis_alignment( | 759 box_layout->set_cross_axis_alignment( |
| 698 views::BoxLayout::CROSS_AXIS_ALIGNMENT_STRETCH); | 760 views::BoxLayout::CROSS_AXIS_ALIGNMENT_STRETCH); |
| 699 | 761 |
| 700 // Add cookies view. | 762 // Add cookies view. |
| 701 cookies_view_ = new views::View(); | 763 cookies_view_ = new views::View(); |
| 702 site_settings_view->AddChildView(cookies_view_); | 764 site_settings_view->AddChildView(cookies_view_); |
| 703 | 765 |
| 704 return site_settings_view; | 766 return site_settings_view; |
| 705 } | 767 } |
| 706 | 768 |
| 707 void PageInfoPopupView::HandleLinkClickedAsync(views::Link* source) { | 769 void PageInfoPopupView::HandleLinkClickedAsync(views::Link* source) { |
| 708 // Both switch cases require accessing web_contents(), so we check it here. | 770 // All switch cases require accessing web_contents(), so we check it here. |
| 709 if (web_contents() == nullptr || web_contents()->IsBeingDestroyed()) | 771 if (web_contents() == nullptr || web_contents()->IsBeingDestroyed()) |
| 710 return; | 772 return; |
| 711 switch (source->id()) { | 773 switch (source->id()) { |
| 712 case LINK_SITE_SETTINGS: | 774 case LINK_SITE_SETTINGS: |
| 713 // TODO(crbug.com/655876): This opens the general Content Settings pane, | 775 // TODO(crbug.com/655876): This opens the general Content Settings pane, |
| 714 // which is OK for now. But on Android, it opens a page specific to a | 776 // which is OK for now. But on Android, it opens a page specific to a |
| 715 // given origin that shows all of the settings for that origin. If/when | 777 // given origin that shows all of the settings for that origin. If/when |
| 716 // that's available on desktop we should link to that here, too. | 778 // that's available on desktop we should link to that here, too. |
| 717 web_contents()->OpenURL(content::OpenURLParams( | 779 web_contents()->OpenURL(content::OpenURLParams( |
| 718 GURL(chrome::kChromeUIContentSettingsURL), content::Referrer(), | 780 GURL(chrome::kChromeUIContentSettingsURL), content::Referrer(), |
| 719 WindowOpenDisposition::NEW_FOREGROUND_TAB, ui::PAGE_TRANSITION_LINK, | 781 WindowOpenDisposition::NEW_FOREGROUND_TAB, ui::PAGE_TRANSITION_LINK, |
| 720 false)); | 782 false)); |
| 721 presenter_->RecordPageInfoAction( | 783 presenter_->RecordPageInfoAction( |
| 722 PageInfo::PAGE_INFO_SITE_SETTINGS_OPENED); | 784 PageInfo::PAGE_INFO_SITE_SETTINGS_OPENED); |
| 723 break; | 785 break; |
| 724 case LINK_COOKIE_DIALOG: | 786 case LINK_COOKIE_DIALOG: |
| 725 // Count how often the Collected Cookies dialog is opened. | 787 // Count how often the Collected Cookies dialog is opened. |
| 726 presenter_->RecordPageInfoAction( | 788 presenter_->RecordPageInfoAction( |
| 727 PageInfo::PAGE_INFO_COOKIES_DIALOG_OPENED); | 789 PageInfo::PAGE_INFO_COOKIES_DIALOG_OPENED); |
| 728 new CollectedCookiesViews(web_contents()); | 790 new CollectedCookiesViews(web_contents()); |
| 729 break; | 791 break; |
| 792 case LINK_CERTIFICATE_VIEWER: { |
| 793 gfx::NativeWindow top_window = web_contents()->GetTopLevelNativeWindow(); |
| 794 if (certificate_ && top_window) { |
| 795 presenter_->RecordPageInfoAction( |
| 796 PageInfo::PAGE_INFO_CERTIFICATE_DIALOG_OPENED); |
| 797 ShowCertificateViewer(web_contents(), top_window, certificate_.get()); |
| 798 } |
| 799 } break; |
| 730 default: | 800 default: |
| 731 NOTREACHED(); | 801 NOTREACHED(); |
| 732 } | 802 } |
| 733 } | 803 } |
| 734 | 804 |
| 735 void PageInfoPopupView::StyledLabelLinkClicked(views::StyledLabel* label, | 805 void PageInfoPopupView::StyledLabelLinkClicked(views::StyledLabel* label, |
| 736 const gfx::Range& range, | 806 const gfx::Range& range, |
| 737 int event_flags) { | 807 int event_flags) { |
| 738 switch (label->id()) { | 808 switch (label->id()) { |
| 739 case STYLED_LABEL_SECURITY_DETAILS: | 809 case STYLED_LABEL_SECURITY_DETAILS: |
| 740 web_contents()->OpenURL(content::OpenURLParams( | 810 web_contents()->OpenURL(content::OpenURLParams( |
| 741 GURL(chrome::kPageInfoHelpCenterURL), content::Referrer(), | 811 GURL(chrome::kPageInfoHelpCenterURL), content::Referrer(), |
| 742 WindowOpenDisposition::NEW_FOREGROUND_TAB, ui::PAGE_TRANSITION_LINK, | 812 WindowOpenDisposition::NEW_FOREGROUND_TAB, ui::PAGE_TRANSITION_LINK, |
| 743 false)); | 813 false)); |
| 744 presenter_->RecordPageInfoAction( | 814 presenter_->RecordPageInfoAction( |
| 745 PageInfo::PAGE_INFO_CONNECTION_HELP_OPENED); | 815 PageInfo::PAGE_INFO_CONNECTION_HELP_OPENED); |
| 746 break; | 816 break; |
| 747 case STYLED_LABEL_RESET_CERTIFICATE_DECISIONS: | 817 case STYLED_LABEL_RESET_CERTIFICATE_DECISIONS: |
| 748 presenter_->OnRevokeSSLErrorBypassButtonPressed(); | 818 presenter_->OnRevokeSSLErrorBypassButtonPressed(); |
| 749 GetWidget()->Close(); | 819 GetWidget()->Close(); |
| 750 break; | 820 break; |
| 751 default: | 821 default: |
| 752 NOTREACHED(); | 822 NOTREACHED(); |
| 753 } | 823 } |
| 754 } | 824 } |
| OLD | NEW |