Bug 1536097 - Part 2 - convert WebAuthnMaybeMakeCredentialExtraInfo to use a native IPDL maybe; r=jcj

Depends on D24062

Differential Revision: https://phabricator.services.mozilla.com/D24063

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Alex Gaynor 2019-03-19 23:26:20 +00:00
parent 8db559a3fd
commit 936775f7b8
7 changed files with 12 additions and 21 deletions

View File

@ -270,7 +270,7 @@ void U2F::Register(const nsAString& aAppId,
WebAuthnMakeCredentialInfo info(mOrigin, adjustedAppId, challenge, clientData,
adjustedTimeoutMillis, excludeList,
null_t() /* no extra info for U2F */);
Nothing() /* no extra info for U2F */);
MOZ_ASSERT(mTransaction.isNothing());
mTransaction = Some(U2FTransaction(AsVariant(callback)));

View File

@ -75,11 +75,6 @@ struct WebAuthnMakeCredentialExtraInfo {
uint8_t attestationConveyancePreference;
};
union WebAuthnMaybeMakeCredentialExtraInfo {
WebAuthnMakeCredentialExtraInfo;
null_t;
};
struct WebAuthnMakeCredentialInfo {
nsString Origin;
nsString RpId;
@ -87,7 +82,7 @@ struct WebAuthnMakeCredentialInfo {
nsCString ClientDataJSON;
uint32_t TimeoutMS;
WebAuthnScopedCredential[] ExcludeList;
WebAuthnMaybeMakeCredentialExtraInfo Extra;
WebAuthnMakeCredentialExtraInfo? Extra;
};
struct WebAuthnMakeCredentialResult {

View File

@ -109,8 +109,8 @@ RefPtr<U2FRegisterPromise> U2FHIDTokenManager::Register(
uint64_t registerFlags = 0;
if (aInfo.Extra().type() != WebAuthnMaybeMakeCredentialExtraInfo::Tnull_t) {
const auto& extra = aInfo.Extra().get_WebAuthnMakeCredentialExtraInfo();
if (aInfo.Extra().isSome()) {
const auto& extra = aInfo.Extra().ref();
const WebAuthnAuthenticatorSelection& sel = extra.AuthenticatorSelection();
UserVerificationRequirement userVerificaitonRequirement =

View File

@ -574,8 +574,8 @@ RefPtr<U2FRegisterPromise> U2FSoftTokenManager::Register(
}
}
if (aInfo.Extra().type() != WebAuthnMaybeMakeCredentialExtraInfo::Tnull_t) {
const auto& extra = aInfo.Extra().get_WebAuthnMakeCredentialExtraInfo();
if (aInfo.Extra().isSome()) {
const auto& extra = aInfo.Extra().ref();
const WebAuthnAuthenticatorSelection& sel = extra.AuthenticatorSelection();
UserVerificationRequirement userVerificaitonRequirement =

View File

@ -281,10 +281,8 @@ void U2FTokenManager::Register(
// Determine whether direct attestation was requested.
bool directAttestationRequested = false;
if (aTransactionInfo.Extra().type() ==
WebAuthnMaybeMakeCredentialExtraInfo::TWebAuthnMakeCredentialExtraInfo) {
const auto& extra =
aTransactionInfo.Extra().get_WebAuthnMakeCredentialExtraInfo();
if (aTransactionInfo.Extra().isSome()) {
const auto& extra = aTransactionInfo.Extra().ref();
AttestationConveyancePreference attestation =
static_cast<AttestationConveyancePreference>(

View File

@ -380,7 +380,7 @@ already_AddRefed<Promise> WebAuthnManager::MakeCredential(
WebAuthnMakeCredentialInfo info(origin, NS_ConvertUTF8toUTF16(rpId),
challenge, clientDataJSON, adjustedTimeout,
excludeList, extra);
excludeList, Some(extra));
#ifdef OS_WIN
if (!WinWebAuthnManager::AreWebAuthNApisAvailable()) {

View File

@ -207,9 +207,8 @@ void WinWebAuthnManager::Register(
// AttestationConveyance
DWORD winAttestation = WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_ANY;
if (aInfo.Extra().type() ==
WebAuthnMaybeMakeCredentialExtraInfo::TWebAuthnMakeCredentialExtraInfo) {
const auto& extra = aInfo.Extra().get_WebAuthnMakeCredentialExtraInfo();
if (aInfo.Extra().isSome()) {
const auto& extra = aInfo.Extra().ref();
rpInfo.pwszName = extra.Rp().Name().get();
rpInfo.pwszIcon = extra.Rp().Icon().get();
@ -387,8 +386,7 @@ void WinWebAuthnManager::Register(
nsTArray<uint8_t> authenticatorData;
if (aInfo.Extra().type() == WebAuthnMaybeMakeCredentialExtraInfo::
TWebAuthnMakeCredentialExtraInfo) {
if (aInfo.Extra().isSome()) {
authenticatorData.AppendElements(
pWebAuthNCredentialAttestation->pbAuthenticatorData,
pWebAuthNCredentialAttestation->cbAuthenticatorData);