// Copyright (c) 2019 GitHub, Inc. // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. #ifndef ELECTRON_SHELL_BROWSER_ELECTRON_AUTOFILL_DRIVER_H_ #define ELECTRON_SHELL_BROWSER_ELECTRON_AUTOFILL_DRIVER_H_ #include #include #if defined(TOOLKIT_VIEWS) #include "shell/browser/ui/autofill_popup.h" #endif #include "base/memory/raw_ptr.h" #include "mojo/public/cpp/bindings/associated_receiver.h" #include "shell/common/api/api.mojom.h" namespace mojo { template class PendingAssociatedReceiver; } // namespace mojo namespace electron { class AutofillDriver : public mojom::ElectronAutofillDriver { public: explicit AutofillDriver(content::RenderFrameHost* render_frame_host); AutofillDriver(const AutofillDriver&) = delete; AutofillDriver& operator=(const AutofillDriver&) = delete; ~AutofillDriver() override; void BindPendingReceiver( mojo::PendingAssociatedReceiver pending_receiver); // mojom::ElectronAutofillDriver void ShowAutofillPopup(const gfx::RectF& bounds, const std::vector& values, const std::vector& labels) override; void HideAutofillPopup() override; private: raw_ptr const render_frame_host_; #if defined(TOOLKIT_VIEWS) std::unique_ptr autofill_popup_; #endif mojo::AssociatedReceiver receiver_{this}; }; } // namespace electron #endif // ELECTRON_SHELL_BROWSER_ELECTRON_AUTOFILL_DRIVER_H_