// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_ASH_INPUT_METHOD_AUTOCORRECT_ENUMS_H_
#define CHROME_BROWSER_ASH_INPUT_METHOD_AUTOCORRECT_ENUMS_H_
namespace ash {
namespace input_method {
// Must match with IMEAutocorrectActions in enums.xml
//
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class AutocorrectActions {
kWindowShown = 0,
kUnderlined = 1,
kReverted = 2,
kUserAcceptedAutocorrect = 3,
kUserActionClearedUnderline = 4,
kUserExitedTextFieldWithUnderline = 5,
kInvalidRange = 6,
kMaxValue = kInvalidRange,
};
// Must match with IMEAutocorrectCompatibilitySummary in enums.xml
//
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class AutocorrectCompatibilitySummary {
kWindowShown = 0,
kUnderlined = 1,
kReverted = 2,
kUserAcceptedAutocorrect = 3,
kUserActionClearedUnderline = 4,
kUserExitedTextFieldWithUnderline = 5,
kInvalidRange = 6,
kVeryFastAcceptedAutocorrect = 7,
kFastAcceptedAutocorrect = 8,
kVeryFastRejectedAutocorrect = 9,
kFastRejectedAutocorrect = 10,
kVeryFastExitField = 11,
kFastExitField = 12,
kMaxValue = kFastExitField,
};
// Must match with IMEAutocorrectInternalStates in enums.xml
//
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class AutocorrectInternalStates {
// Autocorrect handles an empty range.
kHandleEmptyRange = 0,
// Autocorrect handles a new suggestion while the previous one is still
// pending.
kHandleUnclearedRange = 1,
// Autocorrect handles a new suggestion while input context is not available.
kHandleNoInputContext = 2,
// Autocorrect is called with a range, text, and suggestion that do not
// match.
kHandleInvalidArgs = 3,
// Autocorrect handler sets a range to TextInputClient.
kHandleSetRange = 4,
// Autocorrect suggestion is underlined.
kUnderlineShown = 5,
// Autocorrect suggestion is resolved by user interactions and not
// error, exit field or undone.
kSuggestionResolved = 6,
// Autocorrect suggestion is accepted by user interaction.
kSuggestionAccepted = 7,
// Autocorrect is cleared because Input context is lost while having a
// pending autocorrect.
kNoInputContext = 8,
// Autocorrect cannot set a range because TextInputClient does not support
// setting a range.
kErrorSetRange = 9,
// Autocorrect fails to validate a suggestion because of potentially async
// problems prevent it from finding the suggested text within the autocorrect
// range in surrounding text.
kErrorRangeNotValidated = 10,
// Autocorrect got an error when trying to show undo window.
kErrorShowUndoWindow = 11,
// Autocorrect got an error when trying to hide undo window.
kErrorHideUndoWindow = 12,
// Autocorrect shows an undo window.
kShowUndoWindow = 13,
// Autocorrect hides an undo window.
kHideUndoWindow = 14,
// Autocorrect highlights undo button of undo window.
kHighlightUndoWindow = 15,
// OnFocus event was called.
kOnFocusEvent = 16,
// OnFocus event was called with pending suggestion.
kOnFocusEventWithPendingSuggestion = 17,
// OnBlur event was called.
kOnBlurEvent = 18,
// OnBlue event was called with pending suggestion.
kOnBlurEventWithPendingSuggestion = 19,
// User did some typing and had at least one suggestion.
kTextFieldEditsWithAtLeastOneSuggestion = 20,
// Autocorrect could be triggered if the last word typed had an error.
kCouldTriggerAutocorrect = 21,
// The focused text field is in a denylisted domain.
kAppIsInDenylist = 22,
// The focused text field is in a denylisted domain but autocorrect is still
// executed.
kHandleSuggestionInDenylistedApp = 23,
kMaxValue = kHandleSuggestionInDenylistedApp,
};
// Must match with IMEAutocorrectPreference in enums.xml
//
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class AutocorrectPreference {
kDefault = 0,
kEnabled = 1,
kDisabled = 2,
kEnabledByDefault = 3,
kMaxValue = kEnabledByDefault,
};
// Must match with IMEAutocorrectPrefStateTransition in enums.xml
//
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class AutocorrectPrefStateTransition {
// General setting transitions.
kUnchanged = 0,
kDefaultToDisabled = 1,
kDefaultToEnabled = 2,
kDisabledToEnabled = 3,
kEnabledToDisabled = 4,
// Interesting transitions for the enabled by default experiment.
kDefaultToForceEnabled = 5,
kForceEnabledToDisabled = 6,
kForceEnabledToDefault = 7,
kForceEnabledToEnabled = 8,
kMaxValue = kForceEnabledToEnabled,
};
// Must match with IMEAutocorrectQualityBreakdown in enums.xml
//
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class AutocorrectQualityBreakdown {
// All the suggestions that resolved.
kSuggestionResolved = 0,
// Original text included only ascii letters.
kOriginalTextIsAscii = 1,
// Suggested text included only ascii letters.
kSuggestedTextIsAscii = 2,
// Suggestion splitted a word into more than one.
kSuggestionSplittedWord = 3,
// Suggestion capitalized first word.
kSuggestionCapitalizedWord = 4,
// Suggestion made word lower case.
kSuggestionLowerCasedWord = 5,
// Suggestion is equal to original text when compared case insensitive.
kSuggestionChangeLetterCases = 6,
// Suggestion was longer than the original text.
kSuggestionInsertedLetters = 7,
// Suggestion was shorter than the original text.
kSuggestionRemovedLetters = 8,
// Autocorrect suggestion had the same length as the original text.
kSuggestionMutatedLetters = 9,
// Autocorrect suggestion changed accents.
kSuggestionChangedAccent = 10,
kMaxValue = kSuggestionChangedAccent,
};
// Must match with IMEAutocorrectRejectionBreakdown in enums.xml
//
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class AutocorrectRejectionBreakdown {
kSuggestionRejected = 0,
kRejectionOther = 1,
kUndoWithoutKeyboard = 2,
kUndoWithKeyboard = 3,
kUndoCtrlZ = 4,
kRejectedBackspace = 5,
kRejectedCtrlBackspace = 6,
kRejectedTypingFull = 7,
kRejectedTypingPartial = 8,
kRejectedTypingFullWithExternal = 9,
kRejectedTypingPartialWithExternal = 10,
kRemovedLetters = 11,
kRejectedTypingNoSelection = 12,
kRejectedSelectedInvalidRange = 13,
kMaxValue = kRejectedSelectedInvalidRange,
};
} // namespace input_method
} // namespace ash
#endif // CHROME_BROWSER_ASH_INPUT_METHOD_AUTOCORRECT_ENUMS_H_