| 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 "chrome/browser/content_settings/tab_specific_content_settings.h" | 7 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
| 8 #include "chrome/browser/prerender/prerender_manager.h" | 8 #include "chrome/browser/prerender/prerender_manager.h" |
| 9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
| 10 #include "chrome/grit/generated_resources.h" | 10 #include "chrome/grit/generated_resources.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 namespace { | 27 namespace { |
| 28 | 28 |
| 29 bool UseVectorGraphics() { | 29 bool UseVectorGraphics() { |
| 30 #if defined(OS_MACOSX) | 30 #if defined(OS_MACOSX) |
| 31 return false; | 31 return false; |
| 32 #else | 32 #else |
| 33 return ui::MaterialDesignController::IsModeMaterial(); | 33 return ui::MaterialDesignController::IsModeMaterial(); |
| 34 #endif | 34 #endif |
| 35 } | 35 } |
| 36 | 36 |
| 37 #if !defined(OS_MACOSX) |
| 38 // Gets a vector icon badged with |badge|. |
| 39 gfx::Image GetIcon(gfx::VectorIconId id, gfx::VectorIconId badge) { |
| 40 SkColor icon_color; |
| 41 ui::CommonThemeGetSystemColor(ui::NativeTheme::kColorId_ChromeIconGrey, |
| 42 &icon_color); |
| 43 return gfx::Image(gfx::CreateVectorIconWithBadge(id, 16, icon_color, badge)); |
| 44 } |
| 45 #endif |
| 46 |
| 37 } // namespace | 47 } // namespace |
| 38 | 48 |
| 39 class ContentSettingBlockedImageModel : public ContentSettingImageModel { | 49 class ContentSettingBlockedImageModel : public ContentSettingImageModel { |
| 40 public: | 50 public: |
| 41 explicit ContentSettingBlockedImageModel( | 51 explicit ContentSettingBlockedImageModel( |
| 42 ContentSettingsType content_settings_type); | 52 ContentSettingsType content_settings_type); |
| 43 | 53 |
| 44 void UpdateFromWebContents(WebContents* web_contents) override; | 54 void UpdateFromWebContents(WebContents* web_contents) override; |
| 45 }; | 55 }; |
| 46 | 56 |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 break; | 148 break; |
| 139 case CONTENT_SETTINGS_TYPE_PLUGINS: | 149 case CONTENT_SETTINGS_TYPE_PLUGINS: |
| 140 vector_icon_id = gfx::VectorIconId::EXTENSION; | 150 vector_icon_id = gfx::VectorIconId::EXTENSION; |
| 141 break; | 151 break; |
| 142 case CONTENT_SETTINGS_TYPE_POPUPS: | 152 case CONTENT_SETTINGS_TYPE_POPUPS: |
| 143 vector_icon_id = gfx::VectorIconId::WEB; | 153 vector_icon_id = gfx::VectorIconId::WEB; |
| 144 break; | 154 break; |
| 145 case CONTENT_SETTINGS_TYPE_MIXEDSCRIPT: | 155 case CONTENT_SETTINGS_TYPE_MIXEDSCRIPT: |
| 146 vector_icon_id = gfx::VectorIconId::MIXED_CONTENT; | 156 vector_icon_id = gfx::VectorIconId::MIXED_CONTENT; |
| 147 break; | 157 break; |
| 148 // TODO(estade): change this one? | |
| 149 case CONTENT_SETTINGS_TYPE_PPAPI_BROKER: | 158 case CONTENT_SETTINGS_TYPE_PPAPI_BROKER: |
| 150 vector_icon_id = gfx::VectorIconId::EXTENSION; | 159 vector_icon_id = gfx::VectorIconId::EXTENSION; |
| 151 break; | 160 break; |
| 152 case CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS: | 161 case CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS: |
| 153 vector_icon_id = gfx::VectorIconId::FILE_DOWNLOAD; | 162 vector_icon_id = gfx::VectorIconId::FILE_DOWNLOAD; |
| 154 break; | 163 break; |
| 155 default: | 164 default: |
| 156 // If we didn't find a vector icon ID we shouldn't have found an | 165 // If we didn't find a vector icon ID we shouldn't have found an |
| 157 // asset ID either. | 166 // asset ID either. |
| 158 DCHECK_EQ(0, icon_id); | 167 DCHECK_EQ(0, icon_id); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 kAccessedTooltipIDs, arraysize(kAccessedTooltipIDs), type); | 237 kAccessedTooltipIDs, arraysize(kAccessedTooltipIDs), type); |
| 229 explanation_id = 0; | 238 explanation_id = 0; |
| 230 } | 239 } |
| 231 set_visible(true); | 240 set_visible(true); |
| 232 if (!UseVectorGraphics()) { | 241 if (!UseVectorGraphics()) { |
| 233 DCHECK(icon_id); | 242 DCHECK(icon_id); |
| 234 SetIconByResourceId(icon_id); | 243 SetIconByResourceId(icon_id); |
| 235 #if !defined(OS_MACOSX) | 244 #if !defined(OS_MACOSX) |
| 236 } else { | 245 } else { |
| 237 DCHECK(gfx::VectorIconId::VECTOR_ICON_NONE != vector_icon_id); | 246 DCHECK(gfx::VectorIconId::VECTOR_ICON_NONE != vector_icon_id); |
| 238 SetIconByVectorId(vector_icon_id, content_settings->IsContentBlocked(type)); | 247 |
| 248 if (type == CONTENT_SETTINGS_TYPE_PPAPI_BROKER) { |
| 249 set_icon(GetIcon(vector_icon_id, gfx::VectorIconId::WARNING_BADGE)); |
| 250 } else { |
| 251 SetIconByVectorId(vector_icon_id, |
| 252 content_settings->IsContentBlocked(type)); |
| 253 } |
| 239 #endif | 254 #endif |
| 240 } | 255 } |
| 241 set_explanatory_string_id(explanation_id); | 256 set_explanatory_string_id(explanation_id); |
| 242 DCHECK(tooltip_id); | 257 DCHECK(tooltip_id); |
| 243 set_tooltip(l10n_util::GetStringUTF8(tooltip_id)); | 258 set_tooltip(l10n_util::GetStringUTF8(tooltip_id)); |
| 244 } | 259 } |
| 245 | 260 |
| 246 ContentSettingGeolocationImageModel::ContentSettingGeolocationImageModel() | 261 ContentSettingGeolocationImageModel::ContentSettingGeolocationImageModel() |
| 247 : ContentSettingImageModel(CONTENT_SETTINGS_TYPE_GEOLOCATION) { | 262 : ContentSettingImageModel(CONTENT_SETTINGS_TYPE_GEOLOCATION) { |
| 248 } | 263 } |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 453 } | 468 } |
| 454 | 469 |
| 455 void ContentSettingImageModel::SetIconByResourceId(int id) { | 470 void ContentSettingImageModel::SetIconByResourceId(int id) { |
| 456 icon_id_ = id; | 471 icon_id_ = id; |
| 457 icon_ = ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed(id); | 472 icon_ = ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed(id); |
| 458 } | 473 } |
| 459 | 474 |
| 460 #if !defined(OS_MACOSX) | 475 #if !defined(OS_MACOSX) |
| 461 void ContentSettingImageModel::SetIconByVectorId(gfx::VectorIconId id, | 476 void ContentSettingImageModel::SetIconByVectorId(gfx::VectorIconId id, |
| 462 bool blocked) { | 477 bool blocked) { |
| 463 SkColor icon_color; | 478 icon_ = GetIcon(id, blocked ? gfx::VectorIconId::BLOCKED_BADGE |
| 464 ui::CommonThemeGetSystemColor(ui::NativeTheme::kColorId_ChromeIconGrey, | 479 : gfx::VectorIconId::VECTOR_ICON_NONE); |
| 465 &icon_color); | |
| 466 icon_ = gfx::Image(gfx::CreateVectorIconWithBadge( | |
| 467 id, 16, icon_color, blocked ? gfx::VectorIconId::BLOCKED_BADGE | |
| 468 : gfx::VectorIconId::VECTOR_ICON_NONE)); | |
| 469 } | 480 } |
| 470 #endif | 481 #endif |
| OLD | NEW |