// Returns the PasswordContents reflecting the contents of |fields|.
bool HasPasswordContents(const std::vector<FormFieldData>& fields) {
for (const FormFieldData& field : fields) {
- if (field.form_control_type == "password")
+ if (field.form_control_type == FormControlType::kInputPassword) {
return true;
+ }
}
return false;
}
*submitted_form, form, *client().GetPersonalDataManager());
#if defined(TIZEN_AUTOFILL)
- if (!client()->GetFormDataImporter()) {
+ if (!client().GetFormDataImporter()) {
LOG(ERROR) << "[Autofill] " << __FUNCTION__
<< " FormDataImporter is invalid";
return;
const PasswordMap& stored_passwords() const { return stored_passwords_; }
IsAccountStore is_account_store() const { return is_account_store_; }
+#if defined(TIZEN_AUTOFILL_FW)
+ void PostTaskToBackgroundTaskRunner(base::OnceClosure task) override {};
+#endif
+
private:
// Implements PasswordStoreBackend interface.
void InitBackend(AffiliatedMatchHelper* affiliated_match_helper,
MockPasswordStoreBackend();
~MockPasswordStoreBackend() override;
+#if defined(TIZEN_AUTOFILL_FW)
+ MOCK_METHOD(void,
+ PostTaskToBackgroundTaskRunner,
+ (base::OnceClosure task),
+ (override));
+#endif
MOCK_METHOD(void,
InitBackend,
(AffiliatedMatchHelper * affiliated_match_helper,
if (!skip_checking_autofill) {
if (backend_) {
- backend_->PostTaskToBackgroundTaskRunner(
- base::BindOnce(&PasswordStore::CheckAutofillData, this, form, view,
- request_handler->LoginsForFormClosure()));
+ backend_->PostTaskToBackgroundTaskRunner(base::BindOnce(
+ &PasswordStore::CheckAutofillData, this, form, view,
+ base::BindOnce(
+ &PasswordStoreConsumer::OnGetPasswordStoreResultsOrErrorFrom,
+ consumer, base::RetainedRef(this))));
}
} else {
LOG(INFO) << "[Autofill] " << __FUNCTION__ << " with view " << view
<< " skip to check autofill";
- InjectAffiliationAndBrandingInformation(
- request_handler->LoginsForFormClosure(),
- std::vector<std::unique_ptr<PasswordForm>>());
+ affiliated_match_helper_->InjectAffiliationAndBrandingInformation(
+ LoginsResult(),
+ base::BindOnce(
+ &PasswordStoreConsumer::OnGetPasswordStoreResultsOrErrorFrom,
+ consumer, base::RetainedRef(this)));
}
#else
backend_->GetGroupedMatchingLoginsAsync(
done.Wait();
LOG(INFO) << "[Autofill] " << __FUNCTION__ << " with view " << view
<< " wait end!";
- InjectAffiliationAndBrandingInformation(
- std::move(callback),
- autofill::AutofillRequestManager::GetInstance()->GetResult(view));
+ affiliated_match_helper_->InjectAffiliationAndBrandingInformation(
+ LoginsResult(), std::move(callback));
}
#endif
virtual void OnSyncServiceInitialized(syncer::SyncService* sync_service) = 0;
#if defined(TIZEN_AUTOFILL_FW)
- virtual void PostTaskToBackgroundTaskRunner(base::OnceClosure task);
+ virtual void PostTaskToBackgroundTaskRunner(base::OnceClosure task) = 0;
#endif
// Factory function for creating the backend. The Local backend requires the
#use_glib = true
external_ozone_platforms = [ "efl" ]
}
-
-if (ewk_bringup) { # FIXME: m120 bringup
- tizen_autofill = false
- if (tizen_product_tv) {
- tizen_autofill_fw = false
- }
-}
}
void AutofillClientEfl::UpdateAutofillPopupDataListValues(
- const std::vector<std::u16string>& values,
- const std::vector<std::u16string>& labels) {
+ base::span<const SelectOption> datalist) {
NOTIMPLEMENTED();
}
return security_state::SecurityLevel::SECURITY_LEVEL_COUNT;
}
-void AutofillClientEfl::ExecuteCommand(int id) {
- NOTIMPLEMENTED();
-}
-
void AutofillClientEfl::HideAutofillPopup(PopupHidingReason reason) {
#if defined(TIZEN_AUTOFILL_FW)
LOG(INFO) << "[Autofill] " << __FUNCTION__
return false;
}
-void AutofillClientEfl::PropagateAutofillPredictions(
- autofill::AutofillDriver* autofill_driver,
- const std::vector<FormStructure*>& forms) {
- NOTIMPLEMENTED();
-}
-
bool AutofillClientEfl::IsAutocompleteSavingEnabled() {
if (webview_)
return webview_->GetSettings()->formCandidateData();
->GetURLLoaderFactoryForBrowserProcess();
}
-void AutofillClientEfl::ConfirmSaveIBANLocally(
- const IBAN& iban,
+void AutofillClientEfl::ConfirmSaveIbanLocally(
+ const Iban& iban,
+ bool should_show_prompt,
+ AutofillClient::SaveIbanPromptCallback callback) {
+ NOTIMPLEMENTED();
+}
+
+void AutofillClientEfl::ConfirmUploadIbanToCloud(
+ const Iban& iban,
+ const LegalMessageLines& legal_message_lines,
bool should_show_prompt,
- LocalSaveIBANPromptCallback callback) {
+ AutofillClient::SaveIbanPromptCallback callback) {
+ NOTIMPLEMENTED();
+}
+
+void AutofillClientEfl::ShowEditAddressProfileDialog(
+ const AutofillProfile& profile,
+ AutofillClient::AddressProfileSavePromptCallback
+ on_user_decision_callback) {
+ NOTIMPLEMENTED();
+}
+
+void AutofillClientEfl::ShowDeleteAddressProfileDialog(
+ const AutofillProfile& profile,
+ AutofillClient::AddressProfileDeleteDialogCallback delete_dialog_callback) {
NOTIMPLEMENTED();
}
void AutofillClientEfl::DidFillOrPreviewForm(
- mojom::RendererFormDataAction action,
+ mojom::ActionPersistence action,
AutofillTriggerSource trigger_source,
bool is_refill) {
NOTIMPLEMENTED();
return false;
}
-void AutofillClientEfl::ConfirmSaveUpiIdLocally(
- const std::string& upi_id,
- base::OnceCallback<void(bool user_decision)> callback) {
- NOTIMPLEMENTED();
-}
-
void AutofillClientEfl::OfferVirtualCardOptions(
const std::vector<CreditCard*>& candidates,
base::OnceCallback<void(const std::string&)> callback) {
NOTIMPLEMENTED();
}
-AutofillClient::PopupOpenArgs AutofillClientEfl::GetReopenPopupArgs() const {
+AutofillClient::PopupOpenArgs AutofillClientEfl::GetReopenPopupArgs(
+ AutofillSuggestionTriggerSource trigger_source) const {
NOTIMPLEMENTED();
return {};
}
return std::vector<Suggestion>();
}
-void AutofillClientEfl::UpdatePopup(const std::vector<Suggestion>& suggestions,
- PopupType popup_type) {
+void AutofillClientEfl::UpdatePopup(
+ const std::vector<Suggestion>& suggestions,
+ PopupType popup_type,
+ AutofillSuggestionTriggerSource trigger_source) {
NOTIMPLEMENTED();
}
return entry->GetURL();
}
-std::vector<std::string>
-AutofillClientEfl::GetAllowedMerchantsForVirtualCards() {
- NOTIMPLEMENTED();
- return std::vector<std::string>();
-}
-
-std::vector<std::string>
-AutofillClientEfl::GetAllowedBinRangesForVirtualCards() {
- NOTIMPLEMENTED();
- return std::vector<std::string>();
-}
-
const translate::LanguageState* AutofillClientEfl::GetLanguageState() {
NOTIMPLEMENTED();
return nullptr;
bool IsOffTheRecord() override;
scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory() override;
- void DidFillOrPreviewForm(mojom::RendererFormDataAction action,
+ void DidFillOrPreviewForm(mojom::ActionPersistence action,
AutofillTriggerSource trigger_source,
bool is_refill) override;
- void ConfirmSaveIBANLocally(const IBAN& iban,
+ void ConfirmSaveIbanLocally(const Iban& iban,
bool should_show_prompt,
- LocalSaveIBANPromptCallback callback) override;
+ SaveIbanPromptCallback callback) override;
+ void ConfirmUploadIbanToCloud(const Iban& iban,
+ const LegalMessageLines& legal_message_lines,
+ bool should_show_prompt,
+ SaveIbanPromptCallback callback) override;
+ void ShowEditAddressProfileDialog(
+ const AutofillProfile& profile,
+ AddressProfileSavePromptCallback on_user_decision_callback) override;
+ void ShowDeleteAddressProfileDialog(
+ const AutofillProfile& profile,
+ AddressProfileDeleteDialogCallback delete_dialog_callback) override;
FormInteractionsFlowId GetCurrentFormInteractionsFlowId() override;
// AutofillClient implementation.
const CardUnmaskPromptOptions& card_unmask_prompt_options,
base::WeakPtr<CardUnmaskDelegate> delegate) override;
void UpdateAutofillPopupDataListValues(
- const std::vector<std::u16string>& values,
- const std::vector<std::u16string>& labels) override;
+ base::span<const SelectOption> datalist) override;
void OnUnmaskVerificationResult(PaymentsRpcResult result) override;
bool HasCreditCardScanFeature() override;
void ScanCreditCard(CreditCardScanCallback callback) override;
AddressNormalizer* GetAddressNormalizer() override;
security_state::SecurityLevel GetSecurityLevelForUmaHistograms() override;
- void ExecuteCommand(int id) override;
void HideAutofillPopup(PopupHidingReason reason) override;
bool IsAutocompleteEnabled() const override;
- void PropagateAutofillPredictions(
- autofill::AutofillDriver* autofill_driver,
- const std::vector<FormStructure*>& forms) override;
void DidFillOrPreviewField(const std::u16string& autofilled_value,
const std::u16string& profile_full_name) override;
void ConfirmMigrateLocalCardToCloud(
WebauthnDialogCallback verify_pending_dialog_callback) override;
void UpdateWebauthnOfferDialogWithError() override;
bool CloseWebauthnDialog() override;
- void ConfirmSaveUpiIdLocally(
- const std::string& upi_id,
- base::OnceCallback<void(bool user_decision)> callback) override;
void OfferVirtualCardOptions(
const std::vector<CreditCard*>& candidates,
base::OnceCallback<void(const std::string&)> callback) override;
void CreditCardUploadCompleted(bool card_saved) override;
void PinPopupView() override;
- PopupOpenArgs GetReopenPopupArgs() const override;
+ PopupOpenArgs GetReopenPopupArgs(
+ AutofillSuggestionTriggerSource trigger_source) const override;
std::vector<Suggestion> GetPopupSuggestions() const override;
void UpdatePopup(const std::vector<Suggestion>& suggestions,
- PopupType popup_type) override;
+ PopupType popup_type,
+ AutofillSuggestionTriggerSource trigger_sources) override;
const GURL& GetLastCommittedPrimaryMainFrameURL() const override;
const translate::LanguageState* GetLanguageState() override;
translate::TranslateDriver* GetTranslateDriver() override;
- std::vector<std::string> GetAllowedMerchantsForVirtualCards() override;
- std::vector<std::string> GetAllowedBinRangesForVirtualCards() override;
void ConfirmSaveAddressProfile(
const AutofillProfile& profile,
const AutofillProfile* original_profile,
manager->Init(WebDataServiceFactoryEfl::GetAutofillWebDataForProfile(),
nullptr, service, nullptr, nullptr, nullptr, nullptr, nullptr,
- nullptr, context->IsOffTheRecord());
+ nullptr);
manager->AddObserver(this);
personal_data_manager_id_map_.AddWithID(std::move(pdm), unique_id);
}
bool isAutofillSpecial(const autofill::Suggestion& suggestion) {
- return suggestion.frontend_id <= 0 &&
- suggestion.frontend_id != POPUP_ITEM_ID_AUTOCOMPLETE_ENTRY &&
- suggestion.frontend_id != POPUP_ITEM_ID_DATALIST_ENTRY;
+ return suggestion.popup_item_id != PopupItemId::kAutocompleteEntry &&
+ suggestion.popup_item_id != PopupItemId::kDatalistEntry;
}
void AutofillPopupViewEfl::InitFormData(
void AutofillPopupViewEfl::AcceptSuggestion(size_t index) {
if (delegate_ && index < values_.size()) {
- delegate_->DidAcceptSuggestion(values_[index], index);
+ delegate_->DidAcceptSuggestion(values_[index], index,
+ autofill::AutofillSuggestionTriggerSource());
}
}
selected_line_ = selected_line;
if (delegate_) {
if (selected_line_ < values_.size()) {
- delegate_->DidSelectSuggestion(values_[selected_line].main_text.value,
- selected_line,
- autofill::Suggestion::BackendId());
+ delegate_->DidSelectSuggestion(
+ values_[selected_line], autofill::AutofillSuggestionTriggerSource());
}
else {
delegate_->ClearPreviewedForm();
nullptr /*ProfileSyncServiceFactory::GetForProfile(profile_)*/),
driver_factory_(nullptr),
weak_factory_(this) {
- ContentPasswordManagerDriverFactory::CreateForWebContents(web_contents, this,
- autofill_client);
+ ContentPasswordManagerDriverFactory::CreateForWebContents(web_contents, this);
driver_factory_ =
ContentPasswordManagerDriverFactory::FromWebContents(web_contents);
}
NOTIMPLEMENTED();
}
-PasswordStore* PasswordManagerClientEfl::GetProfilePasswordStore() const {
- return PasswordStoreFactory::GetProfilePasswordStore().get();
+void PasswordManagerClientEfl::UserModifiedPasswordField() {
+ NOTIMPLEMENTED();
+}
+
+void PasswordManagerClientEfl::UserModifiedNonPasswordField(
+ ::autofill::FieldRendererId renderer_id,
+ const ::std::u16string& value,
+ bool autocomplete_attribute_has_username,
+ bool is_likely_otp) {
+ NOTIMPLEMENTED();
+}
+
+void PasswordManagerClientEfl::ShowPasswordSuggestions(
+ ::autofill::FieldRendererId element_id,
+ const ::autofill::FormData& form,
+ uint64_t username_field_index,
+ uint64_t password_field_index,
+ ::base::i18n::TextDirection text_direction,
+ const ::std::u16string& typed_username,
+ int32_t options,
+ const ::gfx::RectF& bounds) {
+ NOTIMPLEMENTED();
+}
+
+PasswordStoreInterface* PasswordManagerClientEfl::GetProfilePasswordStore()
+ const {
+ NOTIMPLEMENTED();
+ return nullptr;
}
const PasswordManager* PasswordManagerClientEfl::GetPasswordManager() const {
}
void PasswordManagerClientEfl::AutomaticPasswordSave(
- std::unique_ptr<PasswordFormManagerForUI> saved_form_manager) {
+ std::unique_ptr<PasswordFormManagerForUI> saved_form_manager,
+ bool is_update_confirmation) {
NOTIMPLEMENTED();
}
GetPasswordManager()->OnPasswordFormsRendered(driver, visible_forms);
}
-void PasswordManagerClientEfl::ShowPasswordSuggestions(
- base::i18n::TextDirection text_direction,
- const std::u16string& typed_username,
- int options,
- const gfx::RectF& bounds) {
- password_manager::PasswordManagerDriver* driver =
- driver_factory_->GetDriverForFrame(
- password_manager_driver_bindings_.GetCurrentTargetFrame());
- driver->GetPasswordAutofillManager()->OnShowPasswordSuggestions(
- text_direction, typed_username, options,
- TransformToRootCoordinates(
- password_manager_driver_bindings_.GetCurrentTargetFrame(), bounds));
-}
-
void PasswordManagerClientEfl::PasswordFormSubmitted(
const autofill::FormData& password_form) {
if (!bad_message::CheckChildProcessSecurityPolicyForURL(
LOG_AF(GetLogManager()) << log;
}
-void PasswordManagerClientEfl::UserModifiedPasswordField() {
- GetMetricsRecorder()->RecordUserModifiedPasswordField();
-}
-
void PasswordManagerClientEfl::FocusedInputChanged(
password_manager::PasswordManagerDriver* driver,
autofill::FieldRendererId focused_field_id,
NOTIMPLEMENTED();
}
-PasswordStore* PasswordManagerClientEfl::GetAccountPasswordStore() const {
+PasswordStoreInterface* PasswordManagerClientEfl::GetAccountPasswordStore()
+ const {
NOTIMPLEMENTED();
return nullptr;
}
const autofill::FormData& form_data) {
NOTIMPLEMENTED();
}
-void PasswordManagerClientEfl::UserModifiedNonPasswordField(
- autofill::FieldRendererId renderer_id,
- const std::u16string& field_name,
- const std::u16string& value,
- bool autocomplete_attribute_has_username) {
- NOTIMPLEMENTED();
-}
void PasswordManagerClientEfl::FocusedInputChanged(
autofill::FieldRendererId focused_field_id,
NOTIMPLEMENTED();
}
+PrefService* PasswordManagerClientEfl::GetLocalStatePrefs() const {
+ NOTIMPLEMENTED();
+ return nullptr;
+}
+
+const syncer::SyncService* PasswordManagerClientEfl::GetSyncService() const {
+ NOTIMPLEMENTED();
+ return nullptr;
+}
+
+PasswordChangeSuccessTracker*
+PasswordManagerClientEfl::GetPasswordChangeSuccessTracker() {
+ NOTIMPLEMENTED();
+ return nullptr;
+}
+
WEB_CONTENTS_USER_DATA_KEY_IMPL(PasswordManagerClientEfl);
}
std::unique_ptr<PasswordFormManagerForUI> form_to_save,
bool has_generated_password,
bool is_update) override;
- PasswordStore* GetProfilePasswordStore() const override;
+ PasswordStoreInterface* GetProfilePasswordStore() const override;
+ void UserModifiedPasswordField() override;
+ void UserModifiedNonPasswordField(::autofill::FieldRendererId renderer_id,
+ const ::std::u16string& value,
+ bool autocomplete_attribute_has_username,
+ bool is_likely_otp) override;
+ void ShowPasswordSuggestions(::autofill::FieldRendererId element_id,
+ const ::autofill::FormData& form,
+ uint64_t username_field_index,
+ uint64_t password_field_index,
+ ::base::i18n::TextDirection text_direction,
+ const ::std::u16string& typed_username,
+ int32_t options,
+ const ::gfx::RectF& bounds) override;
bool PromptUserToChooseCredentials(
std::vector<std::unique_ptr<PasswordForm>> local_forms,
const url::Origin& origin,
submitted_manager) override;
void NotifyStorePasswordCalled() override;
void AutomaticPasswordSave(
- std::unique_ptr<PasswordFormManagerForUI> saved_form_manager) override;
+ std::unique_ptr<PasswordFormManagerForUI> saved_form_manager,
+ bool is_update_confirmation) override;
const PasswordManager* GetPasswordManager() const override;
const CredentialsFilter* GetStoreResultFilter() const override;
bool IsNewTabPage() const override;
void PromptUserToMovePasswordToAccount(
std::unique_ptr<PasswordFormManagerForUI> form_to_move) override;
- PasswordStore* GetAccountPasswordStore() const override;
+ PasswordStoreInterface* GetAccountPasswordStore() const override;
const GURL& GetLastCommittedURL() const override;
url::Origin GetLastCommittedOrigin() const override;
signin::IdentityManager* GetIdentityManager() override;
const override {
return &password_feature_manager_;
}
- PrefService* GetLocalStatePrefs() const override { return nullptr; }
- const syncer::SyncService* GetSyncService() const override { return nullptr; }
- PasswordChangeSuccessTracker* GetPasswordChangeSuccessTracker() override {
- return nullptr;
- }
+ PrefService* GetLocalStatePrefs() const override;
+ const syncer::SyncService* GetSyncService() const override;
+ PasswordChangeSuccessTracker* GetPasswordChangeSuccessTracker() override;
private:
explicit PasswordManagerClientEfl(content::WebContents* web_contents,
const std::vector<autofill::FormData>& visible_forms) override;
void PasswordFormSubmitted(const autofill::FormData& password_form) override;
void RecordSavePasswordProgress(const std::string& log) override;
- void UserModifiedPasswordField() override;
- void ShowPasswordSuggestions(base::i18n::TextDirection text_direction,
- const std::u16string& typed_username,
- int options,
- const gfx::RectF& bounds) override;
void LogFirstFillingResult(autofill::FormRendererId form_renderer_id,
int32_t result) override;
void InformAboutUserInput(const autofill::FormData& form_data) override;
void DynamicFormSubmission(autofill::mojom::SubmissionIndicatorEvent
submission_indication_event) override;
void PasswordFormCleared(const autofill::FormData& form_data) override;
- void UserModifiedNonPasswordField(
- autofill::FieldRendererId renderer_id,
- const std::u16string& field_name,
- const std::u16string& value,
- bool autocomplete_attribute_has_username) override;
void FocusedInputChanged(
autofill::FieldRendererId focused_field_id,
autofill::mojom::FocusedFieldType focused_field_type) override;
scoped_refptr<PasswordStore> ps = new password_manager::PasswordStore(
std::make_unique<password_manager::PasswordStoreBuiltInBackend>(
- std::move(login_db)));
+ std::move(login_db), syncer::WipeModelUponSyncDisabledBehavior()));
if (!ps.get()) {
LOG(ERROR) << "Could not create password manager.";
#if defined(TIZEN_AUTOFILL)
// autofill preferences
pref_registry->RegisterBooleanPref(kAutofillProfileEnabled, true);
- pref_registry->RegisterBooleanPref(kAutofillWalletImportEnabled, true);
pref_registry->RegisterBooleanPref(kAutofillCreditCardEnabled, true);
pref_registry->RegisterIntegerPref(kAutocompleteLastVersionRetentionPolicy,
0);
#include <string>
#include <sstream>
#include <Eina.h>
-
-#include "base/guid.h"
#include "base/strings/stringprintf.h"
#include "browser/autofill/personal_data_manager_factory.h"
#include "browser_context_efl.h"
}
bool IsValidEwkGUID(const std::string& guid) {
- if (!base::IsValidGUID(guid))
+ if (!base::Uuid::ParseCaseInsensitive(base::StringPiece(guid)).is_valid()) {
return false;
-
+ }
if (guid.compare(0, kEwkGuidStartString.length(), kEwkGuidStartString))
return false;
autofill::AutofillProfile to_Autofill_Profile(
const Ewk_Autofill_Profile* oldStyleProfile) {
std::string locale = EWebView::GetPlatformLocale();
- autofill::AutofillProfile ret(base::GenerateGUID(), locale);
-
+ autofill::AutofillProfile ret(locale);
if (!oldStyleProfile)
return ret;
blink::AssociatedInterfaceRegistry* registry =
render_frame_observer->associated_interfaces();
- PasswordAutofillAgent* password_autofill_agent =
- new PasswordAutofillAgent(render_frame, registry);
- PasswordGenerationAgent* password_generation_agent =
- new PasswordGenerationAgent(render_frame, password_autofill_agent,
- registry);
- new AutofillAgent(render_frame, password_autofill_agent,
- password_generation_agent, registry);
+ std::unique_ptr<PasswordAutofillAgent> password_autofill_agent =
+ std::make_unique<PasswordAutofillAgent>(render_frame, registry);
+ std::unique_ptr<PasswordGenerationAgent> password_generation_agent =
+ std::make_unique<PasswordGenerationAgent>(
+ render_frame, password_autofill_agent.get(), registry);
+ new AutofillAgent(render_frame, std::move(password_autofill_agent),
+ std::move(password_generation_agent), registry);
}
#endif
#if (defined(TIZEN_PEPPER_EXTENSIONS) && BUILDFLAG(ENABLE_PLUGINS))