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

Unified Diff: chrome/browser/extensions/api/downloads/downloads_api.cc

Issue 2829163004: Remove uses of base::hash_map from //chrome (Closed)
Patch Set: Downloads back Created 3 years, 6 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/extensions/api/downloads/downloads_api.cc
diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/browser/extensions/api/downloads/downloads_api.cc
index 085fd949f699cdc3a849d48d03ad965641378e60..7098da6777a8377b816be5ab1b3ce27a86655efd 100644
--- a/chrome/browser/extensions/api/downloads/downloads_api.cc
+++ b/chrome/browser/extensions/api/downloads/downloads_api.cc
@@ -14,6 +14,7 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/callback.h"
+#include "base/containers/flat_map.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/json/json_writer.h"
@@ -362,49 +363,69 @@ IconLoader::IconSize IconLoaderSizeFromPixelSize(int pixel_size) {
}
}
-typedef base::hash_map<std::string, DownloadQuery::FilterType> FilterTypeMap;
+using FilterTypeMap = base::flat_map<std::string, DownloadQuery::FilterType>;
+void AppendFilter(const char* name,
+ DownloadQuery::FilterType type,
+ std::vector<FilterTypeMap::value_type>* v) {
+ v->emplace_back(name, type);
+}
void InitFilterTypeMap(FilterTypeMap* filter_types_ptr) {
- FilterTypeMap& filter_types = *filter_types_ptr;
- filter_types[kBytesReceivedKey] = DownloadQuery::FILTER_BYTES_RECEIVED;
- filter_types[kExistsKey] = DownloadQuery::FILTER_EXISTS;
- filter_types[kFilenameKey] = DownloadQuery::FILTER_FILENAME;
- filter_types[kFilenameRegexKey] = DownloadQuery::FILTER_FILENAME_REGEX;
- filter_types[kMimeKey] = DownloadQuery::FILTER_MIME;
- filter_types[kPausedKey] = DownloadQuery::FILTER_PAUSED;
- filter_types[kQueryKey] = DownloadQuery::FILTER_QUERY;
- filter_types[kEndedAfterKey] = DownloadQuery::FILTER_ENDED_AFTER;
- filter_types[kEndedBeforeKey] = DownloadQuery::FILTER_ENDED_BEFORE;
- filter_types[kEndTimeKey] = DownloadQuery::FILTER_END_TIME;
- filter_types[kStartedAfterKey] = DownloadQuery::FILTER_STARTED_AFTER;
- filter_types[kStartedBeforeKey] = DownloadQuery::FILTER_STARTED_BEFORE;
- filter_types[kStartTimeKey] = DownloadQuery::FILTER_START_TIME;
- filter_types[kTotalBytesKey] = DownloadQuery::FILTER_TOTAL_BYTES;
- filter_types[kTotalBytesGreaterKey] =
- DownloadQuery::FILTER_TOTAL_BYTES_GREATER;
- filter_types[kTotalBytesLessKey] = DownloadQuery::FILTER_TOTAL_BYTES_LESS;
- filter_types[kUrlKey] = DownloadQuery::FILTER_ORIGINAL_URL;
- filter_types[kUrlRegexKey] = DownloadQuery::FILTER_ORIGINAL_URL_REGEX;
- filter_types[kFinalUrlKey] = DownloadQuery::FILTER_URL;
- filter_types[kFinalUrlRegexKey] = DownloadQuery::FILTER_URL_REGEX;
-}
-
-typedef base::hash_map<std::string, DownloadQuery::SortType> SortTypeMap;
+ // Initialize the map in one shot by storing to a vector and assigning.
+ std::vector<FilterTypeMap::value_type> v;
+
+ AppendFilter(kBytesReceivedKey, DownloadQuery::FILTER_BYTES_RECEIVED, &v);
+
+ AppendFilter(kBytesReceivedKey, DownloadQuery::FILTER_BYTES_RECEIVED, &v);
+ AppendFilter(kExistsKey, DownloadQuery::FILTER_EXISTS, &v);
+ AppendFilter(kFilenameKey, DownloadQuery::FILTER_FILENAME, &v);
+ AppendFilter(kFilenameRegexKey, DownloadQuery::FILTER_FILENAME_REGEX, &v);
+ AppendFilter(kMimeKey, DownloadQuery::FILTER_MIME, &v);
+ AppendFilter(kPausedKey, DownloadQuery::FILTER_PAUSED, &v);
+ AppendFilter(kQueryKey, DownloadQuery::FILTER_QUERY, &v);
+ AppendFilter(kEndedAfterKey, DownloadQuery::FILTER_ENDED_AFTER, &v);
+ AppendFilter(kEndedBeforeKey, DownloadQuery::FILTER_ENDED_BEFORE, &v);
+ AppendFilter(kEndTimeKey, DownloadQuery::FILTER_END_TIME, &v);
+ AppendFilter(kStartedAfterKey, DownloadQuery::FILTER_STARTED_AFTER, &v);
+ AppendFilter(kStartedBeforeKey, DownloadQuery::FILTER_STARTED_BEFORE, &v);
+ AppendFilter(kStartTimeKey, DownloadQuery::FILTER_START_TIME, &v);
+ AppendFilter(kTotalBytesKey, DownloadQuery::FILTER_TOTAL_BYTES, &v);
+ AppendFilter(kTotalBytesGreaterKey, DownloadQuery::FILTER_TOTAL_BYTES_GREATER,
+ &v);
+ AppendFilter(kTotalBytesLessKey, DownloadQuery::FILTER_TOTAL_BYTES_LESS, &v);
+ AppendFilter(kUrlKey, DownloadQuery::FILTER_ORIGINAL_URL, &v);
+ AppendFilter(kUrlRegexKey, DownloadQuery::FILTER_ORIGINAL_URL_REGEX, &v);
+ AppendFilter(kFinalUrlKey, DownloadQuery::FILTER_URL, &v);
+ AppendFilter(kFinalUrlRegexKey, DownloadQuery::FILTER_URL_REGEX, &v);
+
+ *filter_types_ptr = FilterTypeMap(std::move(v), base::KEEP_FIRST_OF_DUPES);
+}
+
+using SortTypeMap = base::flat_map<std::string, DownloadQuery::SortType>;
+void AppendFilter(const char* name,
+ DownloadQuery::SortType type,
+ std::vector<SortTypeMap::value_type>* v) {
+ v->emplace_back(name, type);
+}
void InitSortTypeMap(SortTypeMap* sorter_types_ptr) {
- SortTypeMap& sorter_types = *sorter_types_ptr;
- sorter_types[kBytesReceivedKey] = DownloadQuery::SORT_BYTES_RECEIVED;
- sorter_types[kDangerKey] = DownloadQuery::SORT_DANGER;
- sorter_types[kEndTimeKey] = DownloadQuery::SORT_END_TIME;
- sorter_types[kExistsKey] = DownloadQuery::SORT_EXISTS;
- sorter_types[kFilenameKey] = DownloadQuery::SORT_FILENAME;
- sorter_types[kMimeKey] = DownloadQuery::SORT_MIME;
- sorter_types[kPausedKey] = DownloadQuery::SORT_PAUSED;
- sorter_types[kStartTimeKey] = DownloadQuery::SORT_START_TIME;
- sorter_types[kStateKey] = DownloadQuery::SORT_STATE;
- sorter_types[kTotalBytesKey] = DownloadQuery::SORT_TOTAL_BYTES;
- sorter_types[kUrlKey] = DownloadQuery::SORT_ORIGINAL_URL;
- sorter_types[kFinalUrlKey] = DownloadQuery::SORT_URL;
+ // Initialize the map in one shot by storing to a vector and assigning.
+ std::vector<SortTypeMap::value_type> v;
+
+ AppendFilter(kBytesReceivedKey, DownloadQuery::SORT_BYTES_RECEIVED, &v);
+ AppendFilter(kDangerKey, DownloadQuery::SORT_DANGER, &v);
+ AppendFilter(kEndTimeKey, DownloadQuery::SORT_END_TIME, &v);
+ AppendFilter(kExistsKey, DownloadQuery::SORT_EXISTS, &v);
+ AppendFilter(kFilenameKey, DownloadQuery::SORT_FILENAME, &v);
+ AppendFilter(kMimeKey, DownloadQuery::SORT_MIME, &v);
+ AppendFilter(kPausedKey, DownloadQuery::SORT_PAUSED, &v);
+ AppendFilter(kStartTimeKey, DownloadQuery::SORT_START_TIME, &v);
+ AppendFilter(kStateKey, DownloadQuery::SORT_STATE, &v);
+ AppendFilter(kTotalBytesKey, DownloadQuery::SORT_TOTAL_BYTES, &v);
+ AppendFilter(kUrlKey, DownloadQuery::SORT_ORIGINAL_URL, &v);
+ AppendFilter(kFinalUrlKey, DownloadQuery::SORT_URL, &v);
+
+ *sorter_types_ptr = SortTypeMap(std::move(v), base::KEEP_FIRST_OF_DUPES);
}
bool IsNotTemporaryDownloadFilter(const DownloadItem& download_item) {

Powered by Google App Engine
This is Rietveld 408576698