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

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: Merged in suggestions from reviewers 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..9d38226fed8846b415f4cb9b9405b1b9ee0094c3 100644
--- a/chrome/browser/ui/content_settings/content_setting_image_model.cc
+++ b/chrome/browser/ui/content_settings/content_setting_image_model.cc
@@ -92,7 +92,6 @@ class ContentSettingMIDISysExImageModel
ContentSettingMIDISysExImageModel();
void UpdateFromWebContents(WebContents* web_contents) override;
-
private:
DISALLOW_COPY_AND_ASSIGN(ContentSettingMIDISysExImageModel);
};
@@ -521,39 +520,72 @@ ContentSettingImageModel::ContentSettingImageModel()
icon_badge_id_(gfx::VectorIconId::VECTOR_ICON_NONE),
explanatory_string_id_(0) {}
+// The ordering of the models here influences the order in which icons are
+// shown in the omnibox.
+static constexpr ContentSettingsType content_types[] = {
tapted 2017/02/07 01:23:31 nit: Might be your C roots showing again ;). It's
Peter Kasting 2017/02/07 01:34:06 Don't generalize too hard -- see e.g. https://grou
+ 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,
+ CONTENT_SETTINGS_TYPE_DEFAULT,
tapted 2017/02/07 01:23:31 This at least needs a comment, but.. although I us
kylix_rd 2017/02/07 18:25:21 I started down this path, but it's going to requir
+ CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS,
+ CONTENT_SETTINGS_TYPE_MIDI_SYSEX,
+};
+
// static
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>());
-
+ for (auto content_type : content_types) {
tapted 2017/02/07 01:23:31 (with the above, my preference would be auto -> in
+ switch (content_type) {
+ case CONTENT_SETTINGS_TYPE_GEOLOCATION:
+ result.push_back(
+ base::MakeUnique<ContentSettingGeolocationImageModel>());
+ break;
+ case CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS:
+ result.push_back(base::MakeUnique<ContentSettingRPHImageModel>());
+ break;
+ case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC:
+ result.push_back(base::MakeUnique<ContentSettingMediaImageModel>());
+ break;
+ case CONTENT_SETTINGS_TYPE_DEFAULT:
+ result.push_back(
+ base::MakeUnique<ContentSettingSubresourceFilterImageModel>());
+ break;
+ case CONTENT_SETTINGS_TYPE_MIDI_SYSEX:
+ result.push_back(base::MakeUnique<ContentSettingMIDISysExImageModel>());
+ break;
+ default:
+ result.push_back(
tapted 2017/02/07 01:23:31 Comment here, e.g. // All other content settings
kylix_rd 2017/02/07 18:25:21 Done.
+ base::MakeUnique<ContentSettingBlockedImageModel>(content_type));
+ break;
+ }
+ }
return result;
}
+// static
+size_t ContentSettingImageModel::GetContentSettingImageModelIndexForTesting(
tapted 2017/02/07 01:23:31 I would actually just expose kContentTypeIconOrder
kylix_rd 2017/02/07 18:25:21 Hmmm... I think keeping it internal and private is
tapted 2017/02/08 00:31:49 Although this is likely true, I've never seen it u
+ ContentSettingsType content_type) {
+ size_t result = 0;
+ if (content_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)
+ content_type = CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC;
+ for (size_t i = 0; i < ARRAYSIZE(content_types); ++i) {
+ if (content_type == content_types[i])
+ return result;
+ ++result;
+ }
+ NOTREACHED();
+ return ARRAYSIZE(content_types);
tapted 2017/02/07 01:23:31 ARRAYSIZE -> arraysize (I'm not sure where ARRAYSI
kylix_rd 2017/02/07 18:25:21 Done.
+}
+
#if defined(OS_MACOSX)
bool ContentSettingImageModel::UpdateFromWebContentsAndCheckIfIconChanged(
content::WebContents* web_contents) {

Powered by Google App Engine
This is Rietveld 408576698