luxlabs header browser preview


@class NSMutableDictionary, WBSAutoFillQuirksManager, WBSKeychainCredentialNotificationMonitor, WBSPair, NSMutableArray, NSObject;
@protocol OS_dispatch_queue;

@interface WBSFormDataController : NSObject {
    WBSKeychainCredentialNotificationMonitor *_keychainMonitor;
    id _keychainNotificationRegistrationToken;
    NSMutableDictionary *_completionDB;
    NSMutableDictionary *_valuesDB;
    NSMutableDictionary *_preferredLabelsMap;
    unsigned long long _completionDBSize;
    NSMutableDictionary *_domainToLastUsedUsernameAndProtectionSpace;
    NSMutableArray *_recentlyUsedAutoFillSets;
    NSMutableDictionary *_preferredLabelForUniqueIDOfPersonMap;
    WBSPair *_cachedBirthdayAndLocalizedStrings;
    NSObject<OS_dispatch_queue> *_internalQueue;
    NSMutableDictionary *_mapOfHighLevelDomainToLastAutomaticFormSubmission;
}

@property (readonly, nonatomic) WBSAutoFillQuirksManager *autoFillQuirksManager;

+ (BOOL)isNameProperty:(id)a0;
+ (BOOL)contactIsMe:(id)a0;
+ (id)contactKeyForString:(id)a0;
+ (id)controlsConsideredByAutoFillInForm:(id)a0;
+ (id)dontSaveMarker;
+ (BOOL)isFieldUnidentified:(id)a0;
+ (id)localizedLowercaseContactProperty:(id)a0;
+ (id)nextFieldAfterControls:(id)a0 inForm:(id)a1;
+ (BOOL)shouldDisplayHideMyEmailForControl:(id)a0;
+ (BOOL)shouldDisplayOneTimeCodeForControl:(id)a0 inForm:(id)a1;
+ (id)specifierForControl:(id)a0;
+ (BOOL)textFieldLooksLikeCreditCardFormField:(id)a0 inForm:(id)a1;
+ (BOOL)textFieldLooksLikeCreditCardNumericFormField:(id)a0;
+ (id)valueOfControlWithUniqueID:(id)a0 inForm:(id)a1;
+ (id)valuesFromUser:(id)a0 password:(id)a1 forLoginOrChangePasswordForm:(id)a2;
+ (id)stringWithAddressBookValue:(id)a0 key:(id)a1;
+ (id)_metadataForControlWithUniqueID:(id)a0 inForm:(id)a1;
+ (BOOL)_password:(id)a0 appearsToBeASixDigitCodeAppendedToPassword:(id)a1;
+ (BOOL)_password:(id)a0 appearsToBeMoreThanOneSymbolAppendedToPassword:(id)a1;
+ (id)addressBookAddressPropertyKey;
+ (id)allAddressBookAddressComponentKeys;
+ (id)allAddressBookNonAddressPropertyKeys;
+ (id)allSynonymsForMatch:(id)a0;
+ (long long)availableManualAutoFillActionForTextField:(id)a0 form:(id)a1 outUsernameElementUniqueID:(id *)a2 outPasswordElementUniqueID:(id *)a3 outConfirmPasswordElementUniqueID:(id *)a4;
+ (BOOL)canAutocompleteTextField:(id)a0 inForm:(id)a1;
+ (id)continuingFieldsInFormControls:(id)a0 startingAtIndex:(unsigned long long)a1 textFieldsOnly:(BOOL)a2 ignorePositioning:(BOOL)a3;
+ (BOOL)convertNumber:(id)a0 toAutoFillFormType:(unsigned long long *)a1;
+ (id)domainFromURL:(id)a0;
+ (id)fieldToFocusBeforeSubmittingForm:(id)a0;
+ (BOOL)formContainsCreditCardData:(id)a0;
+ (BOOL)formContainsCreditCardNumberField:(id)a0;
+ (BOOL)formContainsCreditCardNumberOrCardSecurityCodeField:(id)a0;
+ (BOOL)formContainsDateFields:(id)a0 matchingAddressBookMatch:(id)a1;
+ (id)lastFieldInControls:(id)a0 inForm:(id)a1;
+ (BOOL)password:(id)a0 shouldBeConsideredEqualToExistingPassword:(id)a1;
+ (id)specifierForAddressBookLabel:(id)a0;
+ (BOOL)stringLooksLikeCreditCardNumber:(id)a0;

- (id)init;
- (void)dealloc;
- (void)_currentLocaleDidChange:(id)a0;
- (void).cxx_destruct;
- (id)annotationsFromUsername:(id)a0 forLoginOrChangePasswordForm:(id)a1;
- (id)autoGeneratedPasswordForURL:(id)a0 respectingPasswordRequirements:(id)a1 maxLength:(unsigned long long)a2;
- (id)contactAutoFillSetForRecentlyUsedAutoFillSet:(id)a0 contact:(id)a1 form:(id)a2;
- (void)didAutomaticallySubmitFormWhenFillingOnURL:(id)a0 formMetadata:(id)a1;
- (id)exactFQDNAndHighLevelDomainSavedAccountMatchesForForm:(id)a0 atURL:(id)a1 webFrameIdentifier:(id)a2 savedAccountContext:(id)a3;
- (void)getFormFieldValues:(id *)a0 andFieldToFocus:(id *)a1 andCreditCardDataTypesThatWillBeFilled:(id *)a2 forCreditCardForm:(id)a3 fromCreditCardData:(id)a4;
- (void)getFormFieldValues:(id *)a0 andFieldToFocus:(id *)a1 withSingleCreditCardData:(id)a2 inField:(id)a3 inForm:(id)a4;
- (void)getSavedAccountMatchesWithCriteria:(id)a0 synchronously:(BOOL)a1 completionHandler:(id /* block */)a2;
- (id)initWithAggressiveKeychainCaching:(BOOL)a0;
- (BOOL)isControlASelectElement:(id)a0;
- (BOOL)isPasswordFieldForUserCredentialsWithMetadata:(id)a0 formMetadata:(id)a1;
- (id)lastUsedUsernameWithPasswordForURL:(id)a0 inContext:(id)a1;
- (id)metadataOfActiveFormOrBestFormForPageLevelAutoFill:(id)a0 frame:(struct OpaqueFormAutoFillFrame **)a1;
- (id)metadataOfBestFormForStreamlinedLogin:(id)a0 frame:(struct OpaqueFormAutoFillFrame **)a1;
- (id)orderedHomeAndWorkSetsForContact:(id)a0 form:(id)a1;
- (id)recentlyUsedAutoFillSets;
- (void)saveRecentlyUsedAutoFillSetWithMatchesToFill:(id)a0 matchesForDoNotFill:(id)a1;
- (void)setPreferredIdentifier:(id)a0 forProperty:(id)a1 withContact:(id)a2;
- (BOOL)shouldAutoFillFromAddressBook;
- (BOOL)shouldAutoFillPasswords;
- (BOOL)shouldSubmitForm:(id)a0 withUser:(id)a1 password:(id)a2 onURL:(id)a3;
- (BOOL)textFieldIsEligibleForAutomaticStrongPassword:(id)a0 form:(id)a1 ignorePreviousDecision:(BOOL)a2 textFieldCurrentlyContainsStrongPassword:(BOOL *)a3;
- (id)valuesForContactFormWithMetadata:(id)a0 matches:(id *)a1 multiRoundAutoFillManager:(id)a2 existingMatches:(id)a3 contact:(id)a4;
- (id)valuesForContactFormWithMetadata:(id)a0 matches:(id *)a1 multiRoundAutoFillManager:(id)a2 existingMatches:(id)a3 shouldUseExistingMatchesToFillFocusedField:(BOOL)a4 contact:(id)a5;
- (id)valuesForFormWithMetadata:(id)a0 hideMyEmailRecord:(id)a1;
- (id)valuesForStandardForm:(id)a0 inDomain:(id)a1 autoFillDataType:(long long)a2 matches:(id *)a3 preferredLabel:(id)a4 multiRoundAutoFillManager:(id)a5 contact:(id)a6 allowingIdentifiedAddressBookLabelToOverridePreferredIdentifier:(BOOL)a7;
- (id)matchesForControl:(id)a0 atURL:(id)a1 matchingPartialString:(id)a2 autoFillDataType:(long long)a3 allowingIdentifiedAddressBookLabelToOverridePreferredIdentifier:(BOOL)a4;
- (void)updateLastUsedUsernameAndExtractUsernameAndPasswordFromForm:(id)a0 shouldPreferAnnotatedCredentials:(BOOL)a1 atURL:(id)a2 username:(id *)a3 password:(id *)a4 inContext:(id)a5;
- (unsigned long long)_addMatchesForControl:(id)a0 startingAtIndex:(unsigned long long)a1 formMetadata:(id)a2 fromExistingMatches:(id)a3 fromAllMatchesIfNecessary:(id)a4 addToFoundMatches:(id)a5 addToAutoFillValues:(id)a6 multiRoundAutoFillManager:(id)a7 propertyToIdentifierMapForFoundMatches:(id)a8 shouldUseExistingMatchesToFillFocusedField:(BOOL)a9;
- (id)_autoFillSetFromMatches:(id)a0 label:(id)a1 contact:(id)a2 form:(id)a3;
- (id)_cachedLocalizedStringsForBirthdate:(id)a0;
- (id)_completionDB;
- (BOOL)_dateIsWithinGracePeriodForNotAutomaticallySubmittingLoginForms:(id)a0;
- (id)_domainsWithPreviousDataOnInternalQueue;
- (void)_fillPhoneNumber:(id)a0 intoValues:(id)a1 controls:(id)a2 formTextSample:(id)a3 multiRoundAutoFillManager:(id)a4;
- (id)_formKeyForMapOfHighLevelDomainToLastAutomaticFormSubmission:(id)a0 formMetadata:(id)a1;
- (unsigned long long)_indexForControlWithUniqueID:(id)a0 inForm:(id)a1;
- (id)_keyToLookUpInAnnotationsForPasswordForFormMetadata:(id)a0;
- (id)_knownUsernamesWithPasswordsForURL:(id)a0 inContext:(id)a1;
- (id)_lastUsedUsernameForDomain:(id)a0;
- (void)_loadCompletionDBIfNeededOnInternalQueue;
- (BOOL)_matchHasPreferredIdentifierOrShouldBeFilledInMultiRoundAutoFill:(id)a0 specifier:(id)a1 multiRoundAutoFillManager:(id)a2 contact:(id)a3;
- (id)_matchesForControl:(id)a0 inDomain:(id)a1 matchingPartialString:(id)a2 autoFillDataType:(long long)a3 preferredLabel:(id)a4 allowingIdentifiedAddressBookLabelToOverridePreferredIdentifier:(BOOL)a5;
- (id)_matchesForControl:(id)a0 inDomain:(id)a1 matchingPartialString:(id)a2 autoFillDataType:(long long)a3 preferredLabel:(id)a4 contact:(id)a5 allowingIdentifiedAddressBookLabelToOverridePreferredIdentifier:(BOOL)a6;
- (id)_nextFieldToFocusAfterFillingFieldAtIndex:(unsigned long long)a0 inForm:(id)a1;
- (id)_phoneNumberCandidates:(id)a0 fillingMultipleFields:(BOOL)a1;
- (id)_recentlyUsedAutoFillDictionaries;
- (void)_removeStaleEntriesFromMapOfHighLevelDomainToLastAutomaticFormSubmission;
- (void)_setLastUsedUsername:(id)a0 andProtectionSpace:(id)a1 forDomain:(id)a2;
- (id)_singleFieldPhoneNumberCandidates:(id)a0;
- (id)_valuesForStandardForm:(id)a0 inDomain:(id)a1 autoFillDataType:(long long)a2 matches:(id *)a3 preferredLabel:(id)a4 multiRoundAutoFillManager:(id)a5 wantAllMatches:(BOOL)a6 contact:(id)a7 existingMatches:(id)a8 shouldUseExistingMatchesToFillFocusedField:(BOOL)a9 allowingIdentifiedAddressBookLabelToOverridePreferredIdentifier:(BOOL)a10;
- (void)addABMatchesForValueSpecifier:(id)a0 matchingPartialString:(id)a1 toArray:(id)a2 preferredLabel:(id)a3 contact:(id)a4 allowingIdentifiedAddressBookLabelToOverridePreferredIdentifier:(BOOL)a5;
- (void)addAllAddressDataIfNecessary:(id)a0 contactLabel:(id)a1 contact:(id)a2;
- (void)addPreviousDataMatchesForFieldWithName:(id)a0 inDomain:(id)a1 matchingPartialString:(id)a2 toArray:(id)a3;
- (void)addRecentlyUsedAutoFillSet:(id)a0 appendToTheEnd:(BOOL)a1;
- (unsigned long long)addValuesForStandardFormControls:(id)a0 startingAtIndex:(unsigned long long)a1 fromAutoFillItem:(id)a2 toDictionary:(id)a3 formTextSample:(id)a4 multiRoundAutoFillManager:(id)a5;
- (unsigned long long)addValuesForStandardFormControlsInForm:(id)a0 startingAtIndex:(unsigned long long)a1 fromAutoFillItem:(id)a2 toDictionary:(id)a3 multiRoundAutoFillManager:(id)a4;
- (BOOL)addressBookHasDataForLabel:(id)a0;
- (id)addressBookMatchesForFullNameForContact:(id)a0;
- (id)addressBookMatchesForProperty:(id)a0 key:(id)a1 label:(id)a2;
- (id)addressBookMatchesForProperty:(id)a0 key:(id)a1 label:(id)a2 partialString:(id)a3 contact:(id)a4 allowingIdentifiedAddressBookLabelToOverridePreferredIdentifier:(BOOL)a5;
- (id)allFormDataForSaving;
- (long long)autoFillActionForFormType:(unsigned long long)a0 onURL:(id)a1 shouldSubmitAfterFilling:(BOOL)a2;
- (id)bestAddressBookLabelForFormMetadata:(id)a0 formControlValue:(id)a1;
- (id)bestMatchForControl:(id)a0 inDomain:(id)a1 matchingPartialString:(id)a2 autoFillDataType:(long long)a3 preferredLabel:(id)a4 allowingIdentifiedAddressBookLabelToOverridePreferredIdentifier:(BOOL)a5;
- (id)bestMatchForControl:(id)a0 inDomain:(id)a1 matchingPartialString:(id)a2 autoFillDataType:(long long)a3 preferredLabel:(id)a4 contact:(id)a5 allowingIdentifiedAddressBookLabelToOverridePreferredIdentifier:(BOOL)a6;
- (id)cascadingAddressMatchesForMatch:(id)a0 contact:(id)a1;
- (void)clearPreviousDataDatabaseItemsAddedAfterDate:(id)a0;
- (void)clearPreviousDataForDomain:(id)a0;
- (id)completionDBPath;
- (id)domainsWithPreviousData;
- (void)domainsWithPreviousDataChanged;
- (id)encryptOrDecryptData:(id)a0 encrypt:(BOOL)a1;
- (BOOL)hasUserDeniedAccessToCredential:(id)a0 inProtectionSpace:(id)a1;
- (id)infoForDomain:(id)a0;
- (void)loadCompletionDBIfNeeded;
- (id)matchesForControl:(id)a0 atURL:(id)a1 matchingPartialString:(id)a2 autoFillDataType:(long long)a3 contact:(id)a4 allowingIdentifiedAddressBookLabelToOverridePreferredIdentifier:(BOOL)a5;
- (void)notifyKeychainWasDirectlyAffectedBySafari;
- (BOOL)preferredIdentifierExistsForProperty:(id)a0 withContact:(id)a1;
- (id)preferredIdentifierForProperty:(id)a0 withContact:(id)a1;
- (void)pruneCompletionDB;
- (void)saveCompletionDBSoon;
- (id)savedAccountUsingDomainsToConsiderIdenticalWithUsername:(id)a0 url:(id *)a1 host:(id *)a2;
- (void)setInfo:(id)a0 forDomain:(id)a1;
- (BOOL)shouldAutoFillFromPreviousData;
- (id)substituteCredential:(id)a0 inProtectionSpace:(id)a1;
- (BOOL)textFieldMetadataMeetsRequirementsForAutomaticStrongPasswordTreatment:(id)a0 form:(id)a1;
- (id)uniqueIDOfContact:(id)a0;
- (id)valuesForContactFormWithMetadata:(id)a0 inDomain:(id)a1 matches:(id *)a2 multiRoundAutoFillManager:(id)a3;
- (id)valuesForContactFormWithMetadata:(id)a0 inDomain:(id)a1 matches:(id *)a2 multiRoundAutoFillManager:(id)a3 contact:(id)a4;
- (id)valuesForStandardForm:(id)a0 inDomain:(id)a1 autoFillDataType:(long long)a2 matches:(id *)a3 preferredLabel:(id)a4 multiRoundAutoFillManager:(id)a5;
- (void)willSubmitFormWithCredentials:(id)a0 shouldPreferAnnotatedCredentials:(BOOL)a1 atURL:(id)a2 username:(id *)a3 password:(id *)a4 inContext:(id)a5;

@end