| 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() {
|
|
|