| Index: chrome/browser/ui/content_settings/content_setting_bubble_model.cc
|
| diff --git a/chrome/browser/ui/content_settings/content_setting_bubble_model.cc b/chrome/browser/ui/content_settings/content_setting_bubble_model.cc
|
| index fa67b7c82d37b9ef718451f14d200c934ecd1211..a3a9b636bc0f8c63ba53ee0815f3974c39f44395 100644
|
| --- a/chrome/browser/ui/content_settings/content_setting_bubble_model.cc
|
| +++ b/chrome/browser/ui/content_settings/content_setting_bubble_model.cc
|
| @@ -91,7 +91,9 @@ void ContentSettingTitleAndLinkModel::SetTitle() {
|
| {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_MESSAGE},
|
| {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_TITLE},
|
| {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT,
|
| - IDS_BLOCKED_DISPLAYING_INSECURE_CONTENT},
|
| + IDS_BLOCKED_DISPLAYING_INSECURE_CONTENT},
|
| + {CONTENT_SETTINGS_TYPE_PPAPI_BROKER,
|
| + IDS_BLOCKED_PPAPI_BROKER_TITLE},
|
| };
|
| // Fields as for kBlockedTitleIDs, above.
|
| static const ContentSettingsTypeIdEntry
|
| @@ -100,6 +102,7 @@ void ContentSettingTitleAndLinkModel::SetTitle() {
|
| };
|
| static const ContentSettingsTypeIdEntry kAccessedTitleIDs[] = {
|
| {CONTENT_SETTINGS_TYPE_COOKIES, IDS_ACCESSED_COOKIES_TITLE},
|
| + {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_TITLE},
|
| };
|
| const ContentSettingsTypeIdEntry *title_ids = kBlockedTitleIDs;
|
| size_t num_title_ids = arraysize(kBlockedTitleIDs);
|
| @@ -130,7 +133,8 @@ void ContentSettingTitleAndLinkModel::SetManageLink() {
|
| {CONTENT_SETTINGS_TYPE_GEOLOCATION, IDS_GEOLOCATION_BUBBLE_MANAGE_LINK},
|
| {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, IDS_LEARN_MORE},
|
| {CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, IDS_HANDLERS_BUBBLE_MANAGE_LINK},
|
| - {CONTENT_SETTINGS_TYPE_MEDIASTREAM, IDS_MEDIASTREAM_BUBBLE_MANAGE_LINK}
|
| + {CONTENT_SETTINGS_TYPE_MEDIASTREAM, IDS_MEDIASTREAM_BUBBLE_MANAGE_LINK},
|
| + {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_PPAPI_BROKER_BUBBLE_MANAGE_LINK},
|
| };
|
| set_manage_link(l10n_util::GetStringUTF8(
|
| GetIdForContentType(kLinkIDs, arraysize(kLinkIDs), content_type())));
|
| @@ -236,52 +240,85 @@ bool ContentSettingSingleRadioGroup::settings_changed() const {
|
| // content type and setting the default value based on the content setting.
|
| void ContentSettingSingleRadioGroup::SetRadioGroup() {
|
| GURL url = web_contents()->GetURL();
|
| - string16 display_host_utf16;
|
| + string16 display_host;
|
| net::AppendFormattedHost(
|
| url,
|
| profile()->GetPrefs()->GetString(prefs::kAcceptLanguages),
|
| - &display_host_utf16);
|
| - std::string display_host(UTF16ToUTF8(display_host_utf16));
|
| + &display_host);
|
|
|
| if (display_host.empty())
|
| - display_host = url.spec();
|
| + display_host = ASCIIToUTF16(url.spec());
|
|
|
| const std::set<std::string>& resources =
|
| bubble_content().resource_identifiers;
|
|
|
| + TabSpecificContentSettings* content_settings =
|
| + TabSpecificContentSettings::FromWebContents(web_contents());
|
| + bool allowed =
|
| + !content_settings->IsContentBlocked(content_type());
|
| + DCHECK(!allowed ||
|
| + content_settings->IsContentAccessed(content_type()));
|
| +
|
| RadioGroup radio_group;
|
| radio_group.url = url;
|
|
|
| - static const ContentSettingsTypeIdEntry kAllowIDs[] = {
|
| + static const ContentSettingsTypeIdEntry kBlockedAllowIDs[] = {
|
| {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_UNBLOCK},
|
| {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_UNBLOCK},
|
| {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_UNBLOCK},
|
| {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_UNBLOCK_ALL},
|
| {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_UNBLOCK},
|
| + {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_BLOCKED_PPAPI_BROKER_UNBLOCK},
|
| };
|
| - // Fields as for kAllowIDs, above.
|
| - static const ContentSettingsTypeIdEntry kResourceSpecificAllowIDs[] = {
|
| + // Fields as for kBlockedAllowIDs, above.
|
| + static const ContentSettingsTypeIdEntry kResourceSpecificBlockedAllowIDs[] = {
|
| {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_UNBLOCK},
|
| };
|
| + static const ContentSettingsTypeIdEntry kAllowedAllowIDs[] = {
|
| + {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_NO_ACTION},
|
| + };
|
| +
|
| std::string radio_allow_label;
|
| - const ContentSettingsTypeIdEntry* allow_ids = resources.empty() ?
|
| - kAllowIDs : kResourceSpecificAllowIDs;
|
| - size_t num_allow_ids = resources.empty() ?
|
| - arraysize(kAllowIDs) : arraysize(kResourceSpecificAllowIDs);
|
| - radio_allow_label = l10n_util::GetStringFUTF8(
|
| - GetIdForContentType(allow_ids, num_allow_ids, content_type()),
|
| - UTF8ToUTF16(display_host));
|
| -
|
| - static const ContentSettingsTypeIdEntry kBlockIDs[] = {
|
| + if (allowed) {
|
| + radio_allow_label = l10n_util::GetStringUTF8(
|
| + GetIdForContentType(kAllowedAllowIDs, arraysize(kAllowedAllowIDs),
|
| + content_type()));
|
| + } else if (resources.empty()) {
|
| + radio_allow_label = l10n_util::GetStringFUTF8(
|
| + GetIdForContentType(kBlockedAllowIDs, arraysize(kBlockedAllowIDs),
|
| + content_type()),
|
| + display_host);
|
| + } else {
|
| + radio_allow_label = l10n_util::GetStringFUTF8(
|
| + GetIdForContentType(kResourceSpecificBlockedAllowIDs,
|
| + arraysize(kResourceSpecificBlockedAllowIDs),
|
| + content_type()),
|
| + display_host);
|
| + }
|
| +
|
| + static const ContentSettingsTypeIdEntry kBlockedBlockIDs[] = {
|
| {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_NO_ACTION},
|
| {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_NO_ACTION},
|
| {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_NO_ACTION},
|
| {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_NO_ACTION},
|
| {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_NO_ACTION},
|
| + {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_BLOCKED_PPAPI_BROKER_NO_ACTION},
|
| };
|
| + static const ContentSettingsTypeIdEntry kAllowedBlockIDs[] = {
|
| + {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_BLOCK},
|
| + };
|
| +
|
| std::string radio_block_label;
|
| - radio_block_label = l10n_util::GetStringUTF8(
|
| - GetIdForContentType(kBlockIDs, arraysize(kBlockIDs), content_type()));
|
| + if (allowed) {
|
| + radio_block_label = l10n_util::GetStringFUTF8(
|
| + GetIdForContentType(kAllowedBlockIDs, arraysize(kAllowedBlockIDs),
|
| + content_type()),
|
| + display_host);
|
| + } else {
|
| + radio_block_label = l10n_util::GetStringUTF8(
|
| + GetIdForContentType(kBlockedBlockIDs, arraysize(kBlockedBlockIDs),
|
| + content_type()));
|
| + }
|
|
|
| radio_group.radio_items.push_back(radio_allow_label);
|
| radio_group.radio_items.push_back(radio_block_label);
|
|
|