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

Side by Side Diff: chrome/browser/ui/content_settings/content_setting_bubble_model.cc

Issue 11488009: Add content settings page action for Pepper broker authorization. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 7 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/content_settings/content_setting_bubble_model.h" 5 #include "chrome/browser/ui/content_settings/content_setting_bubble_model.h"
6 6
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/api/infobars/infobar_service.h" 8 #include "chrome/browser/api/infobars/infobar_service.h"
9 #include "chrome/browser/content_settings/content_settings_utils.h" 9 #include "chrome/browser/content_settings/content_settings_utils.h"
10 #include "chrome/browser/content_settings/cookie_settings.h" 10 #include "chrome/browser/content_settings/cookie_settings.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 } 84 }
85 85
86 void ContentSettingTitleAndLinkModel::SetTitle() { 86 void ContentSettingTitleAndLinkModel::SetTitle() {
87 static const ContentSettingsTypeIdEntry kBlockedTitleIDs[] = { 87 static const ContentSettingsTypeIdEntry kBlockedTitleIDs[] = {
88 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_TITLE}, 88 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_TITLE},
89 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_TITLE}, 89 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_TITLE},
90 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_TITLE}, 90 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_TITLE},
91 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_MESSAGE}, 91 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_MESSAGE},
92 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_TITLE}, 92 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_TITLE},
93 {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, 93 {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT,
94 IDS_BLOCKED_DISPLAYING_INSECURE_CONTENT}, 94 IDS_BLOCKED_DISPLAYING_INSECURE_CONTENT},
95 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER,
96 IDS_BLOCKED_PPAPI_BROKER_TITLE},
95 }; 97 };
96 // Fields as for kBlockedTitleIDs, above. 98 // Fields as for kBlockedTitleIDs, above.
97 static const ContentSettingsTypeIdEntry 99 static const ContentSettingsTypeIdEntry
98 kResourceSpecificBlockedTitleIDs[] = { 100 kResourceSpecificBlockedTitleIDs[] = {
99 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_TITLE}, 101 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_TITLE},
100 }; 102 };
101 static const ContentSettingsTypeIdEntry kAccessedTitleIDs[] = { 103 static const ContentSettingsTypeIdEntry kAccessedTitleIDs[] = {
102 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_ACCESSED_COOKIES_TITLE}, 104 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_ACCESSED_COOKIES_TITLE},
105 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_TITLE},
103 }; 106 };
104 const ContentSettingsTypeIdEntry *title_ids = kBlockedTitleIDs; 107 const ContentSettingsTypeIdEntry *title_ids = kBlockedTitleIDs;
105 size_t num_title_ids = arraysize(kBlockedTitleIDs); 108 size_t num_title_ids = arraysize(kBlockedTitleIDs);
106 if (web_contents() && 109 if (web_contents() &&
107 TabSpecificContentSettings::FromWebContents( 110 TabSpecificContentSettings::FromWebContents(
108 web_contents())->IsContentAccessed(content_type()) && 111 web_contents())->IsContentAccessed(content_type()) &&
109 !TabSpecificContentSettings::FromWebContents( 112 !TabSpecificContentSettings::FromWebContents(
110 web_contents())->IsContentBlocked(content_type())) { 113 web_contents())->IsContentBlocked(content_type())) {
111 title_ids = kAccessedTitleIDs; 114 title_ids = kAccessedTitleIDs;
112 num_title_ids = arraysize(kAccessedTitleIDs); 115 num_title_ids = arraysize(kAccessedTitleIDs);
(...skipping 10 matching lines...) Expand all
123 void ContentSettingTitleAndLinkModel::SetManageLink() { 126 void ContentSettingTitleAndLinkModel::SetManageLink() {
124 static const ContentSettingsTypeIdEntry kLinkIDs[] = { 127 static const ContentSettingsTypeIdEntry kLinkIDs[] = {
125 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_LINK}, 128 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_LINK},
126 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_LINK}, 129 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_LINK},
127 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_LINK}, 130 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_LINK},
128 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_LINK}, 131 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_LINK},
129 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_LINK}, 132 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_LINK},
130 {CONTENT_SETTINGS_TYPE_GEOLOCATION, IDS_GEOLOCATION_BUBBLE_MANAGE_LINK}, 133 {CONTENT_SETTINGS_TYPE_GEOLOCATION, IDS_GEOLOCATION_BUBBLE_MANAGE_LINK},
131 {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, IDS_LEARN_MORE}, 134 {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, IDS_LEARN_MORE},
132 {CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, IDS_HANDLERS_BUBBLE_MANAGE_LINK}, 135 {CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, IDS_HANDLERS_BUBBLE_MANAGE_LINK},
133 {CONTENT_SETTINGS_TYPE_MEDIASTREAM, IDS_MEDIASTREAM_BUBBLE_MANAGE_LINK} 136 {CONTENT_SETTINGS_TYPE_MEDIASTREAM, IDS_MEDIASTREAM_BUBBLE_MANAGE_LINK},
137 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_PPAPI_BROKER_BUBBLE_MANAGE_LINK},
134 }; 138 };
135 set_manage_link(l10n_util::GetStringUTF8( 139 set_manage_link(l10n_util::GetStringUTF8(
136 GetIdForContentType(kLinkIDs, arraysize(kLinkIDs), content_type()))); 140 GetIdForContentType(kLinkIDs, arraysize(kLinkIDs), content_type())));
137 } 141 }
138 142
139 void ContentSettingTitleAndLinkModel::OnManageLinkClicked() { 143 void ContentSettingTitleAndLinkModel::OnManageLinkClicked() {
140 if (delegate_) 144 if (delegate_)
141 delegate_->ShowContentSettingsPage(content_type()); 145 delegate_->ShowContentSettingsPage(content_type());
142 } 146 }
143 147
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 } 233 }
230 234
231 bool ContentSettingSingleRadioGroup::settings_changed() const { 235 bool ContentSettingSingleRadioGroup::settings_changed() const {
232 return selected_item_ != bubble_content().radio_group.default_item; 236 return selected_item_ != bubble_content().radio_group.default_item;
233 } 237 }
234 238
235 // Initialize the radio group by setting the appropriate labels for the 239 // Initialize the radio group by setting the appropriate labels for the
236 // content type and setting the default value based on the content setting. 240 // content type and setting the default value based on the content setting.
237 void ContentSettingSingleRadioGroup::SetRadioGroup() { 241 void ContentSettingSingleRadioGroup::SetRadioGroup() {
238 GURL url = web_contents()->GetURL(); 242 GURL url = web_contents()->GetURL();
239 string16 display_host_utf16; 243 string16 display_host;
240 net::AppendFormattedHost( 244 net::AppendFormattedHost(
241 url, 245 url,
242 profile()->GetPrefs()->GetString(prefs::kAcceptLanguages), 246 profile()->GetPrefs()->GetString(prefs::kAcceptLanguages),
243 &display_host_utf16); 247 &display_host);
244 std::string display_host(UTF16ToUTF8(display_host_utf16));
245 248
246 if (display_host.empty()) 249 if (display_host.empty())
247 display_host = url.spec(); 250 display_host = ASCIIToUTF16(url.spec());
248 251
249 const std::set<std::string>& resources = 252 const std::set<std::string>& resources =
250 bubble_content().resource_identifiers; 253 bubble_content().resource_identifiers;
251 254
255 TabSpecificContentSettings* content_settings =
256 TabSpecificContentSettings::FromWebContents(web_contents());
257 bool allowed =
258 !content_settings->IsContentBlocked(content_type());
259 DCHECK(!allowed ||
260 content_settings->IsContentAccessed(content_type()));
261
252 RadioGroup radio_group; 262 RadioGroup radio_group;
253 radio_group.url = url; 263 radio_group.url = url;
254 264
255 static const ContentSettingsTypeIdEntry kAllowIDs[] = { 265 static const ContentSettingsTypeIdEntry kBlockedAllowIDs[] = {
256 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_UNBLOCK}, 266 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_UNBLOCK},
257 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_UNBLOCK}, 267 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_UNBLOCK},
258 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_UNBLOCK}, 268 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_UNBLOCK},
259 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_UNBLOCK_ALL}, 269 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_UNBLOCK_ALL},
260 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_UNBLOCK}, 270 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_UNBLOCK},
271 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_BLOCKED_PPAPI_BROKER_UNBLOCK},
261 }; 272 };
262 // Fields as for kAllowIDs, above. 273 // Fields as for kBlockedAllowIDs, above.
263 static const ContentSettingsTypeIdEntry kResourceSpecificAllowIDs[] = { 274 static const ContentSettingsTypeIdEntry kResourceSpecificBlockedAllowIDs[] = {
264 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_UNBLOCK}, 275 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_UNBLOCK},
265 }; 276 };
277 static const ContentSettingsTypeIdEntry kAllowedAllowIDs[] = {
278 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_NO_ACTION},
279 };
280
266 std::string radio_allow_label; 281 std::string radio_allow_label;
267 const ContentSettingsTypeIdEntry* allow_ids = resources.empty() ? 282 if (allowed) {
268 kAllowIDs : kResourceSpecificAllowIDs; 283 radio_allow_label = l10n_util::GetStringUTF8(
269 size_t num_allow_ids = resources.empty() ? 284 GetIdForContentType(kAllowedAllowIDs, arraysize(kAllowedAllowIDs),
270 arraysize(kAllowIDs) : arraysize(kResourceSpecificAllowIDs); 285 content_type()));
271 radio_allow_label = l10n_util::GetStringFUTF8( 286 } else if (resources.empty()) {
272 GetIdForContentType(allow_ids, num_allow_ids, content_type()), 287 radio_allow_label = l10n_util::GetStringFUTF8(
273 UTF8ToUTF16(display_host)); 288 GetIdForContentType(kBlockedAllowIDs, arraysize(kBlockedAllowIDs),
289 content_type()),
290 display_host);
291 } else {
292 radio_allow_label = l10n_util::GetStringFUTF8(
293 GetIdForContentType(kResourceSpecificBlockedAllowIDs,
294 arraysize(kResourceSpecificBlockedAllowIDs),
295 content_type()),
296 display_host);
297 }
274 298
275 static const ContentSettingsTypeIdEntry kBlockIDs[] = { 299 static const ContentSettingsTypeIdEntry kBlockedBlockIDs[] = {
276 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_NO_ACTION}, 300 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_NO_ACTION},
277 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_NO_ACTION}, 301 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_NO_ACTION},
278 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_NO_ACTION}, 302 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_NO_ACTION},
279 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_NO_ACTION}, 303 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_NO_ACTION},
280 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_NO_ACTION}, 304 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_NO_ACTION},
305 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_BLOCKED_PPAPI_BROKER_NO_ACTION},
281 }; 306 };
307 static const ContentSettingsTypeIdEntry kAllowedBlockIDs[] = {
308 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_BLOCK},
309 };
310
282 std::string radio_block_label; 311 std::string radio_block_label;
283 radio_block_label = l10n_util::GetStringUTF8( 312 if (allowed) {
284 GetIdForContentType(kBlockIDs, arraysize(kBlockIDs), content_type())); 313 radio_block_label = l10n_util::GetStringFUTF8(
314 GetIdForContentType(kAllowedBlockIDs, arraysize(kAllowedBlockIDs),
315 content_type()),
316 display_host);
317 } else {
318 radio_block_label = l10n_util::GetStringUTF8(
319 GetIdForContentType(kBlockedBlockIDs, arraysize(kBlockedBlockIDs),
320 content_type()));
321 }
285 322
286 radio_group.radio_items.push_back(radio_allow_label); 323 radio_group.radio_items.push_back(radio_allow_label);
287 radio_group.radio_items.push_back(radio_block_label); 324 radio_group.radio_items.push_back(radio_block_label);
288 HostContentSettingsMap* map = profile()->GetHostContentSettingsMap(); 325 HostContentSettingsMap* map = profile()->GetHostContentSettingsMap();
289 CookieSettings* cookie_settings = 326 CookieSettings* cookie_settings =
290 CookieSettings::Factory::GetForProfile(profile()); 327 CookieSettings::Factory::GetForProfile(profile());
291 ContentSetting most_restrictive_setting; 328 ContentSetting most_restrictive_setting;
292 SettingSource most_restrictive_setting_source = SETTING_SOURCE_NONE; 329 SettingSource most_restrictive_setting_source = SETTING_SOURCE_NONE;
293 330
294 if (resources.empty()) { 331 if (resources.empty()) {
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after
958 if (type == content::NOTIFICATION_WEB_CONTENTS_DESTROYED) { 995 if (type == content::NOTIFICATION_WEB_CONTENTS_DESTROYED) {
959 DCHECK_EQ(web_contents_, 996 DCHECK_EQ(web_contents_,
960 content::Source<WebContents>(source).ptr()); 997 content::Source<WebContents>(source).ptr());
961 web_contents_ = NULL; 998 web_contents_ = NULL;
962 } else { 999 } else {
963 DCHECK_EQ(chrome::NOTIFICATION_PROFILE_DESTROYED, type); 1000 DCHECK_EQ(chrome::NOTIFICATION_PROFILE_DESTROYED, type);
964 DCHECK_EQ(profile_, content::Source<Profile>(source).ptr()); 1001 DCHECK_EQ(profile_, content::Source<Profile>(source).ptr());
965 profile_ = NULL; 1002 profile_ = NULL;
966 } 1003 }
967 } 1004 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698