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/common/credential_manager_mojom_traits.h" 6 7 #include "mojo/public/cpp/base/string16_mojom_traits.h" 8 #include "url/mojom/origin_mojom_traits.h" 9 #include "url/mojom/url_gurl_mojom_traits.h" 10 11 namespace mojo { 12 13 // static 14 blink::mojom::CredentialType 15 EnumTraits<blink::mojom::CredentialType, password_manager::CredentialType>:: ToMojom(password_manager::CredentialType input)16 ToMojom(password_manager::CredentialType input) { 17 switch (input) { 18 case password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY: 19 return blink::mojom::CredentialType::EMPTY; 20 case password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD: 21 return blink::mojom::CredentialType::PASSWORD; 22 case password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED: 23 return blink::mojom::CredentialType::FEDERATED; 24 } 25 26 NOTREACHED(); 27 return blink::mojom::CredentialType::EMPTY; 28 } 29 30 // static 31 bool EnumTraits<blink::mojom::CredentialType, 32 password_manager::CredentialType>:: FromMojom(blink::mojom::CredentialType input,password_manager::CredentialType * output)33 FromMojom(blink::mojom::CredentialType input, 34 password_manager::CredentialType* output) { 35 switch (input) { 36 case blink::mojom::CredentialType::EMPTY: 37 *output = password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY; 38 return true; 39 case blink::mojom::CredentialType::PASSWORD: 40 *output = password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD; 41 return true; 42 case blink::mojom::CredentialType::FEDERATED: 43 *output = password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED; 44 return true; 45 } 46 47 NOTREACHED(); 48 return false; 49 } 50 51 // static 52 blink::mojom::CredentialManagerError 53 EnumTraits<blink::mojom::CredentialManagerError, 54 password_manager::CredentialManagerError>:: ToMojom(password_manager::CredentialManagerError input)55 ToMojom(password_manager::CredentialManagerError input) { 56 switch (input) { 57 case password_manager::CredentialManagerError::SUCCESS: 58 return blink::mojom::CredentialManagerError::SUCCESS; 59 case password_manager::CredentialManagerError::PENDING_REQUEST: 60 return blink::mojom::CredentialManagerError::PENDING_REQUEST; 61 case password_manager::CredentialManagerError::PASSWORDSTOREUNAVAILABLE: 62 return blink::mojom::CredentialManagerError::PASSWORD_STORE_UNAVAILABLE; 63 case password_manager::CredentialManagerError::UNKNOWN: 64 return blink::mojom::CredentialManagerError::UNKNOWN; 65 } 66 67 NOTREACHED(); 68 return blink::mojom::CredentialManagerError::UNKNOWN; 69 } 70 71 // static 72 bool EnumTraits<blink::mojom::CredentialManagerError, 73 password_manager::CredentialManagerError>:: FromMojom(blink::mojom::CredentialManagerError input,password_manager::CredentialManagerError * output)74 FromMojom(blink::mojom::CredentialManagerError input, 75 password_manager::CredentialManagerError* output) { 76 switch (input) { 77 case blink::mojom::CredentialManagerError::SUCCESS: 78 *output = password_manager::CredentialManagerError::SUCCESS; 79 return true; 80 case blink::mojom::CredentialManagerError::PENDING_REQUEST: 81 *output = password_manager::CredentialManagerError::PENDING_REQUEST; 82 return true; 83 case blink::mojom::CredentialManagerError::PASSWORD_STORE_UNAVAILABLE: 84 *output = 85 password_manager::CredentialManagerError::PASSWORDSTOREUNAVAILABLE; 86 return true; 87 case blink::mojom::CredentialManagerError::NOT_ALLOWED: 88 case blink::mojom::CredentialManagerError::ANDROID_NOT_SUPPORTED_ERROR: 89 case blink::mojom::CredentialManagerError::ANDROID_ALGORITHM_UNSUPPORTED: 90 case blink::mojom::CredentialManagerError::ANDROID_EMPTY_ALLOW_CREDENTIALS: 91 case blink::mojom::CredentialManagerError:: 92 ANDROID_USER_VERIFICATION_UNSUPPORTED: 93 case blink::mojom::CredentialManagerError::INVALID_DOMAIN: 94 case blink::mojom::CredentialManagerError::INVALID_ICON_URL: 95 case blink::mojom::CredentialManagerError::CREDENTIAL_EXCLUDED: 96 case blink::mojom::CredentialManagerError::CREDENTIAL_NOT_RECOGNIZED: 97 case blink::mojom::CredentialManagerError::NOT_IMPLEMENTED: 98 case blink::mojom::CredentialManagerError::NOT_FOCUSED: 99 case blink::mojom::CredentialManagerError::RESIDENT_CREDENTIALS_UNSUPPORTED: 100 case blink::mojom::CredentialManagerError::PROTECTION_POLICY_INCONSISTENT: 101 case blink::mojom::CredentialManagerError::ABORT: 102 case blink::mojom::CredentialManagerError::OPAQUE_DOMAIN: 103 case blink::mojom::CredentialManagerError::INVALID_PROTOCOL: 104 case blink::mojom::CredentialManagerError::BAD_RELYING_PARTY_ID: 105 case blink::mojom::CredentialManagerError::CANNOT_READ_AND_WRITE_LARGE_BLOB: 106 case blink::mojom::CredentialManagerError:: 107 INVALID_ALLOW_CREDENTIALS_FOR_LARGE_BLOB: 108 case blink::mojom::CredentialManagerError::UNKNOWN: 109 *output = password_manager::CredentialManagerError::UNKNOWN; 110 return true; 111 } 112 113 NOTREACHED(); 114 return false; 115 } 116 117 // static 118 blink::mojom::CredentialMediationRequirement 119 EnumTraits<blink::mojom::CredentialMediationRequirement, 120 password_manager::CredentialMediationRequirement>:: ToMojom(password_manager::CredentialMediationRequirement input)121 ToMojom(password_manager::CredentialMediationRequirement input) { 122 switch (input) { 123 case password_manager::CredentialMediationRequirement::kSilent: 124 return blink::mojom::CredentialMediationRequirement::kSilent; 125 case password_manager::CredentialMediationRequirement::kOptional: 126 return blink::mojom::CredentialMediationRequirement::kOptional; 127 case password_manager::CredentialMediationRequirement::kRequired: 128 return blink::mojom::CredentialMediationRequirement::kRequired; 129 } 130 131 NOTREACHED(); 132 return blink::mojom::CredentialMediationRequirement::kOptional; 133 } 134 135 // static 136 bool EnumTraits<blink::mojom::CredentialMediationRequirement, 137 password_manager::CredentialMediationRequirement>:: FromMojom(blink::mojom::CredentialMediationRequirement input,password_manager::CredentialMediationRequirement * output)138 FromMojom(blink::mojom::CredentialMediationRequirement input, 139 password_manager::CredentialMediationRequirement* output) { 140 switch (input) { 141 case blink::mojom::CredentialMediationRequirement::kSilent: 142 *output = password_manager::CredentialMediationRequirement::kSilent; 143 return true; 144 case blink::mojom::CredentialMediationRequirement::kOptional: 145 *output = password_manager::CredentialMediationRequirement::kOptional; 146 return true; 147 case blink::mojom::CredentialMediationRequirement::kRequired: 148 *output = password_manager::CredentialMediationRequirement::kRequired; 149 return true; 150 } 151 152 NOTREACHED(); 153 return false; 154 } 155 156 // static 157 bool StructTraits<blink::mojom::CredentialInfoDataView, 158 password_manager::CredentialInfo>:: Read(blink::mojom::CredentialInfoDataView data,password_manager::CredentialInfo * out)159 Read(blink::mojom::CredentialInfoDataView data, 160 password_manager::CredentialInfo* out) { 161 if (data.ReadType(&out->type) && data.ReadId(&out->id) && 162 data.ReadName(&out->name) && data.ReadIcon(&out->icon) && 163 data.ReadPassword(&out->password) && 164 data.ReadFederation(&out->federation)) 165 return true; 166 167 return false; 168 } 169 170 } // namespace mojo 171