Chromium Code Reviews| Index: chrome/browser/extensions/api/passwords_private/passwords_private_api.h |
| diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_api.h b/chrome/browser/extensions/api/passwords_private/passwords_private_api.h |
| index 4cef1917f65877cd7aac77e2b9afeac96a7b7e94..0b1178e4389ded0dbddda8b498cdd587a0ec1303 100644 |
| --- a/chrome/browser/extensions/api/passwords_private/passwords_private_api.h |
| +++ b/chrome/browser/extensions/api/passwords_private/passwords_private_api.h |
| @@ -8,6 +8,8 @@ |
| #include <string> |
| #include "base/macros.h" |
| +#include "chrome/browser/extensions/api/passwords_private/passwords_private_delegate.h" |
| +#include "chrome/browser/ui/passwords/password_manager_presenter.h" |
| #include "extensions/browser/extension_function.h" |
| namespace extensions { |
| @@ -66,8 +68,8 @@ class PasswordsPrivateRemovePasswordExceptionFunction : |
| class PasswordsPrivateGetPlaintextPasswordFunction : |
| public UIThreadExtensionFunction { |
| public: |
| - PasswordsPrivateGetPlaintextPasswordFunction() {} |
| - DECLARE_EXTENSION_FUNCTION("passwordsPrivate.GetPlaintextPassword", |
| + PasswordsPrivateGetPlaintextPasswordFunction(); |
| + DECLARE_EXTENSION_FUNCTION("passwordsPrivate.getPlaintextPassword", |
| PASSWORDSPRIVATE_GETPLAINTEXTPASSWORD); |
| protected: |
| @@ -77,6 +79,45 @@ class PasswordsPrivateGetPlaintextPasswordFunction : |
| ResponseAction Run() override; |
| private: |
| + // Called by the observer when the password has been retrieved so that this |
| + // function can return the password value. |
| + void ReplyWithPlaintextPassword(const std::string& plaintext_password); |
| + |
| + // Observer used by PasswordsPrivateGetPlaintextPasswordFunction to listen |
| + // for when PasswordsPrivateDelegate fetches the requested plaintext |
| + // password. |
| + class PlaintextPasswordObserver : |
|
Ken Rockot(use gerrit already)
2015/05/22 16:42:28
You can just declare the existence of the class he
Kyle Horimoto
2015/05/22 17:52:53
Done.
|
| + public extensions::PasswordsPrivateDelegate::Observer { |
| + public: |
| + PlaintextPasswordObserver( |
| + const extensions::api::passwords_private::LoginPair& login_pair, |
| + const scoped_refptr<extensions:: |
| + PasswordsPrivateGetPlaintextPasswordFunction> fn_needing_reply, |
| + extensions::PasswordsPrivateDelegate* delegate); |
| + ~PlaintextPasswordObserver() override; |
| + |
| + // extensions::PasswordsPrivateDelegate::Observer overrides; |
| + void OnPlaintextPasswordFetched( |
| + const std::string& origin_url, |
| + const std::string& username, |
| + const std::string& password_value) override; |
| + |
| + private: |
| + // The LoginPair whose password is being requested. |
| + extensions::api::passwords_private::LoginPair login_pair_; |
| + |
| + // The function waiting on a response containing the password. A |
| + // scoped_refptr is used to ensure that the function is not deleted before |
| + // the plaintext password has been returned. |
| + scoped_refptr<extensions::PasswordsPrivateGetPlaintextPasswordFunction> |
| + fn_needing_reply_; |
| + |
| + // The delegate this class is observing. |
| + extensions::PasswordsPrivateDelegate* delegate_; |
| + }; |
| + |
| + PlaintextPasswordObserver* observer_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(PasswordsPrivateGetPlaintextPasswordFunction); |
| }; |