1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_AUTOFILL_CORE_COMMON_AUTOFILL_UTIL_H_
#define COMPONENTS_AUTOFILL_CORE_COMMON_AUTOFILL_UTIL_H_
#include <string>
#include <string_view>
#include <vector>
#include "components/autofill/core/common/aliases.h"
#include "components/autofill/core/common/form_data.h"
#include "components/autofill/core/common/form_field_data.h"
#include "components/autofill/core/common/mojom/autofill_types.mojom-shared.h"
#include "url/gurl.h"
namespace autofill {
using IsPasswordRequestManuallyTriggered =
base::StrongAlias<class IsPasswordRequestManuallyTriggeredTag, bool>;
// The length of the GUIDs used for local autofill data. It is different than
// the length used for server autofill data.
constexpr int kLocalGuidSize = 36;
// Returns true if showing autofill signature as HTML attributes is enabled.
bool IsShowAutofillSignaturesEnabled();
// A token is a sequences of contiguous characters separated by any of the
// characters that are part of delimiter set {' ', '.', ',', '-', '_', '@'}.
// Currently, a token for the purposes of this method is defined as {'@'}.
// Returns true if the `full_string` has a `prefix` as a prefix and the prefix
// ends on a token.
bool IsPrefixOfEmailEndingWithAtSign(std::u16string_view full_string,
std::u16string_view prefix);
bool IsCheckable(const FormFieldData::CheckStatus& check_status);
bool IsChecked(const FormFieldData::CheckStatus& check_status);
void SetCheckStatus(FormFieldData* form_field_data,
bool is_checkable,
bool is_checked);
// Returns the index of the shortest entry in the given select field of which
// |value| is a substring. Returns -1 if no such entry exists.
std::optional<size_t> FindShortestSubstringMatchInSelect(
const std::u16string& value,
bool ignore_whitespace,
base::span<const SelectOption> field_options);
// Lowercases and tokenizes a given `attribute` string.
// Considers any ASCII whitespace character as a possible separator.
// Also ignores empty tokens, resulting in a collapsing of whitespace.
std::vector<std::string> LowercaseAndTokenizeAttributeString(
std::string_view attribute);
// Returns `value` stripped from its whitespaces.
std::u16string RemoveWhitespace(std::u16string_view value);
// Returns the credit card field `value` trimmed from whitespace and with stop
// characters removed.
std::u16string SanitizeCreditCardFieldValue(std::u16string_view value);
// Returns true if and only if the field value has no character except the
// formatting characters. This means that the field value is a formatting string
// entered by the website and not a real value entered by the user.
bool SanitizedFieldIsEmpty(std::u16string_view value);
// Returns true if focused_field_type corresponds to a fillable field.
bool IsFillable(mojom::FocusedFieldType focused_field_type);
mojom::SubmissionIndicatorEvent ToSubmissionIndicatorEvent(
mojom::SubmissionSource source);
// Strips any authentication data from `gurl`.
GURL StripAuth(const GURL& gurl);
// Strips any authentication data, as well as query and ref portions of URL.
GURL StripAuthAndParams(const GURL& gurl);
// Checks if the user triggered Autofill on a field manually through the Chrome
// context menu.
bool IsAutofillManuallyTriggered(
AutofillSuggestionTriggerSource trigger_source);
// Checks if the user triggered passwords Autofill on a field manually through
// the Chrome context menu.
IsPasswordRequestManuallyTriggered IsPasswordsAutofillManuallyTriggered(
AutofillSuggestionTriggerSource trigger_source);
// Checks if the user triggered plus addresses on a field manually through the
// Chrome context menu.
bool IsPlusAddressesManuallyTriggered(
AutofillSuggestionTriggerSource trigger_source);
// Returns whether the feature `kAutofillPaymentsFieldSwapping` is enabled
// or not.
// TODO(crbug.com/354175563): Remove when launched on all platforms.
bool IsPaymentsFieldSwappingEnabled();
// Extracts comma-separated strings from a ButtonTitleList.
std::u16string GetButtonTitlesString(const ButtonTitleList& titles_list);
} // namespace autofill
#endif // COMPONENTS_AUTOFILL_CORE_COMMON_AUTOFILL_UTIL_H_
|