| 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_image_model.h" | 5 #include "chrome/browser/ui/content_settings/content_setting_image_model.h" |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" | 10 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 namespace { | 97 namespace { |
| 98 | 98 |
| 99 struct ContentSettingsImageDetails { | 99 struct ContentSettingsImageDetails { |
| 100 ContentSettingsType type; | 100 ContentSettingsType type; |
| 101 gfx::VectorIconId icon_id; | 101 gfx::VectorIconId icon_id; |
| 102 int blocked_tooltip_id; | 102 int blocked_tooltip_id; |
| 103 int blocked_explanatory_text_id; | 103 int blocked_explanatory_text_id; |
| 104 int accessed_tooltip_id; | 104 int accessed_tooltip_id; |
| 105 }; | 105 }; |
| 106 | 106 |
| 107 static const ContentSettingsImageDetails kImageDetails[] = { | 107 const ContentSettingsImageDetails kImageDetails[] = { |
| 108 {CONTENT_SETTINGS_TYPE_COOKIES, | 108 {CONTENT_SETTINGS_TYPE_COOKIES, gfx::VectorIconId::COOKIE, |
| 109 gfx::VectorIconId::COOKIE, | 109 IDS_BLOCKED_COOKIES_TITLE, 0, IDS_ACCESSED_COOKIES_TITLE}, |
| 110 IDS_BLOCKED_COOKIES_TITLE, | 110 {CONTENT_SETTINGS_TYPE_IMAGES, gfx::VectorIconId::IMAGE, |
| 111 0, | 111 IDS_BLOCKED_IMAGES_TITLE, 0, 0}, |
| 112 IDS_ACCESSED_COOKIES_TITLE}, | 112 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, gfx::VectorIconId::CODE, |
| 113 {CONTENT_SETTINGS_TYPE_IMAGES, | 113 IDS_BLOCKED_JAVASCRIPT_TITLE, 0, 0}, |
| 114 gfx::VectorIconId::IMAGE, | 114 {CONTENT_SETTINGS_TYPE_PLUGINS, gfx::VectorIconId::EXTENSION, |
| 115 IDS_BLOCKED_IMAGES_TITLE, | 115 IDS_BLOCKED_PLUGINS_MESSAGE, IDS_BLOCKED_PLUGIN_EXPLANATORY_TEXT, 0}, |
| 116 0, | 116 {CONTENT_SETTINGS_TYPE_POPUPS, gfx::VectorIconId::WEB, |
| 117 0}, | 117 IDS_BLOCKED_POPUPS_TOOLTIP, IDS_BLOCKED_POPUPS_EXPLANATORY_TEXT, 0}, |
| 118 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, | 118 {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, gfx::VectorIconId::MIXED_CONTENT, |
| 119 gfx::VectorIconId::CODE, | 119 IDS_BLOCKED_DISPLAYING_INSECURE_CONTENT, 0, 0}, |
| 120 IDS_BLOCKED_JAVASCRIPT_TITLE, | 120 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, gfx::VectorIconId::EXTENSION, |
| 121 0, | 121 IDS_BLOCKED_PPAPI_BROKER_TITLE, 0, IDS_ALLOWED_PPAPI_BROKER_TITLE}, |
| 122 0}, | |
| 123 {CONTENT_SETTINGS_TYPE_PLUGINS, | |
| 124 gfx::VectorIconId::EXTENSION, | |
| 125 IDS_BLOCKED_PLUGINS_MESSAGE, | |
| 126 IDS_BLOCKED_PLUGIN_EXPLANATORY_TEXT, | |
| 127 0}, | |
| 128 {CONTENT_SETTINGS_TYPE_POPUPS, | |
| 129 gfx::VectorIconId::WEB, | |
| 130 IDS_BLOCKED_POPUPS_TOOLTIP, | |
| 131 IDS_BLOCKED_POPUPS_EXPLANATORY_TEXT, | |
| 132 0}, | |
| 133 {CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, | |
| 134 gfx::VectorIconId::MIXED_CONTENT, | |
| 135 IDS_BLOCKED_DISPLAYING_INSECURE_CONTENT, | |
| 136 0, | |
| 137 0}, | |
| 138 {CONTENT_SETTINGS_TYPE_PPAPI_BROKER, | |
| 139 gfx::VectorIconId::EXTENSION, | |
| 140 IDS_BLOCKED_PPAPI_BROKER_TITLE, | |
| 141 0, | |
| 142 IDS_ALLOWED_PPAPI_BROKER_TITLE}, | |
| 143 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, | 122 {CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, |
| 144 gfx::VectorIconId::FILE_DOWNLOAD, | 123 gfx::VectorIconId::FILE_DOWNLOAD, IDS_BLOCKED_DOWNLOAD_TITLE, |
| 145 IDS_BLOCKED_DOWNLOAD_TITLE, | 124 IDS_BLOCKED_DOWNLOADS_EXPLANATION, IDS_ALLOWED_DOWNLOAD_TITLE}, |
| 146 IDS_BLOCKED_DOWNLOADS_EXPLANATION, | |
| 147 IDS_ALLOWED_DOWNLOAD_TITLE}, | |
| 148 }; | 125 }; |
| 149 | 126 |
| 150 const ContentSettingsImageDetails* GetImageDetails(ContentSettingsType type) { | 127 const ContentSettingsImageDetails* GetImageDetails(ContentSettingsType type) { |
| 151 for (const ContentSettingsImageDetails& image_details : kImageDetails) { | 128 for (const ContentSettingsImageDetails& image_details : kImageDetails) { |
| 152 if (image_details.type == type) | 129 if (image_details.type == type) |
| 153 return &image_details; | 130 return &image_details; |
| 154 } | 131 } |
| 155 return nullptr; | 132 return nullptr; |
| 156 } | 133 } |
| 157 | 134 |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 TabSpecificContentSettings::FromWebContents(web_contents); | 233 TabSpecificContentSettings::FromWebContents(web_contents); |
| 257 if (!content_settings) | 234 if (!content_settings) |
| 258 return; | 235 return; |
| 259 if (!content_settings->IsContentBlocked(type)) { | 236 if (!content_settings->IsContentBlocked(type)) { |
| 260 if (!content_settings->IsContentAllowed(type)) | 237 if (!content_settings->IsContentAllowed(type)) |
| 261 return; | 238 return; |
| 262 | 239 |
| 263 // For cookies, only show the cookie blocked page action if cookies are | 240 // For cookies, only show the cookie blocked page action if cookies are |
| 264 // blocked by default. | 241 // blocked by default. |
| 265 if (type == CONTENT_SETTINGS_TYPE_COOKIES && | 242 if (type == CONTENT_SETTINGS_TYPE_COOKIES && |
| 266 (map->GetDefaultContentSetting(type, NULL) != CONTENT_SETTING_BLOCK)) | 243 (map->GetDefaultContentSetting(type, nullptr) != CONTENT_SETTING_BLOCK)) |
| 267 return; | 244 return; |
| 268 | 245 |
| 269 tooltip_id = image_details->accessed_tooltip_id; | 246 tooltip_id = image_details->accessed_tooltip_id; |
| 270 explanation_id = 0; | 247 explanation_id = 0; |
| 271 } | 248 } |
| 272 set_visible(true); | 249 set_visible(true); |
| 273 gfx::VectorIconId badge_id = gfx::VectorIconId::VECTOR_ICON_NONE; | 250 gfx::VectorIconId badge_id = gfx::VectorIconId::VECTOR_ICON_NONE; |
| 274 if (type == CONTENT_SETTINGS_TYPE_PPAPI_BROKER) | 251 if (type == CONTENT_SETTINGS_TYPE_PPAPI_BROKER) |
| 275 badge_id = gfx::VectorIconId::WARNING_BADGE; | 252 badge_id = gfx::VectorIconId::WARNING_BADGE; |
| 276 else if (content_settings->IsContentBlocked(type)) | 253 else if (content_settings->IsContentBlocked(type)) |
| (...skipping 22 matching lines...) Expand all Loading... |
| 299 return; | 276 return; |
| 300 const ContentSettingsUsagesState& usages_state = content_settings-> | 277 const ContentSettingsUsagesState& usages_state = content_settings-> |
| 301 geolocation_usages_state(); | 278 geolocation_usages_state(); |
| 302 if (usages_state.state_map().empty()) | 279 if (usages_state.state_map().empty()) |
| 303 return; | 280 return; |
| 304 set_visible(true); | 281 set_visible(true); |
| 305 | 282 |
| 306 // If any embedded site has access the allowed icon takes priority over the | 283 // If any embedded site has access the allowed icon takes priority over the |
| 307 // blocked icon. | 284 // blocked icon. |
| 308 unsigned int state_flags = 0; | 285 unsigned int state_flags = 0; |
| 309 usages_state.GetDetailedInfo(NULL, &state_flags); | 286 usages_state.GetDetailedInfo(nullptr, &state_flags); |
| 310 bool allowed = | 287 bool allowed = |
| 311 !!(state_flags & ContentSettingsUsagesState::TABSTATE_HAS_ANY_ALLOWED); | 288 !!(state_flags & ContentSettingsUsagesState::TABSTATE_HAS_ANY_ALLOWED); |
| 312 set_icon_by_vector_id(gfx::VectorIconId::MY_LOCATION, | 289 set_icon_by_vector_id(gfx::VectorIconId::MY_LOCATION, |
| 313 allowed ? gfx::VectorIconId::VECTOR_ICON_NONE | 290 allowed ? gfx::VectorIconId::VECTOR_ICON_NONE |
| 314 : gfx::VectorIconId::BLOCKED_BADGE); | 291 : gfx::VectorIconId::BLOCKED_BADGE); |
| 315 set_tooltip(l10n_util::GetStringUTF16(allowed | 292 set_tooltip(l10n_util::GetStringUTF16(allowed |
| 316 ? IDS_GEOLOCATION_ALLOWED_TOOLTIP | 293 ? IDS_GEOLOCATION_ALLOWED_TOOLTIP |
| 317 : IDS_GEOLOCATION_BLOCKED_TOOLTIP)); | 294 : IDS_GEOLOCATION_BLOCKED_TOOLTIP)); |
| 318 } | 295 } |
| 319 | 296 |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 497 return; | 474 return; |
| 498 const ContentSettingsUsagesState& usages_state = | 475 const ContentSettingsUsagesState& usages_state = |
| 499 content_settings->midi_usages_state(); | 476 content_settings->midi_usages_state(); |
| 500 if (usages_state.state_map().empty()) | 477 if (usages_state.state_map().empty()) |
| 501 return; | 478 return; |
| 502 set_visible(true); | 479 set_visible(true); |
| 503 | 480 |
| 504 // If any embedded site has access the allowed icon takes priority over the | 481 // If any embedded site has access the allowed icon takes priority over the |
| 505 // blocked icon. | 482 // blocked icon. |
| 506 unsigned int state_flags = 0; | 483 unsigned int state_flags = 0; |
| 507 usages_state.GetDetailedInfo(NULL, &state_flags); | 484 usages_state.GetDetailedInfo(nullptr, &state_flags); |
| 508 bool allowed = | 485 bool allowed = |
| 509 !!(state_flags & ContentSettingsUsagesState::TABSTATE_HAS_ANY_ALLOWED); | 486 !!(state_flags & ContentSettingsUsagesState::TABSTATE_HAS_ANY_ALLOWED); |
| 510 set_icon_by_vector_id(gfx::VectorIconId::MIDI, | 487 set_icon_by_vector_id(gfx::VectorIconId::MIDI, |
| 511 allowed ? gfx::VectorIconId::VECTOR_ICON_NONE | 488 allowed ? gfx::VectorIconId::VECTOR_ICON_NONE |
| 512 : gfx::VectorIconId::BLOCKED_BADGE); | 489 : gfx::VectorIconId::BLOCKED_BADGE); |
| 513 set_tooltip(l10n_util::GetStringUTF16(allowed | 490 set_tooltip(l10n_util::GetStringUTF16(allowed |
| 514 ? IDS_MIDI_SYSEX_ALLOWED_TOOLTIP | 491 ? IDS_MIDI_SYSEX_ALLOWED_TOOLTIP |
| 515 : IDS_MIDI_SYSEX_BLOCKED_TOOLTIP)); | 492 : IDS_MIDI_SYSEX_BLOCKED_TOOLTIP)); |
| 516 } | 493 } |
| 517 | 494 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 | 546 |
| 570 #if defined(OS_MACOSX) | 547 #if defined(OS_MACOSX) |
| 571 bool ContentSettingImageModel::UpdateFromWebContentsAndCheckIfIconChanged( | 548 bool ContentSettingImageModel::UpdateFromWebContentsAndCheckIfIconChanged( |
| 572 content::WebContents* web_contents) { | 549 content::WebContents* web_contents) { |
| 573 gfx::VectorIconId old_icon = icon_id_; | 550 gfx::VectorIconId old_icon = icon_id_; |
| 574 gfx::VectorIconId old_badge_icon = icon_badge_id_; | 551 gfx::VectorIconId old_badge_icon = icon_badge_id_; |
| 575 UpdateFromWebContents(web_contents); | 552 UpdateFromWebContents(web_contents); |
| 576 return old_icon != icon_id_ && old_badge_icon != icon_badge_id_; | 553 return old_icon != icon_id_ && old_badge_icon != icon_badge_id_; |
| 577 } | 554 } |
| 578 #endif | 555 #endif |
| OLD | NEW |