Commit 01168f4a authored by Charlie Harrison's avatar Charlie Harrison Committed by Commit Bot

[Content Bubbles] Move radio group management into RadioGroup

Simple CL which moves more control of the radio group into the actual
RadioGroup struct rather than the owning class.

Also:
 - Removes unused |title| member
 - Constructs radio items using initializer lists.

Bug: None
Change-Id: I421e42f044a89bd1dd87bb11130d79b18aefe144
Reviewed-on: https://chromium-review.googlesource.com/c/1351504Reviewed-by: default avatarAvi Drissman <avi@chromium.org>
Commit-Queue: Charlie Harrison <csharrison@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611241}
parent 41cf53cb
......@@ -391,9 +391,8 @@ ContentSettingRPHBubbleModel::ContentSettingRPHBubbleModel(
RadioGroup radio_group;
radio_group.url = url;
radio_group.radio_items.push_back(radio_allow_label);
radio_group.radio_items.push_back(radio_deny_label);
radio_group.radio_items.push_back(radio_ignore_label);
radio_group.radio_items = {radio_allow_label, radio_deny_label,
radio_ignore_label};
ContentSetting setting = content_settings->pending_protocol_handler_setting();
if (setting == CONTENT_SETTING_ALLOW)
radio_group.default_item = RPH_ALLOW;
......@@ -402,7 +401,7 @@ ContentSettingRPHBubbleModel::ContentSettingRPHBubbleModel(
else
radio_group.default_item = RPH_IGNORE;
set_radio_group_enabled(true);
radio_group.user_managed = true;
set_radio_group(radio_group);
}
......@@ -827,11 +826,10 @@ void ContentSettingSingleRadioGroup::SetRadioGroup() {
kBlockedBlockIDs, arraysize(kBlockedBlockIDs), content_type()));
}
radio_group.radio_items.push_back(radio_allow_label);
radio_group.radio_items.push_back(radio_block_label);
radio_group.radio_items = {radio_allow_label, radio_block_label};
ContentSetting setting;
bool managed_by_user =
radio_group.user_managed =
GetSettingManagedByUser(url, content_type(), GetProfile(), &setting);
if (setting == CONTENT_SETTING_ALLOW) {
radio_group.default_item = kAllowButtonIndex;
......@@ -840,7 +838,6 @@ void ContentSettingSingleRadioGroup::SetRadioGroup() {
radio_group.default_item = 1;
block_setting_ = setting;
}
set_radio_group_enabled(managed_by_user);
set_radio_group(radio_group);
}
......@@ -1171,11 +1168,10 @@ void ContentSettingMediaStreamBubbleModel::SetRadioGroup() {
CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA))
? 1
: 0;
radio_group.radio_items.push_back(radio_allow_label);
radio_group.radio_items.push_back(radio_block_label);
radio_group.radio_items = {radio_allow_label, radio_block_label};
radio_group.user_managed = true;
set_radio_group(radio_group);
set_radio_group_enabled(true);
}
void ContentSettingMediaStreamBubbleModel::UpdateSettings(
......@@ -1413,26 +1409,25 @@ void ContentSettingDownloadsBubbleModel::SetRadioGroup() {
radio_group.url = url;
switch (download_request_limiter->GetDownloadUiStatus(web_contents())) {
case DownloadRequestLimiter::DOWNLOAD_UI_ALLOWED:
radio_group.radio_items.push_back(
l10n_util::GetStringUTF16(IDS_ALLOWED_DOWNLOAD_NO_ACTION));
radio_group.radio_items.push_back(
l10n_util::GetStringFUTF16(IDS_ALLOWED_DOWNLOAD_BLOCK, display_host));
radio_group.radio_items = {
l10n_util::GetStringUTF16(IDS_ALLOWED_DOWNLOAD_NO_ACTION),
l10n_util::GetStringFUTF16(IDS_ALLOWED_DOWNLOAD_BLOCK, display_host)};
radio_group.default_item = kAllowButtonIndex;
break;
case DownloadRequestLimiter::DOWNLOAD_UI_BLOCKED:
radio_group.radio_items.push_back(l10n_util::GetStringFUTF16(
IDS_BLOCKED_DOWNLOAD_UNBLOCK, display_host));
radio_group.radio_items.push_back(
l10n_util::GetStringUTF16(IDS_BLOCKED_DOWNLOAD_NO_ACTION));
radio_group.radio_items = {
l10n_util::GetStringFUTF16(IDS_BLOCKED_DOWNLOAD_UNBLOCK,
display_host),
l10n_util::GetStringUTF16(IDS_BLOCKED_DOWNLOAD_NO_ACTION)};
radio_group.default_item = 1;
break;
case DownloadRequestLimiter::DOWNLOAD_UI_DEFAULT:
NOTREACHED();
return;
}
radio_group.user_managed = GetSettingManagedByUser(
url, CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, GetProfile(), nullptr);
set_radio_group(radio_group);
set_radio_group_enabled(GetSettingManagedByUser(
url, CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, GetProfile(), nullptr));
}
void ContentSettingDownloadsBubbleModel::SetTitle() {
......
......@@ -99,9 +99,12 @@ class ContentSettingBubbleModel {
~RadioGroup();
GURL url;
base::string16 title;
RadioItems radio_items;
int default_item;
// Whether the user can control this radio group. False if controlled by
// policy, etc.
bool user_managed = true;
};
struct DomainList {
......@@ -142,7 +145,6 @@ class ContentSettingBubbleModel {
base::string16 message;
ListItems list_items;
RadioGroup radio_group;
bool radio_group_enabled = false;
std::vector<DomainList> domain_lists;
base::string16 custom_link;
bool custom_link_enabled = false;
......@@ -232,9 +234,6 @@ class ContentSettingBubbleModel {
void set_radio_group(const RadioGroup& radio_group) {
bubble_content_.radio_group = radio_group;
}
void set_radio_group_enabled(bool enabled) {
bubble_content_.radio_group_enabled = enabled;
}
void add_domain_list(const DomainList& domain_list) {
bubble_content_.domain_lists.push_back(domain_list);
}
......
......@@ -1034,7 +1034,7 @@ TEST_F(ContentSettingBubbleModelTest, ValidUrl) {
const ContentSettingBubbleModel::BubbleContent& bubble_content =
content_setting_bubble_model->bubble_content();
EXPECT_TRUE(bubble_content.radio_group_enabled);
EXPECT_TRUE(bubble_content.radio_group.user_managed);
}
TEST_F(ContentSettingBubbleModelTest, InvalidUrl) {
......@@ -1051,5 +1051,5 @@ TEST_F(ContentSettingBubbleModelTest, InvalidUrl) {
const ContentSettingBubbleModel::BubbleContent& bubble_content =
content_setting_bubble_model->bubble_content();
EXPECT_FALSE(bubble_content.radio_group_enabled);
EXPECT_FALSE(bubble_content.radio_group.user_managed);
}
......@@ -474,7 +474,7 @@ void ContentSettingBubbleContents::Init() {
for (auto i(radio_group.radio_items.begin());
i != radio_group.radio_items.end(); ++i) {
auto radio = std::make_unique<views::RadioButton>(*i, 0);
radio->SetEnabled(bubble_content.radio_group_enabled);
radio->SetEnabled(radio_group.user_managed);
radio->SetMultiLine(true);
radio_group_.push_back(radio.get());
rows.push_back({std::move(radio), LayoutRowType::INDENTED});
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment