| Index: chrome/browser/ui/cocoa/content_settings/content_setting_bubble_cocoa.mm
|
| diff --git a/chrome/browser/ui/cocoa/content_settings/content_setting_bubble_cocoa.mm b/chrome/browser/ui/cocoa/content_settings/content_setting_bubble_cocoa.mm
|
| index 8e96c6d70202cdc248a65c34074141756fd22c99..2395c561cc14878044fee298d9f1b4fa6488f23b 100644
|
| --- a/chrome/browser/ui/cocoa/content_settings/content_setting_bubble_cocoa.mm
|
| +++ b/chrome/browser/ui/cocoa/content_settings/content_setting_bubble_cocoa.mm
|
| @@ -23,12 +23,6 @@ using content::PluginService;
|
|
|
| namespace {
|
|
|
| -// Must match the tag of the unblock radio button in the xib files.
|
| -const int kAllowTag = 1;
|
| -
|
| -// Must match the tag of the block radio button in the xib files.
|
| -const int kBlockTag = 2;
|
| -
|
| // Height of one link in the popup list.
|
| const int kLinkHeight = 16;
|
|
|
| @@ -137,6 +131,8 @@ NSTextField* LabelWithFrame(NSString* text, const NSRect& frame) {
|
| nibPath = @"ContentBlockedGeolocation"; break;
|
| case CONTENT_SETTINGS_TYPE_MIXEDSCRIPT:
|
| nibPath = @"ContentBlockedMixedScript"; break;
|
| + case CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS:
|
| + nibPath = @"ContentProtocolHandlers"; break;
|
| default:
|
| NOTREACHED();
|
| }
|
| @@ -169,24 +165,20 @@ NSTextField* LabelWithFrame(NSString* text, const NSRect& frame) {
|
| }
|
|
|
| - (void)initializeRadioGroup {
|
| - // Configure the radio group. For now, only deal with the
|
| - // strictly needed case of group containing 2 radio buttons.
|
| + // NOTE! Tags in the xib files must match the order of the radio buttons
|
| + // passed in the radio_group and be 1-based, not 0-based.
|
| const ContentSettingBubbleModel::RadioGroup& radio_group =
|
| contentSettingBubbleModel_->bubble_content().radio_group;
|
|
|
| // Select appropriate radio button.
|
| - [allowBlockRadioGroup_ selectCellWithTag:
|
| - radio_group.default_item == 0 ? kAllowTag : kBlockTag];
|
| + [allowBlockRadioGroup_ selectCellWithTag: radio_group.default_item + 1];
|
|
|
| const ContentSettingBubbleModel::RadioItems& radio_items =
|
| radio_group.radio_items;
|
| - DCHECK_EQ(2u, radio_items.size()) << "Only 2 radio items per group supported";
|
| - // Set radio group labels from model.
|
| - NSCell* radioCell = [allowBlockRadioGroup_ cellWithTag:kAllowTag];
|
| - [radioCell setTitle:base::SysUTF8ToNSString(radio_items[0])];
|
| -
|
| - radioCell = [allowBlockRadioGroup_ cellWithTag:kBlockTag];
|
| - [radioCell setTitle:base::SysUTF8ToNSString(radio_items[1])];
|
| + for (size_t ii = 0; ii < radio_group.radio_items.size(); ++ii) {
|
| + NSCell* radioCell = [allowBlockRadioGroup_ cellWithTag: ii + 1];
|
| + [radioCell setTitle:base::SysUTF8ToNSString(radio_items[ii])];
|
| + }
|
|
|
| // Layout radio group labels post-localization.
|
| [GTMUILocalizerAndLayoutTweaker
|
| @@ -446,6 +438,7 @@ NSTextField* LabelWithFrame(NSString* text, const NSRect& frame) {
|
| [self sizeToFitLoadButton];
|
| [self initializeBlockedPluginsList];
|
| }
|
| +
|
| if (allowBlockRadioGroup_) // not bound in cookie bubble xib
|
| [self initializeRadioGroup];
|
|
|
| @@ -460,8 +453,7 @@ NSTextField* LabelWithFrame(NSString* text, const NSRect& frame) {
|
|
|
| - (IBAction)allowBlockToggled:(id)sender {
|
| NSButtonCell *selectedCell = [sender selectedCell];
|
| - contentSettingBubbleModel_->OnRadioClicked(
|
| - [selectedCell tag] == kAllowTag ? 0 : 1);
|
| + contentSettingBubbleModel_->OnRadioClicked([selectedCell tag] - 1);
|
| }
|
|
|
| - (void)popupLinkClicked:(id)sender {
|
|
|