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

Side by Side Diff: components/password_manager/content/public/type_converters.cc

Issue 1762603002: Switch components/password_manager code from IPC messages to Mojo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Impl done, unit_tests and browser_tests not ready yet Created 4 years, 9 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
(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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698