// Copyright (C) 2022 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists purely as an // implementation detail. This header file may change from version to // version without notice, or even be removed. // // We mean it. // #ifndef AUTOFILL_CLIENT_QT_H #define AUTOFILL_CLIENT_QT_H #include #include #include "base/memory/weak_ptr.h" #include "components/autofill/content/browser/content_autofill_client.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" #include namespace QtWebEngineCore { class AutofillPopupController; class WebContentsAdapterClient; class AutofillClientQt : public autofill::ContentAutofillClient, public content::WebContentsObserver { public: ~AutofillClientQt() override; static void CreateForWebContents(content::WebContents *contents); // autofill::AutofillClient overrides: autofill::PersonalDataManager *GetPersonalDataManager() override; autofill::AutocompleteHistoryManager *GetAutocompleteHistoryManager() override; PrefService *GetPrefs() override; const PrefService *GetPrefs() const override; void ShowAutofillPopup(const autofill::AutofillClient::PopupOpenArgs &open_args, base::WeakPtr delegate) override; void UpdateAutofillPopupDataListValues(const std::vector &values, const std::vector &labels) override; void PinPopupView() override; PopupOpenArgs GetReopenPopupArgs( autofill::AutofillSuggestionTriggerSource trigger_source) const override; std::vector GetPopupSuggestions() const override; void UpdatePopup(const std::vector& suggestions, autofill::PopupType popup_type, autofill::AutofillSuggestionTriggerSource trigger_source) override; void HideAutofillPopup(autofill::PopupHidingReason reason) override; bool IsAutocompleteEnabled() const override; bool IsPasswordManagerEnabled() override; void PropagateAutofillPredictionsDeprecated(autofill::AutofillDriver *, const std::vector &) override; bool IsOffTheRecord() override; scoped_refptr GetURLLoaderFactory() override; private: explicit AutofillClientQt(content::WebContents *webContents); WebContentsAdapterClient *adapterClient(); QScopedPointer m_popupController; }; } // namespace QtWebEngineCore #endif // AUTOFILL_CLIENT_QT_H