OLD | NEW |
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/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 | 55 |
56 namespace { | 56 namespace { |
57 | 57 |
58 const int kAllowButtonIndex = 0; | 58 const int kAllowButtonIndex = 0; |
59 | 59 |
60 // static | 60 // static |
61 const ContentSettingsType kSupportedBubbleTypes[] = { | 61 const ContentSettingsType kSupportedBubbleTypes[] = { |
62 CONTENT_SETTINGS_TYPE_COOKIES, | 62 CONTENT_SETTINGS_TYPE_COOKIES, |
63 CONTENT_SETTINGS_TYPE_IMAGES, | 63 CONTENT_SETTINGS_TYPE_IMAGES, |
64 CONTENT_SETTINGS_TYPE_JAVASCRIPT, | 64 CONTENT_SETTINGS_TYPE_JAVASCRIPT, |
| 65 CONTENT_SETTINGS_TYPE_KEYGEN, |
65 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, | 66 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, |
66 CONTENT_SETTINGS_TYPE_PLUGINS, | 67 CONTENT_SETTINGS_TYPE_PLUGINS, |
67 CONTENT_SETTINGS_TYPE_POPUPS, | 68 CONTENT_SETTINGS_TYPE_POPUPS, |
68 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 69 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
69 CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, | 70 CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, |
70 CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, | 71 CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, |
71 CONTENT_SETTINGS_TYPE_MEDIASTREAM, | 72 CONTENT_SETTINGS_TYPE_MEDIASTREAM, |
72 CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, | 73 CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, |
73 CONTENT_SETTINGS_TYPE_MIDI_SYSEX, | 74 CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
74 }; | 75 }; |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 TabSpecificContentSettings* content_settings = NULL; | 132 TabSpecificContentSettings* content_settings = NULL; |
132 if (web_contents()) { | 133 if (web_contents()) { |
133 content_settings = | 134 content_settings = |
134 TabSpecificContentSettings::FromWebContents(web_contents()); | 135 TabSpecificContentSettings::FromWebContents(web_contents()); |
135 } | 136 } |
136 | 137 |
137 static const ContentSettingsTypeIdEntry kBlockedTitleIDs[] = { | 138 static const ContentSettingsTypeIdEntry kBlockedTitleIDs[] = { |
138 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_TITLE}, | 139 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_TITLE}, |
139 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_TITLE}, | 140 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_TITLE}, |
140 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_TITLE}, | 141 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_TITLE}, |
| 142 {CONTENT_SETTINGS_TYPE_KEYGEN, IDS_BLOCKED_KEYGEN_TITLE}, |
141 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_TITLE}, | 143 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_TITLE}, |
142 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_TITLE}, | 144 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_TITLE}, |
143 {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, | 145 {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, |
144 IDS_BLOCKED_DISPLAYING_INSECURE_CONTENT}, | 146 IDS_BLOCKED_DISPLAYING_INSECURE_CONTENT}, |
145 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, | 147 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_BLOCKED_PPAPI_BROKER_TITLE}, |
146 IDS_BLOCKED_PPAPI_BROKER_TITLE}, | |
147 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_BLOCKED_DOWNLOAD_TITLE}, | 148 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_BLOCKED_DOWNLOAD_TITLE}, |
148 }; | 149 }; |
149 // Fields as for kBlockedTitleIDs, above. | 150 // Fields as for kBlockedTitleIDs, above. |
150 static const ContentSettingsTypeIdEntry kAccessedTitleIDs[] = { | 151 static const ContentSettingsTypeIdEntry kAccessedTitleIDs[] = { |
151 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_ACCESSED_COOKIES_TITLE}, | 152 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_ACCESSED_COOKIES_TITLE}, |
152 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_TITLE}, | 153 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_TITLE}, |
153 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_ALLOWED_DOWNLOAD_TITLE}, | 154 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_ALLOWED_DOWNLOAD_TITLE}, |
154 }; | 155 }; |
155 const ContentSettingsTypeIdEntry *title_ids = kBlockedTitleIDs; | 156 const ContentSettingsTypeIdEntry *title_ids = kBlockedTitleIDs; |
156 size_t num_title_ids = arraysize(kBlockedTitleIDs); | 157 size_t num_title_ids = arraysize(kBlockedTitleIDs); |
157 if (content_settings && content_settings->IsContentAllowed(content_type()) && | 158 if (content_settings && content_settings->IsContentAllowed(content_type()) && |
158 !content_settings->IsContentBlocked(content_type())) { | 159 !content_settings->IsContentBlocked(content_type())) { |
159 title_ids = kAccessedTitleIDs; | 160 title_ids = kAccessedTitleIDs; |
160 num_title_ids = arraysize(kAccessedTitleIDs); | 161 num_title_ids = arraysize(kAccessedTitleIDs); |
161 } | 162 } |
162 int title_id = | 163 int title_id = |
163 GetIdForContentType(title_ids, num_title_ids, content_type()); | 164 GetIdForContentType(title_ids, num_title_ids, content_type()); |
164 if (title_id) | 165 if (title_id) |
165 set_title(l10n_util::GetStringUTF8(title_id)); | 166 set_title(l10n_util::GetStringUTF8(title_id)); |
166 } | 167 } |
167 | 168 |
168 void ContentSettingTitleAndLinkModel::SetManageLink() { | 169 void ContentSettingTitleAndLinkModel::SetManageLink() { |
169 static const ContentSettingsTypeIdEntry kLinkIDs[] = { | 170 static const ContentSettingsTypeIdEntry kLinkIDs[] = { |
170 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_LINK}, | 171 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_LINK}, |
171 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_LINK}, | 172 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_LINK}, |
172 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_LINK}, | 173 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_LINK}, |
| 174 {CONTENT_SETTINGS_TYPE_KEYGEN, IDS_BLOCKED_KEYGEN_LINK}, |
173 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_LINK}, | 175 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_LINK}, |
174 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_LINK}, | 176 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_LINK}, |
175 {CONTENT_SETTINGS_TYPE_GEOLOCATION, IDS_GEOLOCATION_BUBBLE_MANAGE_LINK}, | 177 {CONTENT_SETTINGS_TYPE_GEOLOCATION, IDS_GEOLOCATION_BUBBLE_MANAGE_LINK}, |
176 {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, IDS_LEARN_MORE}, | 178 {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, IDS_LEARN_MORE}, |
177 {CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, IDS_HANDLERS_BUBBLE_MANAGE_LINK}, | 179 {CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, IDS_HANDLERS_BUBBLE_MANAGE_LINK}, |
178 {CONTENT_SETTINGS_TYPE_MEDIASTREAM, IDS_MEDIASTREAM_BUBBLE_MANAGE_LINK}, | 180 {CONTENT_SETTINGS_TYPE_MEDIASTREAM, IDS_MEDIASTREAM_BUBBLE_MANAGE_LINK}, |
179 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_PPAPI_BROKER_BUBBLE_MANAGE_LINK}, | 181 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_PPAPI_BROKER_BUBBLE_MANAGE_LINK}, |
180 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_BLOCKED_DOWNLOADS_LINK}, | 182 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_BLOCKED_DOWNLOADS_LINK}, |
181 {CONTENT_SETTINGS_TYPE_MIDI_SYSEX, IDS_MIDI_SYSEX_BUBBLE_MANAGE_LINK}, | 183 {CONTENT_SETTINGS_TYPE_MIDI_SYSEX, IDS_MIDI_SYSEX_BUBBLE_MANAGE_LINK}, |
182 }; | 184 }; |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 DCHECK(!allowed || | 307 DCHECK(!allowed || |
306 content_settings->IsContentAllowed(content_type())); | 308 content_settings->IsContentAllowed(content_type())); |
307 | 309 |
308 RadioGroup radio_group; | 310 RadioGroup radio_group; |
309 radio_group.url = url; | 311 radio_group.url = url; |
310 | 312 |
311 static const ContentSettingsTypeIdEntry kBlockedAllowIDs[] = { | 313 static const ContentSettingsTypeIdEntry kBlockedAllowIDs[] = { |
312 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_UNBLOCK}, | 314 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_UNBLOCK}, |
313 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_UNBLOCK}, | 315 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_UNBLOCK}, |
314 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_UNBLOCK}, | 316 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_UNBLOCK}, |
| 317 {CONTENT_SETTINGS_TYPE_KEYGEN, IDS_BLOCKED_KEYGEN_UNBLOCK}, |
315 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_UNBLOCK_ALL}, | 318 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_UNBLOCK_ALL}, |
316 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_UNBLOCK}, | 319 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_UNBLOCK}, |
317 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_BLOCKED_PPAPI_BROKER_UNBLOCK}, | 320 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_BLOCKED_PPAPI_BROKER_UNBLOCK}, |
318 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_BLOCKED_DOWNLOAD_UNBLOCK}, | 321 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_BLOCKED_DOWNLOAD_UNBLOCK}, |
319 }; | 322 }; |
320 // Fields as for kBlockedAllowIDs, above. | 323 // Fields as for kBlockedAllowIDs, above. |
321 static const ContentSettingsTypeIdEntry kAllowedAllowIDs[] = { | 324 static const ContentSettingsTypeIdEntry kAllowedAllowIDs[] = { |
322 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_ALLOWED_COOKIES_NO_ACTION}, | 325 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_ALLOWED_COOKIES_NO_ACTION}, |
323 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_NO_ACTION}, | 326 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_NO_ACTION}, |
324 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_ALLOWED_DOWNLOAD_NO_ACTION}, | 327 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_ALLOWED_DOWNLOAD_NO_ACTION}, |
325 }; | 328 }; |
326 | 329 |
327 std::string radio_allow_label; | 330 std::string radio_allow_label; |
328 if (allowed) { | 331 if (allowed) { |
329 int resource_id = GetIdForContentType(kAllowedAllowIDs, | 332 int resource_id = GetIdForContentType(kAllowedAllowIDs, |
330 arraysize(kAllowedAllowIDs), | 333 arraysize(kAllowedAllowIDs), |
331 content_type()); | 334 content_type()); |
332 radio_allow_label = l10n_util::GetStringUTF8(resource_id); | 335 radio_allow_label = l10n_util::GetStringUTF8(resource_id); |
333 } else { | 336 } else { |
334 radio_allow_label = l10n_util::GetStringFUTF8( | 337 radio_allow_label = l10n_util::GetStringFUTF8( |
335 GetIdForContentType(kBlockedAllowIDs, arraysize(kBlockedAllowIDs), | 338 GetIdForContentType(kBlockedAllowIDs, arraysize(kBlockedAllowIDs), |
336 content_type()), | 339 content_type()), |
337 display_host); | 340 display_host); |
338 } | 341 } |
339 | 342 |
340 static const ContentSettingsTypeIdEntry kBlockedBlockIDs[] = { | 343 static const ContentSettingsTypeIdEntry kBlockedBlockIDs[] = { |
341 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_NO_ACTION}, | 344 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_BLOCKED_COOKIES_NO_ACTION}, |
342 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_NO_ACTION}, | 345 {CONTENT_SETTINGS_TYPE_IMAGES, IDS_BLOCKED_IMAGES_NO_ACTION}, |
343 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_NO_ACTION}, | 346 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, IDS_BLOCKED_JAVASCRIPT_NO_ACTION}, |
| 347 {CONTENT_SETTINGS_TYPE_KEYGEN, IDS_BLOCKED_KEYGEN_NO_ACTION}, |
344 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_NO_ACTION}, | 348 {CONTENT_SETTINGS_TYPE_PLUGINS, IDS_BLOCKED_PLUGINS_NO_ACTION}, |
345 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_NO_ACTION}, | 349 {CONTENT_SETTINGS_TYPE_POPUPS, IDS_BLOCKED_POPUPS_NO_ACTION}, |
346 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_BLOCKED_PPAPI_BROKER_NO_ACTION}, | 350 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_BLOCKED_PPAPI_BROKER_NO_ACTION}, |
347 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_BLOCKED_DOWNLOAD_NO_ACTION}, | 351 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_BLOCKED_DOWNLOAD_NO_ACTION}, |
348 }; | 352 }; |
349 static const ContentSettingsTypeIdEntry kAllowedBlockIDs[] = { | 353 static const ContentSettingsTypeIdEntry kAllowedBlockIDs[] = { |
350 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_ALLOWED_COOKIES_BLOCK}, | 354 {CONTENT_SETTINGS_TYPE_COOKIES, IDS_ALLOWED_COOKIES_BLOCK}, |
351 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_BLOCK}, | 355 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, IDS_ALLOWED_PPAPI_BROKER_BLOCK}, |
352 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_ALLOWED_DOWNLOAD_BLOCK}, | 356 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, IDS_ALLOWED_DOWNLOAD_BLOCK}, |
353 }; | 357 }; |
(...skipping 1025 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1379 if (type == content::NOTIFICATION_WEB_CONTENTS_DESTROYED) { | 1383 if (type == content::NOTIFICATION_WEB_CONTENTS_DESTROYED) { |
1380 DCHECK_EQ(web_contents_, | 1384 DCHECK_EQ(web_contents_, |
1381 content::Source<WebContents>(source).ptr()); | 1385 content::Source<WebContents>(source).ptr()); |
1382 web_contents_ = NULL; | 1386 web_contents_ = NULL; |
1383 } else { | 1387 } else { |
1384 DCHECK_EQ(chrome::NOTIFICATION_PROFILE_DESTROYED, type); | 1388 DCHECK_EQ(chrome::NOTIFICATION_PROFILE_DESTROYED, type); |
1385 DCHECK_EQ(profile_, content::Source<Profile>(source).ptr()); | 1389 DCHECK_EQ(profile_, content::Source<Profile>(source).ptr()); |
1386 profile_ = NULL; | 1390 profile_ = NULL; |
1387 } | 1391 } |
1388 } | 1392 } |
OLD | NEW |