|  | // Copyright 2024 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_UI_AUTOFILL_AUTOFILL_KEYBOARD_ACCESSORY_VIEW_H_ | 
|  | #define CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_KEYBOARD_ACCESSORY_VIEW_H_ | 
|  |  | 
|  | #include <memory> | 
|  | #include <string> | 
|  |  | 
|  | #include "base/functional/callback_forward.h" | 
|  | #include "base/memory/weak_ptr.h" | 
|  |  | 
|  | namespace autofill { | 
|  |  | 
|  | class AutofillKeyboardAccessoryController; | 
|  |  | 
|  | // The interface that the native view for the Keyboard Accessory implements. | 
|  | class AutofillKeyboardAccessoryView { | 
|  | public: | 
|  | // Creates an `AutofillKeyboardAccessoryView`. Returns `nullptr` if the | 
|  | // initialization is unsuccessful. | 
|  | static std::unique_ptr<AutofillKeyboardAccessoryView> Create( | 
|  | base::WeakPtr<AutofillKeyboardAccessoryController> controller); | 
|  |  | 
|  | virtual ~AutofillKeyboardAccessoryView() = default; | 
|  |  | 
|  | // Initializes the Java-side of this bridge. Returns true after a successful | 
|  | // creation and false otherwise. | 
|  | virtual bool Initialize() = 0; | 
|  |  | 
|  | // Requests to dismiss this view. | 
|  | virtual void Hide() = 0; | 
|  |  | 
|  | // Requests to show this view with the data provided by the controller. | 
|  | virtual void Show() = 0; | 
|  |  | 
|  | // Makes announcement for acessibility. | 
|  | virtual void AxAnnounce(const std::u16string& text) = 0; | 
|  |  | 
|  | // Ask to confirm a deletion. Triggers the callback upon the user confirming | 
|  | // or declining the deletion. The detection callback parameter specifies | 
|  | // whether the deletion was confirmed or declined. | 
|  | virtual void ConfirmDeletion( | 
|  | const std::u16string& confirmation_title, | 
|  | const std::u16string& confirmation_body, | 
|  | const std::u16string& confirmation_body_link, | 
|  | const std::u16string& confirm_button_text, | 
|  | base::OnceCallback<void(bool)> deletion_callback) = 0; | 
|  | }; | 
|  |  | 
|  | }  // namespace autofill | 
|  |  | 
|  | #endif  // CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_KEYBOARD_ACCESSORY_VIEW_H_ |