1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_CONTROLLER_H_ 6 #define CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_CONTROLLER_H_ 7 8 #include <string> 9 10 #include "base/callback.h" 11 #include "base/memory/weak_ptr.h" 12 #include "base/strings/string16.h" 13 #include "chrome/browser/ui/autofill/autofill_dialog_types.h" 14 #include "components/autofill/core/browser/autofill_client.h" 15 #include "components/autofill/core/browser/form_structure.h" 16 17 class GURL; 18 class PrefRegistrySimple; 19 20 namespace content { 21 class WebContents; 22 } 23 24 namespace user_prefs { 25 class PrefRegistrySyncable; 26 } 27 28 namespace autofill { 29 30 // This class defines the interface to the controller for TabAutofillManager. 31 class AutofillDialogController { 32 public: 33 virtual ~AutofillDialogController(); 34 35 // Creates the AutofillDialogController. 36 static base::WeakPtr<AutofillDialogController> Create( 37 content::WebContents* contents, 38 const FormData& form_structure, 39 const GURL& source_url, 40 const AutofillClient::ResultCallback& callback); 41 42 // Registers device preferences. 43 static void RegisterPrefs(PrefRegistrySimple* registry); 44 45 // Registers profile preferences. 46 static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); 47 48 // Shows the Autofill dialog. 49 virtual void Show() = 0; 50 51 // Hides the Autofill dialog. 52 virtual void Hide() = 0; 53 54 // Called when the tab hosting this dialog is activated by a user gesture. 55 // Used to trigger a refresh of the user's Wallet data. 56 virtual void TabActivated() = 0; 57 }; 58 59 } // namespace autofill 60 61 #endif // CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_CONTROLLER_H_ 62