| Index: components/password_manager/content/renderer/credential_manager_client.cc
|
| diff --git a/components/password_manager/content/renderer/credential_manager_client.cc b/components/password_manager/content/renderer/credential_manager_client.cc
|
| index 98ded2b2b18165f3b96dbe98f99bf207d93e7f08..9ce51d27eac22306db3e2b28d5fa0b13e339b65a 100644
|
| --- a/components/password_manager/content/renderer/credential_manager_client.cc
|
| +++ b/components/password_manager/content/renderer/credential_manager_client.cc
|
| @@ -9,6 +9,8 @@
|
| #include "content/public/renderer/render_view.h"
|
| #include "third_party/WebKit/public/platform/WebCredential.h"
|
| #include "third_party/WebKit/public/platform/WebCredentialManagerError.h"
|
| +#include "third_party/WebKit/public/platform/WebFederatedCredential.h"
|
| +#include "third_party/WebKit/public/platform/WebLocalCredential.h"
|
| #include "third_party/WebKit/public/web/WebView.h"
|
|
|
| namespace password_manager {
|
| @@ -78,9 +80,21 @@ void CredentialManagerClient::OnSendCredential(int request_id,
|
| const CredentialInfo& info) {
|
| RequestCallbacks* callbacks = request_callbacks_.Lookup(request_id);
|
| DCHECK(callbacks);
|
| - // TODO(mkwst): Split into local/federated credentials.
|
| - blink::WebCredential credential(info.id, info.name, info.avatar);
|
| - callbacks->onSuccess(&credential);
|
| + scoped_ptr<blink::WebCredential> credential;
|
| + switch (info.type) {
|
| + case CREDENTIAL_TYPE_FEDERATED:
|
| + credential.reset(new blink::WebFederatedCredential(
|
| + info.id, info.name, info.avatar, info.federation));
|
| + break;
|
| + case CREDENTIAL_TYPE_LOCAL:
|
| + credential.reset(new blink::WebLocalCredential(info.id, info.name,
|
| + info.avatar, info.password));
|
| + break;
|
| + case CREDENTIAL_TYPE_UNKNOWN:
|
| + NOTREACHED();
|
| + break;
|
| + }
|
| + callbacks->onSuccess(credential.get());
|
| request_callbacks_.Remove(request_id);
|
| }
|
|
|
|
|