OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/autofill/core/browser/personal_data_manager.h" | 5 #include "components/autofill/core/browser/personal_data_manager.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <list> | 10 #include <list> |
(...skipping 862 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
873 unique_matched_profiles, &other_field_types, type.GetStorableType(), 1, | 873 unique_matched_profiles, &other_field_types, type.GetStorableType(), 1, |
874 app_locale_, &labels); | 874 app_locale_, &labels); |
875 DCHECK_EQ(unique_suggestions.size(), labels.size()); | 875 DCHECK_EQ(unique_suggestions.size(), labels.size()); |
876 for (size_t i = 0; i < labels.size(); i++) | 876 for (size_t i = 0; i < labels.size(); i++) |
877 unique_suggestions[i].label = labels[i]; | 877 unique_suggestions[i].label = labels[i]; |
878 | 878 |
879 // Get the profile suggestions limit value set for the current frecency field | 879 // Get the profile suggestions limit value set for the current frecency field |
880 // trial group or SIZE_MAX if no limit is defined. | 880 // trial group or SIZE_MAX if no limit is defined. |
881 std::string limit_str = variations::GetVariationParamValue( | 881 std::string limit_str = variations::GetVariationParamValue( |
882 kFrecencyFieldTrialName, kFrecencyFieldTrialLimitParam); | 882 kFrecencyFieldTrialName, kFrecencyFieldTrialLimitParam); |
883 size_t limit; | 883 size_t limit = SIZE_MAX; |
| 884 // Reassign SIZE_MAX to |limit| is needed after calling base::StringToSizeT, |
| 885 // as this method can modify |limit| even if it returns false. |
884 if (!base::StringToSizeT(limit_str, &limit)) | 886 if (!base::StringToSizeT(limit_str, &limit)) |
885 limit = SIZE_MAX; | 887 limit = SIZE_MAX; |
886 | 888 |
887 unique_suggestions.resize(std::min(unique_suggestions.size(), limit)); | 889 unique_suggestions.resize(std::min(unique_suggestions.size(), limit)); |
888 | 890 |
889 return unique_suggestions; | 891 return unique_suggestions; |
890 } | 892 } |
891 | 893 |
892 // TODO(crbug.com/613187): Investigate if it would be more efficient to dedupe | 894 // TODO(crbug.com/613187): Investigate if it would be more efficient to dedupe |
893 // with a vector instead of a list. | 895 // with a vector instead of a list. |
(...skipping 1047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1941 existing_profiles->back().SetRawInfo(EMAIL_ADDRESS, email); | 1943 existing_profiles->back().SetRawInfo(EMAIL_ADDRESS, email); |
1942 | 1944 |
1943 AutofillMetrics::LogWalletAddressConversionType( | 1945 AutofillMetrics::LogWalletAddressConversionType( |
1944 AutofillMetrics::CONVERTED_ADDRESS_ADDED); | 1946 AutofillMetrics::CONVERTED_ADDRESS_ADDED); |
1945 } | 1947 } |
1946 | 1948 |
1947 return guid; | 1949 return guid; |
1948 } | 1950 } |
1949 | 1951 |
1950 } // namespace autofill | 1952 } // namespace autofill |
OLD | NEW |