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

Unified Diff: chrome/browser/ui/content_settings/content_setting_image_model.cc

Issue 2668833003: DialogBrowserTest implementation to invoke Content settings bubble dialogs. (Closed)
Patch Set: Fixed nits and added enum element per recommendation. Created 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/content_settings/content_setting_image_model.cc
diff --git a/chrome/browser/ui/content_settings/content_setting_image_model.cc b/chrome/browser/ui/content_settings/content_setting_image_model.cc
index 1bef3be8a1f4d1faa43c6f0c1379345e4de734e6..9660d390c995a27edde09ffdf7c0dc94690ee09c 100644
--- a/chrome/browser/ui/content_settings/content_setting_image_model.cc
+++ b/chrome/browser/ui/content_settings/content_setting_image_model.cc
@@ -127,6 +127,24 @@ const ContentSettingsImageDetails kImageDetails[] = {
IDS_BLOCKED_DOWNLOADS_EXPLANATION, IDS_ALLOWED_DOWNLOAD_TITLE},
};
+// The ordering of the models here influences the order in which icons are
+// shown in the omnibox.
+constexpr ContentSettingsType kContentTypeIconOrder[] = {
+ CONTENT_SETTINGS_TYPE_COOKIES,
+ CONTENT_SETTINGS_TYPE_IMAGES,
+ CONTENT_SETTINGS_TYPE_JAVASCRIPT,
+ CONTENT_SETTINGS_TYPE_PPAPI_BROKER,
+ CONTENT_SETTINGS_TYPE_PLUGINS,
+ CONTENT_SETTINGS_TYPE_POPUPS,
+ CONTENT_SETTINGS_TYPE_GEOLOCATION,
+ CONTENT_SETTINGS_TYPE_MIXEDSCRIPT,
+ CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS,
+ CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, // Note: also does camera.
Peter Kasting 2017/02/13 23:10:50 Tiny nit: Since the actual icon this currently use
kylix_rd 2017/02/14 15:20:43 Done.
+ CONTENT_SETTINGS_TYPE_DECEPTIVE_CONTENT,
+ CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS,
+ CONTENT_SETTINGS_TYPE_MIDI_SYSEX,
+};
+
const ContentSettingsImageDetails* GetImageDetails(ContentSettingsType type) {
for (const ContentSettingsImageDetails& image_details : kImageDetails) {
if (image_details.type == type)
@@ -525,35 +543,47 @@ ContentSettingImageModel::ContentSettingImageModel()
std::vector<std::unique_ptr<ContentSettingImageModel>>
ContentSettingImageModel::GenerateContentSettingImageModels() {
std::vector<std::unique_ptr<ContentSettingImageModel>> result;
-
- // The ordering of the models here influences the order in which icons are
- // shown in the omnibox.
- result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>(
- CONTENT_SETTINGS_TYPE_COOKIES));
- result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>(
- CONTENT_SETTINGS_TYPE_IMAGES));
- result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>(
- CONTENT_SETTINGS_TYPE_JAVASCRIPT));
- result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>(
- CONTENT_SETTINGS_TYPE_PPAPI_BROKER));
- result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>(
- CONTENT_SETTINGS_TYPE_PLUGINS));
- result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>(
- CONTENT_SETTINGS_TYPE_POPUPS));
- result.push_back(base::MakeUnique<ContentSettingGeolocationImageModel>());
- result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>(
- CONTENT_SETTINGS_TYPE_MIXEDSCRIPT));
- result.push_back(base::MakeUnique<ContentSettingRPHImageModel>());
- result.push_back(base::MakeUnique<ContentSettingMediaImageModel>());
- result.push_back(
- base::MakeUnique<ContentSettingSubresourceFilterImageModel>());
- result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>(
- CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS));
- result.push_back(base::MakeUnique<ContentSettingMIDISysExImageModel>());
-
+ std::unique_ptr<ContentSettingImageModel> model;
+
+ for (auto icon : kContentTypeIconOrder) {
+ switch (icon) {
+ case CONTENT_SETTINGS_TYPE_GEOLOCATION:
+ model = base::MakeUnique<ContentSettingGeolocationImageModel>();
+ break;
+ case CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS:
+ model = base::MakeUnique<ContentSettingRPHImageModel>();
+ break;
+ case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC:
+ model = base::MakeUnique<ContentSettingMediaImageModel>();
+ break;
+ case CONTENT_SETTINGS_TYPE_DECEPTIVE_CONTENT:
+ model = base::MakeUnique<ContentSettingSubresourceFilterImageModel>();
+ break;
+ case CONTENT_SETTINGS_TYPE_MIDI_SYSEX:
+ model = base::MakeUnique<ContentSettingMIDISysExImageModel>();
+ break;
+ default:
+ // All other content settings types use ContentSettingBlockedImageModel.
+ model = base::MakeUnique<ContentSettingBlockedImageModel>(icon);
+ break;
+ }
+ result.push_back(std::move(model));
+ }
return result;
}
+// static
+size_t ContentSettingImageModel::GetContentSettingImageModelIndexForTesting(
+ ContentSettingsType content_type) {
+ if (content_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)
+ content_type = CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC;
+ for (size_t i = 0; i < arraysize(kContentTypeIconOrder); ++i)
Peter Kasting 2017/02/13 23:10:50 Nit: {} since body is more than one physical line
kylix_rd 2017/02/14 15:20:43 Done.
+ if (content_type == kContentTypeIconOrder[i])
+ return i;
+ NOTREACHED();
+ return arraysize(kContentTypeIconOrder);
+}
+
#if defined(OS_MACOSX)
bool ContentSettingImageModel::UpdateFromWebContentsAndCheckIfIconChanged(
content::WebContents* web_contents) {
« no previous file with comments | « chrome/browser/ui/content_settings/content_setting_image_model.h ('k') | chrome/browser/ui/location_bar/location_bar.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698