ContentSettings: Turn DCHECK into CHECK when type is not registered
We are currently crashing with NOTREACHED in DefaultProvider when a
setting is not registered properly. Instead we should crash earlier
to make it clear that there is a problem with the registry entry.
Bug: 358687154
Change-Id: I98a3bce70b755d5c9fc30cd9895568d2c0ab05be
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5797361
Auto-Submit: Christian Dullweber <dullweber@chromium.org>
Reviewed-by: Martin Šrámek <msramek@chromium.org>
Commit-Queue: Martin Šrámek <msramek@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1344704}
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
index 210a4fca..4b66809 100644
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
@@ -418,7 +418,7 @@
const GURL& secondary_url,
ContentSettingsType content_type,
content_settings::SettingInfo* info) const {
- DCHECK(content_settings::ContentSettingsRegistry::GetInstance()->Get(
+ CHECK(content_settings::ContentSettingsRegistry::GetInstance()->Get(
content_type));
const base::Value value =
GetWebsiteSetting(primary_url, secondary_url, content_type, info);
@@ -429,7 +429,7 @@
const GURL& primary_url,
const GURL& secondary_url,
ContentSettingsType content_type) const {
- DCHECK(content_settings::ContentSettingsRegistry::GetInstance()->Get(
+ CHECK(content_settings::ContentSettingsRegistry::GetInstance()->Get(
content_type));
const base::Value value =
GetWebsiteSettingInternal(primary_url, secondary_url, content_type,
@@ -541,7 +541,7 @@
ContentSettingsType type) const {
const ContentSettingsInfo* content_settings_info =
content_settings::ContentSettingsRegistry::GetInstance()->Get(type);
- DCHECK(content_settings_info);
+ CHECK(content_settings_info);
return content_settings_info->origin_restriction() ==
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY;
@@ -608,7 +608,7 @@
ContentSettingsType type) {
const WebsiteSettingsInfo* website_settings_info =
content_settings::WebsiteSettingsRegistry::GetInstance()->Get(type);
- DCHECK(website_settings_info);
+ CHECK(website_settings_info);
content_settings::PatternPair patterns = GetPatternsFromScopingType(
website_settings_info->scoping_type(), primary_url, secondary_url);
return patterns;
@@ -620,7 +620,7 @@
ContentSettingsType content_type,
ContentSetting setting,
const content_settings::ContentSettingConstraints& constraints) {
- DCHECK(content_settings::ContentSettingsRegistry::GetInstance()->Get(
+ CHECK(content_settings::ContentSettingsRegistry::GetInstance()->Get(
content_type));
base::Value value;
@@ -702,7 +702,7 @@
// For some ContentSettingTypes, collect exception histograms broken out by
// ContentSetting.
if (ShouldCollectFineGrainedExceptionHistograms(content_type)) {
- DCHECK(content_info);
+ CHECK(content_info);
for (int setting = 0; setting < CONTENT_SETTING_NUM_SETTINGS; ++setting) {
ContentSetting content_setting = IntToContentSetting(setting);
if (!content_info->IsSettingValid(content_setting))
@@ -996,6 +996,9 @@
const GURL& secondary_url,
ContentSettingsType content_type,
content_settings::SettingInfo* info) const {
+ CHECK(content_settings::WebsiteSettingsRegistry::GetInstance()->Get(
+ content_type));
+
// Check if the requested setting is allowlisted.
// TODO(raymes): Move this into GetContentSetting. This has nothing to do with
// website settings