Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(98)

Side by Side Diff: components/autofill/content/renderer/password_autofill_agent.h

Issue 166043006: Add password manager autocomplete suggestion when a username element in clicked. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed a comment and cleaned up a browser test Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_PASSWORD_AUTOFILL_AGENT_H_ 5 #ifndef COMPONENTS_AUTOFILL_CONTENT_RENDERER_PASSWORD_AUTOFILL_AGENT_H_
6 #define COMPONENTS_AUTOFILL_CONTENT_RENDERER_PASSWORD_AUTOFILL_AGENT_H_ 6 #define COMPONENTS_AUTOFILL_CONTENT_RENDERER_PASSWORD_AUTOFILL_AGENT_H_
7 7
8 #include <map> 8 #include <map>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 28 matching lines...) Expand all
39 const blink::WebKeyboardEvent& event); 39 const blink::WebKeyboardEvent& event);
40 40
41 // Fills the password associated with user name |username|. Returns true if 41 // Fills the password associated with user name |username|. Returns true if
42 // the username and password fields were filled, false otherwise. 42 // the username and password fields were filled, false otherwise.
43 bool DidAcceptAutofillSuggestion(const blink::WebNode& node, 43 bool DidAcceptAutofillSuggestion(const blink::WebNode& node,
44 const blink::WebString& username); 44 const blink::WebString& username);
45 // A no-op. Password forms are not previewed, so they do not need to be 45 // A no-op. Password forms are not previewed, so they do not need to be
46 // cleared when the selection changes. However, this method returns 46 // cleared when the selection changes. However, this method returns
47 // true when |node| is fillable by password Autofill. 47 // true when |node| is fillable by password Autofill.
48 bool DidClearAutofillSelection(const blink::WebNode& node); 48 bool DidClearAutofillSelection(const blink::WebNode& node);
49 // Shows an Autofill popup with username suggestions for |element|. 49 // Shows an Autofill popup with username suggestions for |element|. If
50 // |show_all| is |true|, will show all possible suggestions for that element,
51 // otherwise shows suggestions based on current value of |element|.
50 // Returns true if any suggestions were shown, false otherwise. 52 // Returns true if any suggestions were shown, false otherwise.
51 bool ShowSuggestions(const blink::WebInputElement& element); 53 bool ShowSuggestions(const blink::WebInputElement& element, bool show_all);
52 54
53 // Called when new form controls are inserted. 55 // Called when new form controls are inserted.
54 void OnDynamicFormsSeen(blink::WebFrame* frame); 56 void OnDynamicFormsSeen(blink::WebFrame* frame);
55 57
56 protected: 58 protected:
57 virtual bool OriginCanAccessPasswordManager( 59 virtual bool OriginCanAccessPasswordManager(
58 const blink::WebSecurityOrigin& origin); 60 const blink::WebSecurityOrigin& origin);
59 61
62 // RenderViewObserver:
63 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
64
60 private: 65 private:
61 friend class PasswordAutofillAgentTest; 66 friend class PasswordAutofillAgentTest;
62 67
63 enum OtherPossibleUsernamesUsage { 68 enum OtherPossibleUsernamesUsage {
64 NOTHING_TO_AUTOFILL, 69 NOTHING_TO_AUTOFILL,
65 OTHER_POSSIBLE_USERNAMES_ABSENT, 70 OTHER_POSSIBLE_USERNAMES_ABSENT,
66 OTHER_POSSIBLE_USERNAMES_PRESENT, 71 OTHER_POSSIBLE_USERNAMES_PRESENT,
67 OTHER_POSSIBLE_USERNAME_SHOWN, 72 OTHER_POSSIBLE_USERNAME_SHOWN,
68 OTHER_POSSIBLE_USERNAME_SELECTED, 73 OTHER_POSSIBLE_USERNAME_SELECTED,
69 OTHER_POSSIBLE_USERNAMES_MAX 74 OTHER_POSSIBLE_USERNAMES_MAX
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 // Make the value of |element| accessible to JavaScript code. 107 // Make the value of |element| accessible to JavaScript code.
103 void ShowValue(blink::WebInputElement* element); 108 void ShowValue(blink::WebInputElement* element);
104 109
105 bool was_user_gesture_seen_; 110 bool was_user_gesture_seen_;
106 std::vector<blink::WebInputElement> elements_; 111 std::vector<blink::WebInputElement> elements_;
107 112
108 DISALLOW_COPY_AND_ASSIGN(PasswordValueGatekeeper); 113 DISALLOW_COPY_AND_ASSIGN(PasswordValueGatekeeper);
109 }; 114 };
110 115
111 // RenderViewObserver: 116 // RenderViewObserver:
112 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
113 virtual void DidStartProvisionalLoad(blink::WebFrame* frame) OVERRIDE; 117 virtual void DidStartProvisionalLoad(blink::WebFrame* frame) OVERRIDE;
114 virtual void DidStartLoading() OVERRIDE; 118 virtual void DidStartLoading() OVERRIDE;
115 virtual void DidFinishDocumentLoad(blink::WebFrame* frame) OVERRIDE; 119 virtual void DidFinishDocumentLoad(blink::WebFrame* frame) OVERRIDE;
116 virtual void DidFinishLoad(blink::WebFrame* frame) OVERRIDE; 120 virtual void DidFinishLoad(blink::WebFrame* frame) OVERRIDE;
117 virtual void FrameDetached(blink::WebFrame* frame) OVERRIDE; 121 virtual void FrameDetached(blink::WebFrame* frame) OVERRIDE;
118 virtual void FrameWillClose(blink::WebFrame* frame) OVERRIDE; 122 virtual void FrameWillClose(blink::WebFrame* frame) OVERRIDE;
119 virtual void WillSendSubmitEvent(blink::WebFrame* frame, 123 virtual void WillSendSubmitEvent(blink::WebFrame* frame,
120 const blink::WebFormElement& form) OVERRIDE; 124 const blink::WebFormElement& form) OVERRIDE;
121 virtual void WillSubmitForm(blink::WebFrame* frame, 125 virtual void WillSubmitForm(blink::WebFrame* frame,
122 const blink::WebFormElement& form) OVERRIDE; 126 const blink::WebFormElement& form) OVERRIDE;
123 virtual void WillProcessUserGesture() OVERRIDE; 127 virtual void WillProcessUserGesture() OVERRIDE;
124 128
125 // RenderView IPC handlers: 129 // RenderView IPC handlers:
126 void OnFillPasswordForm(const PasswordFormFillData& form_data); 130 void OnFillPasswordForm(const PasswordFormFillData& form_data);
127 131
128 // Scans the given frame for password forms and sends them up to the browser. 132 // Scans the given frame for password forms and sends them up to the browser.
129 // If |only_visible| is true, only forms visible in the layout are sent. 133 // If |only_visible| is true, only forms visible in the layout are sent.
130 void SendPasswordForms(blink::WebFrame* frame, bool only_visible); 134 void SendPasswordForms(blink::WebFrame* frame, bool only_visible);
131 135
132 void GetSuggestions(const PasswordFormFillData& fill_data, 136 void GetSuggestions(const PasswordFormFillData& fill_data,
133 const base::string16& input, 137 const base::string16& input,
134 std::vector<base::string16>* suggestions, 138 std::vector<base::string16>* suggestions,
135 std::vector<base::string16>* realms); 139 std::vector<base::string16>* realms,
140 bool show_all);
136 141
137 bool ShowSuggestionPopup(const PasswordFormFillData& fill_data, 142 bool ShowSuggestionPopup(const PasswordFormFillData& fill_data,
138 const blink::WebInputElement& user_input); 143 const blink::WebInputElement& user_input,
144 bool show_all);
139 145
140 // Attempts to fill |username_element| and |password_element| with the 146 // Attempts to fill |username_element| and |password_element| with the
141 // |fill_data|. Will use the data corresponding to the preferred username, 147 // |fill_data|. Will use the data corresponding to the preferred username,
142 // unless the |username_element| already has a value set. In that case, 148 // unless the |username_element| already has a value set. In that case,
143 // attempts to fill the password matching the already filled username, if 149 // attempts to fill the password matching the already filled username, if
144 // such a password exists. 150 // such a password exists.
145 void FillFormOnPasswordRecieved(const PasswordFormFillData& fill_data, 151 void FillFormOnPasswordRecieved(const PasswordFormFillData& fill_data,
146 blink::WebInputElement username_element, 152 blink::WebInputElement username_element,
147 blink::WebInputElement password_element); 153 blink::WebInputElement password_element);
148 154
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 PasswordValueGatekeeper gatekeeper_; 196 PasswordValueGatekeeper gatekeeper_;
191 197
192 base::WeakPtrFactory<PasswordAutofillAgent> weak_ptr_factory_; 198 base::WeakPtrFactory<PasswordAutofillAgent> weak_ptr_factory_;
193 199
194 DISALLOW_COPY_AND_ASSIGN(PasswordAutofillAgent); 200 DISALLOW_COPY_AND_ASSIGN(PasswordAutofillAgent);
195 }; 201 };
196 202
197 } // namespace autofill 203 } // namespace autofill
198 204
199 #endif // COMPONENTS_AUTOFILL_CONTENT_RENDERER_PASSWORD_AUTOFILL_AGENT_H_ 205 #endif // COMPONENTS_AUTOFILL_CONTENT_RENDERER_PASSWORD_AUTOFILL_AGENT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698