| 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 a854f8b8c4ce9c674ee4b8ee8eeea147d1360fa1..eeab29d80534f94f15d06323a59720717e3edcb1 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
|
| @@ -236,6 +236,26 @@ class ContentSettingBubbleWebContentsObserverBridge
|
| anchoredAt:anchor];
|
| }
|
|
|
| +struct ContentTypeToNibPath {
|
| + ContentSettingsType type;
|
| + NSString* path;
|
| +};
|
| +
|
| +const ContentTypeToNibPath kNibPaths[] = {
|
| + {CONTENT_SETTINGS_TYPE_COOKIES, @"ContentBlockedCookies"},
|
| + {CONTENT_SETTINGS_TYPE_IMAGES, @"ContentBlockedSimple"},
|
| + {CONTENT_SETTINGS_TYPE_JAVASCRIPT, @"ContentBlockedSimple"},
|
| + {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, @"ContentBlockedSimple"},
|
| + {CONTENT_SETTINGS_TYPE_PLUGINS, @"ContentBlockedPlugins"},
|
| + {CONTENT_SETTINGS_TYPE_POPUPS, @"ContentBlockedPopups"},
|
| + {CONTENT_SETTINGS_TYPE_GEOLOCATION, @"ContentBlockedGeolocation"},
|
| + {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, @"ContentBlockedMixedScript"},
|
| + {CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, @"ContentProtocolHandlers"},
|
| + {CONTENT_SETTINGS_TYPE_MEDIASTREAM, @"ContentBlockedMedia"},
|
| + {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, @"ContentBlockedDownloads"},
|
| + {CONTENT_SETTINGS_TYPE_MIDI_SYSEX, @"ContentBlockedMIDISysEx"},
|
| +};
|
| +
|
| - (id)initWithModel:(ContentSettingBubbleModel*)contentSettingBubbleModel
|
| webContents:(content::WebContents*)webContents
|
| parentWindow:(NSWindow*)parentWindow
|
| @@ -247,48 +267,19 @@ class ContentSettingBubbleWebContentsObserverBridge
|
| new ContentSettingBubbleWebContentsObserverBridge(webContents, self));
|
|
|
| ContentSettingsType settingsType = model->content_type();
|
| + DCHECK(ContainsKey(ContentSettingBubbleModel::GetSupportedBubbleTypes(),
|
| + settingsType));
|
| + DCHECK_EQ(ContentSettingBubbleModel::GetSupportedBubbleTypes().size(),
|
| + arraysize(kNibPaths));
|
| NSString* nibPath = @"";
|
| - switch (settingsType) {
|
| - case CONTENT_SETTINGS_TYPE_COOKIES:
|
| - nibPath = @"ContentBlockedCookies"; break;
|
| - case CONTENT_SETTINGS_TYPE_IMAGES:
|
| - case CONTENT_SETTINGS_TYPE_JAVASCRIPT:
|
| - case CONTENT_SETTINGS_TYPE_PPAPI_BROKER:
|
| - nibPath = @"ContentBlockedSimple"; break;
|
| - case CONTENT_SETTINGS_TYPE_PLUGINS:
|
| - nibPath = @"ContentBlockedPlugins"; break;
|
| - case CONTENT_SETTINGS_TYPE_POPUPS:
|
| - nibPath = @"ContentBlockedPopups"; break;
|
| - case CONTENT_SETTINGS_TYPE_GEOLOCATION:
|
| - nibPath = @"ContentBlockedGeolocation"; break;
|
| - case CONTENT_SETTINGS_TYPE_MIXEDSCRIPT:
|
| - nibPath = @"ContentBlockedMixedScript"; break;
|
| - case CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS:
|
| - nibPath = @"ContentProtocolHandlers"; break;
|
| - case CONTENT_SETTINGS_TYPE_MEDIASTREAM:
|
| - nibPath = @"ContentBlockedMedia"; break;
|
| - case CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS:
|
| - nibPath = @"ContentBlockedDownloads"; break;
|
| - case CONTENT_SETTINGS_TYPE_MIDI_SYSEX:
|
| - nibPath = @"ContentBlockedMIDISysEx"; break;
|
| - // These content types have no bubble:
|
| - case CONTENT_SETTINGS_TYPE_DEFAULT:
|
| - case CONTENT_SETTINGS_TYPE_NOTIFICATIONS:
|
| - case CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE:
|
| - case CONTENT_SETTINGS_TYPE_FULLSCREEN:
|
| - case CONTENT_SETTINGS_TYPE_MOUSELOCK:
|
| - case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC:
|
| - case CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA:
|
| - case CONTENT_SETTINGS_NUM_TYPES:
|
| - // TODO(miguelg): Remove this nib content settings support
|
| - // is implemented
|
| - case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING:
|
| - case CONTENT_SETTINGS_TYPE_SSL_CERT_DECISIONS:
|
| - case CONTENT_SETTINGS_TYPE_APP_BANNER:
|
| - case CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT:
|
| - case CONTENT_SETTINGS_TYPE_DURABLE_STORAGE:
|
| - NOTREACHED();
|
| + for (const ContentTypeToNibPath& type_to_path : kNibPaths) {
|
| + if (settingsType == type_to_path.type) {
|
| + nibPath = type_to_path.path;
|
| + break;
|
| + }
|
| }
|
| + DCHECK_NE(0u, [nibPath length]);
|
| +
|
| if ((self = [super initWithWindowNibPath:nibPath
|
| parentWindow:parentWindow
|
| anchoredAt:anchoredAt])) {
|
|
|