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 17class GURL; 18class PrefRegistrySimple; 19 20namespace content { 21class WebContents; 22} 23 24namespace user_prefs { 25class PrefRegistrySyncable; 26} 27 28namespace autofill { 29 30// This class defines the interface to the controller for TabAutofillManager. 31class 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