OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_AUTOFILL_CONTENT_RENDERER_AUTOFILL_AGENT_H_ | 5 #ifndef COMPONENTS_AUTOFILL_CONTENT_RENDERER_AUTOFILL_AGENT_H_ |
6 #define COMPONENTS_AUTOFILL_CONTENT_RENDERER_AUTOFILL_AGENT_H_ | 6 #define COMPONENTS_AUTOFILL_CONTENT_RENDERER_AUTOFILL_AGENT_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
48 public blink::WebAutofillClient { | 48 public blink::WebAutofillClient { |
49 public: | 49 public: |
50 // PasswordAutofillAgent is guaranteed to outlive AutofillAgent. | 50 // PasswordAutofillAgent is guaranteed to outlive AutofillAgent. |
51 // PasswordGenerationAgent may be NULL. If it is not, then it is also | 51 // PasswordGenerationAgent may be NULL. If it is not, then it is also |
52 // guaranteed to outlive AutofillAgent. | 52 // guaranteed to outlive AutofillAgent. |
53 AutofillAgent(content::RenderView* render_view, | 53 AutofillAgent(content::RenderView* render_view, |
54 PasswordAutofillAgent* password_autofill_manager, | 54 PasswordAutofillAgent* password_autofill_manager, |
55 PasswordGenerationAgent* password_generation_agent); | 55 PasswordGenerationAgent* password_generation_agent); |
56 virtual ~AutofillAgent(); | 56 virtual ~AutofillAgent(); |
57 | 57 |
58 protected: | |
59 // PageClickListener: | |
60 virtual void FormControlElementClicked( | |
61 const blink::WebFormControlElement& element, | |
62 bool was_focused) OVERRIDE; | |
63 | |
64 // blink::WebAutofillClient: | |
65 virtual void textFieldDidEndEditing( | |
66 const blink::WebInputElement& element) OVERRIDE; | |
67 virtual void textFieldDidChange( | |
68 const blink::WebFormControlElement& element) OVERRIDE; | |
69 virtual void textFieldDidReceiveKeyDown( | |
70 const blink::WebInputElement& element, | |
71 const blink::WebKeyboardEvent& event) OVERRIDE; | |
72 virtual void didRequestAutocomplete( | |
73 const blink::WebFormElement& form) OVERRIDE; | |
74 | |
75 virtual void OnFillPasswordSuggestion(const base::string16& username, | |
76 const base::string16& password); | |
Ilya Sherman
2014/09/18 18:45:53
Please modify the test to simulate sending an IPC
Pritam Nikam
2014/09/19 11:08:03
Done.
| |
77 | |
78 // Called when interactive autocomplete finishes. |message| is printed to | |
79 // the console if non-empty. | |
80 virtual void OnRequestAutocompleteResult( | |
81 blink::WebFormElement::AutocompleteResult result, | |
82 const base::string16& message, | |
83 const FormData& form_data); | |
Ilya Sherman
2014/09/18 18:45:52
Ditto.
Pritam Nikam
2014/09/19 11:08:03
Done.
| |
84 | |
58 private: | 85 private: |
59 // content::RenderViewObserver: | 86 // content::RenderViewObserver: |
60 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; | 87 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
61 virtual void DidFinishDocumentLoad(blink::WebLocalFrame* frame) OVERRIDE; | 88 virtual void DidFinishDocumentLoad(blink::WebLocalFrame* frame) OVERRIDE; |
62 virtual void DidCommitProvisionalLoad(blink::WebLocalFrame* frame, | 89 virtual void DidCommitProvisionalLoad(blink::WebLocalFrame* frame, |
63 bool is_new_navigation) OVERRIDE; | 90 bool is_new_navigation) OVERRIDE; |
64 virtual void FrameDetached(blink::WebFrame* frame) OVERRIDE; | 91 virtual void FrameDetached(blink::WebFrame* frame) OVERRIDE; |
65 virtual void FrameWillClose(blink::WebFrame* frame) OVERRIDE; | 92 virtual void FrameWillClose(blink::WebFrame* frame) OVERRIDE; |
66 virtual void WillSubmitForm(blink::WebLocalFrame* frame, | 93 virtual void WillSubmitForm(blink::WebLocalFrame* frame, |
67 const blink::WebFormElement& form) OVERRIDE; | 94 const blink::WebFormElement& form) OVERRIDE; |
68 virtual void DidChangeScrollOffset(blink::WebLocalFrame* frame) OVERRIDE; | 95 virtual void DidChangeScrollOffset(blink::WebLocalFrame* frame) OVERRIDE; |
69 virtual void FocusedNodeChanged(const blink::WebNode& node) OVERRIDE; | 96 virtual void FocusedNodeChanged(const blink::WebNode& node) OVERRIDE; |
70 virtual void OrientationChangeEvent() OVERRIDE; | 97 virtual void OrientationChangeEvent() OVERRIDE; |
71 virtual void Resized() OVERRIDE; | 98 virtual void Resized() OVERRIDE; |
72 | 99 |
73 // PageClickListener: | |
74 virtual void FormControlElementClicked( | |
75 const blink::WebFormControlElement& element, | |
76 bool was_focused) OVERRIDE; | |
77 | |
78 // blink::WebAutofillClient: | 100 // blink::WebAutofillClient: |
Ilya Sherman
2014/09/18 18:45:52
If you move some of the methods in this group to h
Pritam Nikam
2014/09/19 11:08:03
Done.
| |
79 virtual void textFieldDidEndEditing( | |
80 const blink::WebInputElement& element); | |
81 virtual void textFieldDidChange( | |
82 const blink::WebFormControlElement& element); | |
83 virtual void textFieldDidReceiveKeyDown( | |
84 const blink::WebInputElement& element, | |
85 const blink::WebKeyboardEvent& event); | |
86 virtual void didRequestAutocomplete( | |
87 const blink::WebFormElement& form); | |
88 virtual void setIgnoreTextChanges(bool ignore); | 101 virtual void setIgnoreTextChanges(bool ignore); |
89 virtual void didAssociateFormControls( | 102 virtual void didAssociateFormControls( |
90 const blink::WebVector<blink::WebNode>& nodes); | 103 const blink::WebVector<blink::WebNode>& nodes); |
91 virtual void openTextDataListChooser(const blink::WebInputElement& element); | 104 virtual void openTextDataListChooser(const blink::WebInputElement& element); |
92 virtual void firstUserGestureObserved(); | 105 virtual void firstUserGestureObserved(); |
93 | 106 |
94 void OnFieldTypePredictionsAvailable( | 107 void OnFieldTypePredictionsAvailable( |
95 const std::vector<FormDataPredictions>& forms); | 108 const std::vector<FormDataPredictions>& forms); |
96 void OnFillForm(int query_id, const FormData& form); | 109 void OnFillForm(int query_id, const FormData& form); |
97 void OnPing(); | 110 void OnPing(); |
98 void OnPreviewForm(int query_id, const FormData& form); | 111 void OnPreviewForm(int query_id, const FormData& form); |
99 | 112 |
100 // For external Autofill selection. | 113 // For external Autofill selection. |
101 void OnClearForm(); | 114 void OnClearForm(); |
102 void OnClearPreviewedForm(); | 115 void OnClearPreviewedForm(); |
103 void OnFillFieldWithValue(const base::string16& value); | 116 void OnFillFieldWithValue(const base::string16& value); |
104 void OnPreviewFieldWithValue(const base::string16& value); | 117 void OnPreviewFieldWithValue(const base::string16& value); |
105 void OnAcceptDataListSuggestion(const base::string16& value); | 118 void OnAcceptDataListSuggestion(const base::string16& value); |
106 void OnFillPasswordSuggestion(const base::string16& username, | |
107 const base::string16& password); | |
108 void OnPreviewPasswordSuggestion(const base::string16& username, | 119 void OnPreviewPasswordSuggestion(const base::string16& username, |
109 const base::string16& password); | 120 const base::string16& password); |
110 | 121 |
111 // Called when interactive autocomplete finishes. |message| is printed to | |
112 // the console if non-empty. | |
113 void OnRequestAutocompleteResult( | |
114 blink::WebFormElement::AutocompleteResult result, | |
115 const base::string16& message, | |
116 const FormData& form_data); | |
117 | |
118 // Called when an autocomplete request succeeds or fails with the |result|. | 122 // Called when an autocomplete request succeeds or fails with the |result|. |
119 void FinishAutocompleteRequest( | 123 void FinishAutocompleteRequest( |
120 blink::WebFormElement::AutocompleteResult result); | 124 blink::WebFormElement::AutocompleteResult result); |
121 | 125 |
122 // Called in a posted task by textFieldDidChange() to work-around a WebKit bug | 126 // Called in a posted task by textFieldDidChange() to work-around a WebKit bug |
123 // http://bugs.webkit.org/show_bug.cgi?id=16976 | 127 // http://bugs.webkit.org/show_bug.cgi?id=16976 |
124 void TextFieldDidChangeImpl(const blink::WebFormControlElement& element); | 128 void TextFieldDidChangeImpl(const blink::WebFormControlElement& element); |
125 | 129 |
126 // Shows the autofill suggestions for |element|. | 130 // Shows the autofill suggestions for |element|. |
127 // This call is asynchronous and may or may not lead to the showing of a | 131 // This call is asynchronous and may or may not lead to the showing of a |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
223 // messages to close the Autofill popup when it can't possibly be showing. | 227 // messages to close the Autofill popup when it can't possibly be showing. |
224 bool is_popup_possibly_visible_; | 228 bool is_popup_possibly_visible_; |
225 | 229 |
226 // True if a message has already been sent about forms for the main frame. | 230 // True if a message has already been sent about forms for the main frame. |
227 // When the main frame is first loaded, a message is sent even if no forms | 231 // When the main frame is first loaded, a message is sent even if no forms |
228 // exist in the frame. Otherwise, such messages are supressed. | 232 // exist in the frame. Otherwise, such messages are supressed. |
229 bool main_frame_processed_; | 233 bool main_frame_processed_; |
230 | 234 |
231 base::WeakPtrFactory<AutofillAgent> weak_ptr_factory_; | 235 base::WeakPtrFactory<AutofillAgent> weak_ptr_factory_; |
232 | 236 |
233 friend class PasswordAutofillAgentTest; | |
234 friend class RequestAutocompleteRendererTest; | |
235 FRIEND_TEST_ALL_PREFIXES(AutofillRendererTest, FillFormElement); | |
236 FRIEND_TEST_ALL_PREFIXES(AutofillRendererTest, SendDynamicForms); | |
237 FRIEND_TEST_ALL_PREFIXES(AutofillRendererTest, ShowAutofillWarning); | |
238 FRIEND_TEST_ALL_PREFIXES(PasswordAutofillAgentTest, WaitUsername); | |
239 FRIEND_TEST_ALL_PREFIXES(PasswordAutofillAgentTest, SuggestionAccept); | |
240 FRIEND_TEST_ALL_PREFIXES(PasswordAutofillAgentTest, SuggestionSelect); | |
241 FRIEND_TEST_ALL_PREFIXES( | |
242 PasswordAutofillAgentTest, | |
243 PasswordAutofillTriggersOnChangeEventsWaitForUsername); | |
244 FRIEND_TEST_ALL_PREFIXES(PasswordAutofillAgentTest, CredentialsOnClick); | |
245 FRIEND_TEST_ALL_PREFIXES(RequestAutocompleteRendererTest, | |
246 NoCancelOnMainFrameNavigateAfterDone); | |
247 FRIEND_TEST_ALL_PREFIXES(RequestAutocompleteRendererTest, | |
248 NoCancelOnSubframeNavigateAfterDone); | |
249 FRIEND_TEST_ALL_PREFIXES(RequestAutocompleteRendererTest, | |
250 InvokingTwiceOnlyShowsOnce); | |
251 | |
252 DISALLOW_COPY_AND_ASSIGN(AutofillAgent); | 237 DISALLOW_COPY_AND_ASSIGN(AutofillAgent); |
253 }; | 238 }; |
254 | 239 |
255 } // namespace autofill | 240 } // namespace autofill |
256 | 241 |
257 #endif // COMPONENTS_AUTOFILL_CONTENT_RENDERER_AUTOFILL_AGENT_H_ | 242 #endif // COMPONENTS_AUTOFILL_CONTENT_RENDERER_AUTOFILL_AGENT_H_ |
OLD | NEW |