OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "components/password_manager/content/public/type_converters.h" | |
6 | |
7 #include "base/logging.h" | |
8 #include "components/password_manager/core/common/credential_manager_types.h" | |
9 #include "mojo/common/common_type_converters.h" | |
10 #include "mojo/common/url_type_converters.h" | |
11 #include "third_party/WebKit/public/platform/WebCredential.h" | |
12 #include "third_party/WebKit/public/platform/WebFederatedCredential.h" | |
13 #include "third_party/WebKit/public/platform/WebPasswordCredential.h" | |
14 | |
15 using namespace password_manager; | |
16 | |
17 namespace mojo { | |
18 | |
19 namespace { | |
20 | |
21 mojom::CredentialType CMCredentialTypeToMojo(CredentialType type) { | |
22 switch (type) { | |
23 case CredentialType::CREDENTIAL_TYPE_EMPTY: | |
24 return mojom::CredentialType::EMPTY; | |
25 case CredentialType::CREDENTIAL_TYPE_PASSWORD: | |
26 return mojom::CredentialType::PASSWORD; | |
27 case CredentialType::CREDENTIAL_TYPE_FEDERATED: | |
28 return mojom::CredentialType::FEDERATED; | |
29 default: | |
vabr (Chromium)
2016/03/09 16:26:29
Could you leave out the default clause completely?
leonhsl(Using Gerrit)
2016/03/10 06:42:41
Done. Thanks a lot for the knowledge sharing! Will
| |
30 NOTREACHED(); | |
31 } | |
32 return mojom::CredentialType::EMPTY; | |
vabr (Chromium)
2016/03/09 16:26:29
nit: Put a NOTREACHED() between the current lines
leonhsl(Using Gerrit)
2016/03/10 06:42:41
Done.
| |
33 } | |
34 | |
35 CredentialType MojoCredentialTypeToCM(mojom::CredentialType type) { | |
36 switch (type) { | |
37 case mojom::CredentialType::EMPTY: | |
38 return CredentialType::CREDENTIAL_TYPE_EMPTY; | |
39 case mojom::CredentialType::PASSWORD: | |
40 return CredentialType::CREDENTIAL_TYPE_PASSWORD; | |
41 case mojom::CredentialType::FEDERATED: | |
42 return CredentialType::CREDENTIAL_TYPE_FEDERATED; | |
43 default: | |
44 NOTREACHED(); | |
45 } | |
46 return CredentialType::CREDENTIAL_TYPE_EMPTY; | |
47 } | |
48 | |
49 } // namespace | |
50 | |
51 mojom::CredentialInfoPtr | |
52 TypeConverter<mojom::CredentialInfoPtr, CredentialInfo>::Convert( | |
53 const CredentialInfo& input) { | |
54 mojom::CredentialInfoPtr output(mojom::CredentialInfo::New()); | |
55 output->type = CMCredentialTypeToMojo(input.type); | |
56 output->id = mojo::String::From(input.id); | |
57 output->name = mojo::String::From(input.name); | |
58 output->icon = mojo::String::From(input.icon); | |
59 output->password = mojo::String::From(input.password); | |
60 output->federation = input.federation; | |
61 | |
62 return output; | |
63 } | |
64 | |
65 CredentialInfo TypeConverter<CredentialInfo, mojom::CredentialInfoPtr>::Convert( | |
66 const mojom::CredentialInfoPtr& input) { | |
67 CredentialInfo output; | |
68 output.type = MojoCredentialTypeToCM(input->type); | |
69 output.id = input->id.To<base::string16>(); | |
70 output.name = input->name.To<base::string16>(); | |
71 output.icon = input->icon.To<GURL>(); | |
72 output.password = input->password.To<base::string16>(); | |
73 output.federation = input->federation; | |
74 | |
75 return output; | |
76 } | |
77 | |
78 mojom::CredentialInfoPtr | |
79 TypeConverter<mojom::CredentialInfoPtr, blink::WebCredential>::Convert( | |
80 const blink::WebCredential& input) { | |
81 mojom::CredentialInfoPtr output(mojom::CredentialInfo::New()); | |
82 | |
83 if (input.isPasswordCredential()) { | |
84 // blink::WebPasswordCredential | |
85 output->type = mojom::CredentialType::PASSWORD; | |
86 output->password = mojo::String::From(base::string16( | |
87 static_cast<const blink::WebPasswordCredential&>(input).password())); | |
88 } else { | |
89 DCHECK(input.isFederatedCredential()); | |
90 // blink::WebFederatedCredential | |
91 output->type = mojom::CredentialType::FEDERATED; | |
92 output->federation = | |
93 static_cast<const blink::WebFederatedCredential&>(input).provider(); | |
94 } | |
95 output->id = mojo::String::From(base::string16(input.id())); | |
96 output->name = mojo::String::From(base::string16(input.name())); | |
97 output->icon = mojo::String::From(GURL(input.iconURL())); | |
98 | |
99 return output; | |
100 } | |
101 | |
102 BlinkWebCredentialPtr | |
103 TypeConverter<BlinkWebCredentialPtr, mojom::CredentialInfoPtr>::Convert( | |
104 const mojom::CredentialInfoPtr& input) { | |
105 BlinkWebCredentialPtr output = nullptr; | |
vabr (Chromium)
2016/03/09 16:26:29
nit: scoped_ptr is automatically null on creation,
leonhsl(Using Gerrit)
2016/03/10 06:42:42
Done.
| |
106 | |
107 switch (input->type) { | |
108 case mojom::CredentialType::PASSWORD: | |
109 output.reset(new blink::WebPasswordCredential( | |
110 input->id.To<base::string16>(), input->password.To<base::string16>(), | |
111 input->name.To<base::string16>(), input->icon.To<GURL>())); | |
112 break; | |
113 case mojom::CredentialType::FEDERATED: | |
114 output.reset(new blink::WebFederatedCredential( | |
115 input->id.To<base::string16>(), input->federation, | |
116 input->name.To<base::string16>(), input->icon.To<GURL>())); | |
117 break; | |
118 case mojom::CredentialType::EMPTY: | |
119 // Intentionally empty, return nullptr. | |
120 break; | |
121 default: | |
122 NOTREACHED(); | |
123 } | |
124 | |
125 return output; | |
126 } | |
127 | |
128 } // namespace mojo | |
OLD | NEW |