| 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 |