Index: components/autofill/content/renderer/autofill_agent.cc |
diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc |
index 31068330ae94793b6238892e9bc27b57bc7ca8d7..8f5c97b183613b59dc7b430ff2dcc6b88565cf8b 100644 |
--- a/components/autofill/content/renderer/autofill_agent.cc |
+++ b/components/autofill/content/renderer/autofill_agent.cc |
@@ -19,6 +19,7 @@ |
#include "components/autofill/core/common/autofill_constants.h" |
#include "components/autofill/core/common/autofill_data_validation.h" |
#include "components/autofill/core/common/autofill_switches.h" |
+#include "components/autofill/core/common/autofill_util.h" |
#include "components/autofill/core/common/form_data.h" |
#include "components/autofill/core/common/form_data_predictions.h" |
#include "components/autofill/core/common/form_field_data.h" |
@@ -723,8 +724,18 @@ void AutofillAgent::PreviewFieldWithValue(const base::string16& value, |
was_query_node_autofilled_ = element_.isAutofilled(); |
node->setSuggestedValue(value.substr(0, node->maxLength())); |
node->setAutofilled(true); |
- node->setSelectionRange(node->value().length(), |
- node->suggestedValue().length()); |
+ |
+ if (IsFeatureSubstringMatchEnabled()) { |
+ size_t start = 0; |
+ size_t end = 0; |
+ if (base::string16::npos != |
+ ComputeRange(value, node->value(), &start, &end)) { |
+ node->setSelectionRange(start, end); |
+ } |
+ } else { |
+ node->setSelectionRange(node->value().length(), |
+ node->suggestedValue().length()); |
+ } |
} |
void AutofillAgent::ProcessForms() { |