Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6081)

Unified Diff: chrome/browser/ui/content_settings/content_setting_image_model.cc

Issue 10584042: Bring up a content settings icon for ungestured registerProtocolHandler call. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Repair merge to head Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}

Powered by Google App Engine
This is Rietveld 408576698