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

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

Issue 2035143002: Basic implementation of showing password fill dialog on page load (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Fix iOS compile Created 4 years, 6 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
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 <memory> 9 #include <memory>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "components/autofill/content/renderer/password_form_conversion_utils.h" 13 #include "components/autofill/content/renderer/password_form_conversion_utils.h"
14 #include "components/autofill/core/common/form_data_predictions.h" 14 #include "components/autofill/core/common/form_data_predictions.h"
15 #include "components/autofill/core/common/password_form_field_prediction_map.h" 15 #include "components/autofill/core/common/password_form_field_prediction_map.h"
16 #include "components/autofill/core/common/password_form_fill_data.h" 16 #include "components/autofill/core/common/password_form_fill_data.h"
17 #include "content/public/renderer/render_frame_observer.h" 17 #include "content/public/renderer/render_frame_observer.h"
18 #include "content/public/renderer/render_view_observer.h" 18 #include "content/public/renderer/render_view_observer.h"
19 #include "third_party/WebKit/public/web/WebInputElement.h" 19 #include "third_party/WebKit/public/web/WebInputElement.h"
20 20
21 namespace blink { 21 namespace blink {
22 class WebInputElement; 22 class WebInputElement;
23 class WebKeyboardEvent; 23 class WebKeyboardEvent;
24 class WebSecurityOrigin; 24 class WebSecurityOrigin;
25 } 25 }
26 26
27 namespace autofill { 27 namespace autofill {
28 28
29 class RendererSavePasswordProgressLogger;
30
29 // This class is responsible for filling password forms. 31 // This class is responsible for filling password forms.
30 class PasswordAutofillAgent : public content::RenderFrameObserver { 32 class PasswordAutofillAgent : public content::RenderFrameObserver {
31 public: 33 public:
32 explicit PasswordAutofillAgent(content::RenderFrame* render_frame); 34 explicit PasswordAutofillAgent(content::RenderFrame* render_frame);
33 ~PasswordAutofillAgent() override; 35 ~PasswordAutofillAgent() override;
34 36
35 // WebFrameClient editor related calls forwarded by AutofillAgent. 37 // WebFrameClient editor related calls forwarded by AutofillAgent.
36 // If they return true, it indicates the event was consumed and should not 38 // If they return true, it indicates the event was consumed and should not
37 // be used for any other autofill activity. 39 // be used for any other autofill activity.
38 bool TextFieldDidEndEditing(const blink::WebInputElement& element); 40 bool TextFieldDidEndEditing(const blink::WebInputElement& element);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 80
79 // Called when an AJAX has succesfully completed. Used to determine if 81 // Called when an AJAX has succesfully completed. Used to determine if
80 // a form has been submitted by AJAX without navigation. 82 // a form has been submitted by AJAX without navigation.
81 void AJAXSucceeded(); 83 void AJAXSucceeded();
82 84
83 // Called when the user first interacts with the page after a load. This is a 85 // Called when the user first interacts with the page after a load. This is a
84 // signal to make autofilled values of password input elements accessible to 86 // signal to make autofilled values of password input elements accessible to
85 // JavaScript. 87 // JavaScript.
86 void FirstUserGestureObserved(); 88 void FirstUserGestureObserved();
87 89
90 // Given password form data |form_data| and a supplied key |key| for
91 // referencing the password info, returns a set of WebInputElements in
92 // |elements|, which must be non-null, that the password manager has values
93 // for filling. Also takes an optional logger |logger| for logging password
94 // autofill behavior.
95 void GetFillableElementFromFormData(
96 int key,
97 const PasswordFormFillData& form_data,
98 RendererSavePasswordProgressLogger* logger,
99 std::vector<blink::WebInputElement>* elements);
100
101 bool logging_state_active() const { return logging_state_active_; }
102
88 protected: 103 protected:
89 virtual bool OriginCanAccessPasswordManager( 104 virtual bool OriginCanAccessPasswordManager(
90 const blink::WebSecurityOrigin& origin); 105 const blink::WebSecurityOrigin& origin);
91 106
92 private: 107 private:
93 // Ways to restrict which passwords are saved in ProvisionallySavePassword. 108 // Ways to restrict which passwords are saved in ProvisionallySavePassword.
94 enum ProvisionallySaveRestriction { 109 enum ProvisionallySaveRestriction {
95 RESTRICTION_NONE, 110 RESTRICTION_NONE,
96 RESTRICTION_NON_EMPTY_PASSWORD 111 RESTRICTION_NON_EMPTY_PASSWORD
97 }; 112 };
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 // Contains server predictions for username, password and/or new password 254 // Contains server predictions for username, password and/or new password
240 // fields for individual forms. 255 // fields for individual forms.
241 FormsPredictionsMap form_predictions_; 256 FormsPredictionsMap form_predictions_;
242 257
243 DISALLOW_COPY_AND_ASSIGN(PasswordAutofillAgent); 258 DISALLOW_COPY_AND_ASSIGN(PasswordAutofillAgent);
244 }; 259 };
245 260
246 } // namespace autofill 261 } // namespace autofill
247 262
248 #endif // COMPONENTS_AUTOFILL_CONTENT_RENDERER_PASSWORD_AUTOFILL_AGENT_H_ 263 #endif // COMPONENTS_AUTOFILL_CONTENT_RENDERER_PASSWORD_AUTOFILL_AGENT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698