OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 CHROME_BROWSER_UI_PASSWORDS_PASSWORDS_CLIENT_UI_DELEGATE_H_ | 5 #ifndef CHROME_BROWSER_UI_PASSWORDS_PASSWORDS_CLIENT_UI_DELEGATE_H_ |
6 #define CHROME_BROWSER_UI_PASSWORDS_PASSWORDS_CLIENT_UI_DELEGATE_H_ | 6 #define CHROME_BROWSER_UI_PASSWORDS_PASSWORDS_CLIENT_UI_DELEGATE_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/callback.h" | 12 #include "base/callback.h" |
| 13 #include "base/memory/ref_counted.h" |
13 #include "base/strings/string16.h" | 14 #include "base/strings/string16.h" |
14 #include "components/autofill/core/common/password_form.h" | 15 #include "components/autofill/core/common/password_form.h" |
15 | 16 |
16 namespace content { | 17 namespace content { |
17 class WebContents; | 18 class WebContents; |
18 } | 19 } |
19 | 20 |
20 namespace password_manager { | 21 namespace password_manager { |
21 class PasswordFormManager; | 22 class PasswordFormManager; |
22 } | 23 } |
23 | 24 |
24 // An interface for ChromePasswordManagerClient implemented by | 25 // An interface for ChromePasswordManagerClient implemented by |
25 // ManagePasswordsUIController. Allows to push a new state for the tab. | 26 // ManagePasswordsUIController. Allows to push a new state for the tab. |
26 class PasswordsClientUIDelegate { | 27 class PasswordsClientUIDelegate { |
27 public: | 28 public: |
28 // Called when the user submits a form containing login information, so the | 29 // Called when the user submits a form containing login information, so the |
29 // later requests to save or blacklist can be handled. | 30 // later requests to save or blacklist can be handled. |
30 // This stores the provided object and triggers the UI to prompt the user | 31 // This stores the provided object and triggers the UI to prompt the user |
31 // about whether they would like to save the password. | 32 // about whether they would like to save the password. |
32 virtual void OnPasswordSubmitted( | 33 virtual void OnPasswordSubmitted( |
33 std::unique_ptr<password_manager::PasswordFormManager> form_manager) = 0; | 34 scoped_refptr<password_manager::PasswordFormManager> form_manager) = 0; |
34 | 35 |
35 // Called when the user submits a new password for an existing credential. | 36 // Called when the user submits a new password for an existing credential. |
36 // This stores the provided object and triggers the UI to prompt the user | 37 // This stores the provided object and triggers the UI to prompt the user |
37 // about whether they would like to update the password. | 38 // about whether they would like to update the password. |
38 virtual void OnUpdatePasswordSubmitted( | 39 virtual void OnUpdatePasswordSubmitted( |
39 std::unique_ptr<password_manager::PasswordFormManager> form_manager) = 0; | 40 scoped_refptr<password_manager::PasswordFormManager> form_manager) = 0; |
40 | 41 |
41 // Called when the site asks user to choose from credentials. This triggers | 42 // Called when the site asks user to choose from credentials. This triggers |
42 // the UI to prompt the user. |local_credentials| shouldn't be empty. |origin| | 43 // the UI to prompt the user. |local_credentials| shouldn't be empty. |origin| |
43 // is a URL of the site that requested a credential. | 44 // is a URL of the site that requested a credential. |
44 // Returns true when the UI is shown. |callback| is called when the user made | 45 // Returns true when the UI is shown. |callback| is called when the user made |
45 // a decision. If the UI isn't shown the method returns false and doesn't call | 46 // a decision. If the UI isn't shown the method returns false and doesn't call |
46 // |callback|. | 47 // |callback|. |
47 virtual bool OnChooseCredentials( | 48 virtual bool OnChooseCredentials( |
48 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials, | 49 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials, |
49 const GURL& origin, | 50 const GURL& origin, |
50 const base::Callback<void(const autofill::PasswordForm*)>& callback) = 0; | 51 const base::Callback<void(const autofill::PasswordForm*)>& callback) = 0; |
51 | 52 |
52 // Called when user is auto signed in to the site. |local_forms[0]| contains | 53 // Called when user is auto signed in to the site. |local_forms[0]| contains |
53 // the credential returned to the site. |origin| is a URL of the site. | 54 // the credential returned to the site. |origin| is a URL of the site. |
54 virtual void OnAutoSignin( | 55 virtual void OnAutoSignin( |
55 std::vector<std::unique_ptr<autofill::PasswordForm>> local_forms, | 56 std::vector<std::unique_ptr<autofill::PasswordForm>> local_forms, |
56 const GURL& origin) = 0; | 57 const GURL& origin) = 0; |
57 | 58 |
58 // Called when it's the right time to enable autosign-in explicitly. | 59 // Called when it's the right time to enable autosign-in explicitly. |
59 virtual void OnPromptEnableAutoSignin() = 0; | 60 virtual void OnPromptEnableAutoSignin() = 0; |
60 | 61 |
61 // Called when the password will be saved automatically, but we still wish to | 62 // Called when the password will be saved automatically, but we still wish to |
62 // visually inform the user that the save has occured. | 63 // visually inform the user that the save has occured. |
63 virtual void OnAutomaticPasswordSave( | 64 virtual void OnAutomaticPasswordSave( |
64 std::unique_ptr<password_manager::PasswordFormManager> form_manager) = 0; | 65 scoped_refptr<password_manager::PasswordFormManager> form_manager) = 0; |
65 | 66 |
66 // Called when a form is autofilled with login information, so we can manage | 67 // Called when a form is autofilled with login information, so we can manage |
67 // password credentials for the current site which are stored in | 68 // password credentials for the current site which are stored in |
68 // |password_form_map|. This stores a copy of |password_form_map| and shows | 69 // |password_form_map|. This stores a copy of |password_form_map| and shows |
69 // the manage password icon. |federated_matches| contain the matching stored | 70 // the manage password icon. |federated_matches| contain the matching stored |
70 // federated credentials to display in the UI. | 71 // federated credentials to display in the UI. |
71 virtual void OnPasswordAutofilled( | 72 virtual void OnPasswordAutofilled( |
72 const std::map<base::string16, const autofill::PasswordForm*>& | 73 const std::map<base::string16, const autofill::PasswordForm*>& |
73 password_form_map, | 74 password_form_map, |
74 const GURL& origin, | 75 const GURL& origin, |
75 const std::vector<const autofill::PasswordForm*>* federated_matches) = 0; | 76 const std::vector<const autofill::PasswordForm*>* federated_matches) = 0; |
76 | 77 |
77 protected: | 78 protected: |
78 virtual ~PasswordsClientUIDelegate() = default; | 79 virtual ~PasswordsClientUIDelegate() = default; |
79 }; | 80 }; |
80 | 81 |
81 // Returns ManagePasswordsUIController instance for |contents| | 82 // Returns ManagePasswordsUIController instance for |contents| |
82 PasswordsClientUIDelegate* PasswordsClientUIDelegateFromWebContents( | 83 PasswordsClientUIDelegate* PasswordsClientUIDelegateFromWebContents( |
83 content::WebContents* web_contents); | 84 content::WebContents* web_contents); |
84 | 85 |
85 #endif // CHROME_BROWSER_UI_PASSWORDS_PASSWORDS_CLIENT_UI_DELEGATE_H_ | 86 #endif // CHROME_BROWSER_UI_PASSWORDS_PASSWORDS_CLIENT_UI_DELEGATE_H_ |
OLD | NEW |