Commit 85c03b03 authored by Christoph Schwering's avatar Christoph Schwering Committed by Commit Bot

[Autofill] Add English patterns to all languages.

It adds the English patterns, restricted to non-label values (i.e.,name and id attributes) to all non-English patterns.

Bug: 1141407
Change-Id: I093e0364df5cead253d6e164ce104bfde7dd26ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2488564Reviewed-by: default avatarChristoph Schwering <schwering@google.com>
Commit-Queue: Christoph Schwering <schwering@google.com>
Cr-Commit-Position: refs/heads/master@{#819944}
parent a650553c
......@@ -32,6 +32,7 @@ void PatternProvider::SetPatterns(PatternProvider::Map patterns,
(overwrite_equal_version && pattern_version_ == version)) {
patterns_ = patterns;
pattern_version_ = version;
EnrichPatternsWithEnVersion();
}
}
......@@ -95,6 +96,31 @@ void PatternProvider::ResetPatternProvider() {
g_pattern_provider = nullptr;
}
void PatternProvider::EnrichPatternsWithEnVersion() {
for (auto& p : patterns_) {
std::map<std::string, std::vector<MatchingPattern>>& lg_to_patterns =
p.second;
auto it = lg_to_patterns.find("en");
if (it == lg_to_patterns.end())
continue;
std::vector<MatchingPattern> en_patterns = it->second;
for (MatchingPattern& en_pattern : en_patterns) {
en_pattern.match_field_attributes = MATCH_NAME;
}
for (auto& q : lg_to_patterns) {
const std::string& page_language = q.first;
std::vector<MatchingPattern>& patterns = q.second;
if (page_language != "en") {
patterns.insert(patterns.end(), en_patterns.begin(), en_patterns.end());
}
}
}
}
const std::vector<MatchingPattern> PatternProvider::GetAllPatternsBaseOnType(
ServerFieldType type) {
std::string type_str = AutofillType(type).ToString();
......
......@@ -51,6 +51,8 @@ class PatternProvider {
const std::vector<MatchingPattern> GetAllPatternsBaseOnType(
const std::string& type);
// desc
void EnrichPatternsWithEnVersion();
protected:
PatternProvider();
......
......@@ -12,7 +12,7 @@ TestPatternProvider::TestPatternProvider() {
base::Optional<PatternProvider::Map> patterns =
field_type_parsing::GetPatternsFromResourceBundleSynchronously();
if (patterns)
patterns_ = patterns.value();
SetPatterns(patterns.value(), base::Version(), true);
PatternProvider::SetPatternProviderForTesting(this);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment