| Index: chrome/browser/ui/content_settings/content_setting_image_model.cc
|
| diff --git a/chrome/browser/ui/content_settings/content_setting_image_model.cc b/chrome/browser/ui/content_settings/content_setting_image_model.cc
|
| index 95254750367b53b2364aa73511ee6859c3dbe7ed..51979fbee2d8104b1a3f7c8bb803e99538546f33 100644
|
| --- a/chrome/browser/ui/content_settings/content_setting_image_model.cc
|
| +++ b/chrome/browser/ui/content_settings/content_setting_image_model.cc
|
| @@ -32,6 +32,13 @@ class ContentSettingGeolocationImageModel : public ContentSettingImageModel {
|
| virtual void UpdateFromWebContents(WebContents* web_contents) OVERRIDE;
|
| };
|
|
|
| +class ContentSettingRPHImageModel : public ContentSettingImageModel {
|
| + public:
|
| + ContentSettingRPHImageModel();
|
| +
|
| + virtual void UpdateFromWebContents(WebContents* web_contents) OVERRIDE;
|
| +};
|
| +
|
| class ContentSettingNotificationsImageModel : public ContentSettingImageModel {
|
| public:
|
| ContentSettingNotificationsImageModel();
|
| @@ -156,6 +163,27 @@ void ContentSettingGeolocationImageModel::UpdateFromWebContents(
|
| IDS_GEOLOCATION_ALLOWED_TOOLTIP : IDS_GEOLOCATION_BLOCKED_TOOLTIP));
|
| }
|
|
|
| +ContentSettingRPHImageModel::ContentSettingRPHImageModel()
|
| + : ContentSettingImageModel(
|
| + CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS) {
|
| + set_icon(IDR_REGISTER_PROTOCOL_HANDLER_LOCATIONBAR_ICON);
|
| + set_tooltip(l10n_util::GetStringUTF8(IDS_REGISTER_PROTOCOL_HANDLER_TOOLTIP));
|
| +}
|
| +
|
| +void ContentSettingRPHImageModel::UpdateFromWebContents(
|
| + WebContents* web_contents) {
|
| + set_visible(false);
|
| + if (!web_contents)
|
| + return;
|
| +
|
| + TabSpecificContentSettings* content_settings =
|
| + TabContents::FromWebContents(web_contents)->content_settings();
|
| + if (content_settings->pending_protocol_handler().IsEmpty())
|
| + return;
|
| +
|
| + set_visible(true);
|
| +}
|
| +
|
| ContentSettingNotificationsImageModel::ContentSettingNotificationsImageModel()
|
| : ContentSettingImageModel(CONTENT_SETTINGS_TYPE_NOTIFICATIONS) {
|
| }
|
| @@ -183,6 +211,8 @@ ContentSettingImageModel*
|
| return new ContentSettingGeolocationImageModel();
|
| case CONTENT_SETTINGS_TYPE_NOTIFICATIONS:
|
| return new ContentSettingNotificationsImageModel();
|
| + case CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS:
|
| + return new ContentSettingRPHImageModel();
|
| default:
|
| return new ContentSettingBlockedImageModel(content_settings_type);
|
| }
|
|
|