Chromium Code Reviews| Index: chrome/browser/ui/views/content_setting_bubble_contents.cc |
| diff --git a/chrome/browser/ui/views/content_setting_bubble_contents.cc b/chrome/browser/ui/views/content_setting_bubble_contents.cc |
| index 6d0ade5ffe0f0cbbf4fa4092130fd9b44a1151a0..7696839a67656ea4862a112a9e22bc9ca8804727 100644 |
| --- a/chrome/browser/ui/views/content_setting_bubble_contents.cc |
| +++ b/chrome/browser/ui/views/content_setting_bubble_contents.cc |
| @@ -171,7 +171,7 @@ ContentSettingBubbleContents::ContentSettingBubbleContents( |
| content_setting_bubble_model_(content_setting_bubble_model), |
| custom_link_(nullptr), |
| manage_link_(nullptr), |
| - manage_button_(nullptr), |
| + manage_checkbox_(nullptr), |
| learn_more_link_(nullptr) { |
| // Compensate for built-in vertical padding in the anchor view's image. |
| set_anchor_view_insets(gfx::Insets( |
| @@ -416,6 +416,15 @@ void ContentSettingBubbleContents::Init() { |
| bubble_content_empty = false; |
| } |
| + if (bubble_content.show_manage_text_as_checkbox) { |
| + manage_checkbox_ = |
| + new views::Checkbox(base::UTF8ToUTF16(bubble_content.manage_text)); |
|
msw
2017/04/06 00:44:56
aside: BubbleContent::manage_text should probably
Charlie Harrison
2017/04/06 02:04:58
Ack. Let's address this in a followup?
msw
2017/04/06 02:19:29
Acknowledged.
|
| + manage_checkbox_->set_listener(this); |
| + layout->AddPaddingRow(0, related_control_vertical_spacing); |
| + layout->StartRow(0, indented_kSingleColumnSetId); |
| + layout->AddView(manage_checkbox_); |
| + } |
| + |
| if (!bubble_content_empty) { |
| if (!layout_delegate->IsHarmonyMode()) { |
| layout->AddPaddingRow(0, related_control_vertical_spacing); |
| @@ -428,18 +437,15 @@ void ContentSettingBubbleContents::Init() { |
| } |
| views::View* ContentSettingBubbleContents::CreateExtraView() { |
| - if (content_setting_bubble_model_->bubble_content() |
| - .show_manage_text_as_button) { |
| - manage_button_ = views::MdTextButton::CreateSecondaryUiButton( |
| - this, base::UTF8ToUTF16( |
| - content_setting_bubble_model_->bubble_content().manage_text)); |
| - return manage_button_; |
| - } else { |
| - manage_link_ = new views::Link(base::UTF8ToUTF16( |
| - content_setting_bubble_model_->bubble_content().manage_text)); |
| - manage_link_->set_listener(this); |
| - return manage_link_; |
| - } |
| + const ContentSettingBubbleModel::BubbleContent& bubble_content = |
| + content_setting_bubble_model_->bubble_content(); |
| + // Added as part of the primary view. |
| + if (bubble_content.show_manage_text_as_checkbox) |
| + return nullptr; |
| + |
| + manage_link_ = new views::Link(base::UTF8ToUTF16(bubble_content.manage_text)); |
| + manage_link_->set_listener(this); |
| + return manage_link_; |
| } |
| bool ContentSettingBubbleContents::Accept() { |
| @@ -457,6 +463,10 @@ int ContentSettingBubbleContents::GetDialogButtons() const { |
| base::string16 ContentSettingBubbleContents::GetDialogButtonLabel( |
| ui::DialogButton button) const { |
| + const base::string16& done_text = |
| + content_setting_bubble_model_->bubble_content().done_button_text; |
| + if (!done_text.empty()) |
| + return done_text; |
| return l10n_util::GetStringUTF16(IDS_DONE); |
| } |
| @@ -472,9 +482,9 @@ void ContentSettingBubbleContents::DidFinishNavigation( |
| void ContentSettingBubbleContents::ButtonPressed(views::Button* sender, |
| const ui::Event& event) { |
| - if (manage_button_ == sender) { |
| - GetWidget()->Close(); |
| - content_setting_bubble_model_->OnManageLinkClicked(); |
| + if (manage_checkbox_ == sender) { |
| + content_setting_bubble_model_->OnManageCheckboxChecked( |
|
msw
2017/04/06 00:44:56
This could probably call GetDialogClientView()->Up
Charlie Harrison
2017/04/06 02:04:58
This solution works for me, thanks for the tip.
|
| + manage_checkbox_->checked()); |
| } else { |
| RadioGroup::const_iterator i( |
| std::find(radio_group_.begin(), radio_group_.end(), sender)); |