summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc7
-rw-r--r--chromium/components/browsing_data/core/browsing_data_utils.cc9
-rw-r--r--chromium/components/browsing_data/core/browsing_data_utils.h4
3 files changed, 13 insertions, 7 deletions
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
index b1bc8a1447a..324e8d7439e 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
@@ -258,11 +258,12 @@ void ClearBrowsingDataHandler::HandleClearBrowsingData(
base::Value::ConstListView data_type_list = args_list[1].GetListDeprecated();
for (const base::Value& type : data_type_list) {
const std::string pref_name = type.GetString();
- BrowsingDataType data_type =
+ absl::optional<BrowsingDataType> data_type =
browsing_data::GetDataTypeFromDeletionPreference(pref_name);
- data_type_vector.push_back(data_type);
+ CHECK(data_type);
+ data_type_vector.push_back(*data_type);
- switch (data_type) {
+ switch (*data_type) {
case BrowsingDataType::HISTORY:
if (prefs->GetBoolean(prefs::kAllowDeletingBrowserHistory))
remove_mask |= chrome_browsing_data_remover::DATA_TYPE_HISTORY;
diff --git a/chromium/components/browsing_data/core/browsing_data_utils.cc b/chromium/components/browsing_data/core/browsing_data_utils.cc
index c6fdb552bdf..5e91ab5b32d 100644
--- a/chromium/components/browsing_data/core/browsing_data_utils.cc
+++ b/chromium/components/browsing_data/core/browsing_data_utils.cc
@@ -17,6 +17,7 @@
#include "components/browsing_data/core/pref_names.h"
#include "components/prefs/pref_service.h"
#include "components/strings/grit/components_strings.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
#include "ui/base/l10n/l10n_util.h"
namespace browsing_data {
@@ -362,7 +363,7 @@ bool GetDeletionPreferenceFromDataType(
return false;
}
-BrowsingDataType GetDataTypeFromDeletionPreference(
+absl::optional<BrowsingDataType> GetDataTypeFromDeletionPreference(
const std::string& pref_name) {
using DataTypeMap = base::flat_map<std::string, BrowsingDataType>;
static base::NoDestructor<DataTypeMap> preference_to_datatype(
@@ -381,8 +382,10 @@ BrowsingDataType GetDataTypeFromDeletionPreference(
});
auto iter = preference_to_datatype->find(pref_name);
- DCHECK(iter != preference_to_datatype->end());
- return iter->second;
+ if (iter != preference_to_datatype->end()) {
+ return iter->second;
+ }
+ return absl::nullopt;
}
} // namespace browsing_data
diff --git a/chromium/components/browsing_data/core/browsing_data_utils.h b/chromium/components/browsing_data/core/browsing_data_utils.h
index 209d9601294..9bc3f2b55cb 100644
--- a/chromium/components/browsing_data/core/browsing_data_utils.h
+++ b/chromium/components/browsing_data/core/browsing_data_utils.h
@@ -11,6 +11,7 @@
#include "build/build_config.h"
#include "components/browsing_data/core/clear_browsing_data_tab.h"
#include "components/browsing_data/core/counters/browsing_data_counter.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
namespace browsing_data {
@@ -76,7 +77,8 @@ bool GetDeletionPreferenceFromDataType(
ClearBrowsingDataTab clear_browsing_data_tab,
std::string* out_pref);
-BrowsingDataType GetDataTypeFromDeletionPreference(
+// Returns a BrowsingDataType if a type matching |pref_name| is found.
+absl::optional<BrowsingDataType> GetDataTypeFromDeletionPreference(
const std::string& pref_name);
} // namespace browsing_data