Bug 1323339 - IPDL for WebAuthn Protocol and PBackground additions; r=jcj r=baku

MozReview-Commit-ID: 3WzTVZEdjia
This commit is contained in:
Kyle Machulis 2017-04-19 16:19:28 -07:00
Родитель 742aa0d07f
Коммит 2945d52cd5
3 изменённых файлов: 64 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,56 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
/*
* IPC Transaction protocol for the WebAuthn DOM API. This IPC protocol allows
* the content process to call to the parent to access hardware for
* authentication registration and challenges. All transactions start in the
* child process, and the parent replies with a "Confirm*" message, or a
* "Cancel" message if there was an error (no hardware available, no registered
* keys, etc) or interruption (another transaction was started in another
* content process). Similarly, the content process can also request a cancel,
* either triggered explicitly by the user/script or due to UI events like
* selecting a different tab.
*/
include protocol PBackground;
namespace mozilla {
namespace dom {
struct WebAuthnScopedCredentialDescriptor {
// Converted from mozilla::dom::ScopedCredentialType enum
uint32_t type;
uint8_t[] id;
// Converted from mozilla::dom::WebAuthnTransport enum
uint32_t[] transports;
};
struct WebAuthnExtension {
/* TODO Fill in with predefined extensions */
};
struct WebAuthnTransactionInfo {
uint8_t[] RpIdHash;
uint8_t[] ClientDataHash;
uint32_t TimeoutMS;
WebAuthnScopedCredentialDescriptor[] Descriptors;
WebAuthnExtension[] Extensions;
};
async protocol PWebAuthnTransaction {
manager PBackground;
parent:
async __delete__();
async RequestRegister(WebAuthnTransactionInfo aTransactionInfo);
async RequestSign(WebAuthnTransactionInfo aTransactionInfo);
async RequestCancel();
child:
async ConfirmRegister(uint8_t[] RegBuffer, uint8_t[] SigBuffer);
async ConfirmSign(uint8_t[] CredentialID, uint8_t[] ReplyBuffer);
async Cancel(nsresult Error);
};
}
}

Просмотреть файл

@ -7,6 +7,10 @@
with Files("**"):
BUG_COMPONENT = ("Core", "DOM: Device Interfaces")
IPDL_SOURCES += [
'PWebAuthnTransaction.ipdl'
]
EXPORTS.mozilla.dom += [
'NSSU2FTokenRemote.h',
'ScopedCredential.h',

Просмотреть файл

@ -23,6 +23,7 @@ include protocol PQuota;
include protocol PChildToParentStream;
include protocol PParentToChildStream;
include protocol PServiceWorkerManager;
include protocol PWebAuthnTransaction;
include protocol PUDPSocket;
include protocol PVsync;
@ -69,6 +70,7 @@ sync protocol PBackground
manages PChildToParentStream;
manages PParentToChildStream;
manages PServiceWorkerManager;
manages PWebAuthnTransaction;
manages PUDPSocket;
manages PVsync;
@ -116,6 +118,8 @@ parent:
async PMemoryStream(uint64_t aSize);
async PWebAuthnTransaction();
child:
async PCache();
async PCacheStreamControl();