OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 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_TAB_AUTOFILL_MANAGER_DELEGATE_H_ | |
6 #define CHROME_BROWSER_UI_AUTOFILL_TAB_AUTOFILL_MANAGER_DELEGATE_H_ | |
7 | |
8 #include "base/callback.h" | |
9 #include "base/compiler_specific.h" | |
10 #include "base/i18n/rtl.h" | |
11 #include "base/memory/weak_ptr.h" | |
12 #include "components/autofill/core/browser/autofill_manager_delegate.h" | |
13 #include "content/public/browser/web_contents_observer.h" | |
14 #include "content/public/browser/web_contents_user_data.h" | |
15 | |
16 namespace content { | |
17 struct FrameNavigateParams; | |
18 struct LoadCommittedDetails; | |
19 class WebContents; | |
20 } | |
21 | |
22 namespace autofill { | |
23 | |
24 class AutofillDialogController; | |
25 class AutofillPopupControllerImpl; | |
26 struct FormData; | |
27 | |
28 // Chrome implementation of AutofillManagerDelegate. | |
29 class TabAutofillManagerDelegate | |
30 : public AutofillManagerDelegate, | |
31 public content::WebContentsUserData<TabAutofillManagerDelegate>, | |
32 public content::WebContentsObserver { | |
33 public: | |
34 virtual ~TabAutofillManagerDelegate(); | |
35 | |
36 // Called when the tab corresponding to |this| instance is activated. | |
37 void TabActivated(); | |
38 | |
39 // AutofillManagerDelegate implementation. | |
40 virtual PersonalDataManager* GetPersonalDataManager() OVERRIDE; | |
41 virtual scoped_refptr<AutofillWebDataService> | |
42 GetDatabase() OVERRIDE; | |
43 virtual PrefService* GetPrefs() OVERRIDE; | |
44 virtual void HideRequestAutocompleteDialog() OVERRIDE; | |
45 virtual void ShowAutofillSettings() OVERRIDE; | |
46 virtual void ConfirmSaveCreditCard( | |
47 const AutofillMetrics& metric_logger, | |
48 const base::Closure& save_card_callback) OVERRIDE; | |
49 virtual void ShowRequestAutocompleteDialog( | |
50 const FormData& form, | |
51 const GURL& source_url, | |
52 const ResultCallback& callback) OVERRIDE; | |
53 virtual void ShowAutofillPopup( | |
54 const gfx::RectF& element_bounds, | |
55 base::i18n::TextDirection text_direction, | |
56 const std::vector<base::string16>& values, | |
57 const std::vector<base::string16>& labels, | |
58 const std::vector<base::string16>& icons, | |
59 const std::vector<int>& identifiers, | |
60 base::WeakPtr<AutofillPopupDelegate> delegate) OVERRIDE; | |
61 virtual void UpdateAutofillPopupDataListValues( | |
62 const std::vector<base::string16>& values, | |
63 const std::vector<base::string16>& labels) OVERRIDE; | |
64 virtual void HideAutofillPopup() OVERRIDE; | |
65 virtual bool IsAutocompleteEnabled() OVERRIDE; | |
66 virtual void DetectAccountCreationForms( | |
67 const std::vector<autofill::FormStructure*>& forms) OVERRIDE; | |
68 virtual void DidFillOrPreviewField( | |
69 const base::string16& autofilled_value, | |
70 const base::string16& profile_full_name) OVERRIDE; | |
71 | |
72 // content::WebContentsObserver implementation. | |
73 virtual void WebContentsDestroyed() OVERRIDE; | |
74 | |
75 // Exposed for testing. | |
76 AutofillDialogController* GetDialogControllerForTesting() { | |
77 return dialog_controller_.get(); | |
78 } | |
79 void SetDialogControllerForTesting( | |
80 const base::WeakPtr<AutofillDialogController>& dialog_controller) { | |
81 dialog_controller_ = dialog_controller; | |
82 } | |
83 | |
84 private: | |
85 explicit TabAutofillManagerDelegate(content::WebContents* web_contents); | |
86 friend class content::WebContentsUserData<TabAutofillManagerDelegate>; | |
87 | |
88 content::WebContents* const web_contents_; | |
89 base::WeakPtr<AutofillDialogController> dialog_controller_; | |
90 base::WeakPtr<AutofillPopupControllerImpl> popup_controller_; | |
91 | |
92 DISALLOW_COPY_AND_ASSIGN(TabAutofillManagerDelegate); | |
93 }; | |
94 | |
95 } // namespace autofill | |
96 | |
97 #endif // CHROME_BROWSER_UI_AUTOFILL_TAB_AUTOFILL_MANAGER_DELEGATE_H_ | |
OLD | NEW |