Files
palemoon27/dom/bluetooth/ipc/BluetoothServiceChildProcess.cpp
T
roytam1 3f625686df import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1157064 - implementation of font-display. r=heycam,khuey (43fe566f45)
- Bug 1235186 - fix small userfont logging nit. r=m_kato (d40bead913)
- Bug 1188802 - only rebuild local webfont rules when needed. r=heycam (f74200aeb2)
- Backout unrelated code landed in dee3e26cc1c0 by mistake. (5d254b78b6)
- Bug 1236506: Add support for "-webkit-filter" as an alias for CSS property "filter". r=heycam (1e7ac6554a)
- Bug 1230426 - Remove support for -webkit-border-image longhand CSS property aliases. r=dholbert (a1a2d5e82a)
- Bug 1246101 - Restore some auto-completion for the align-/justify-* properties. r=dholbert (a33dd2e7c2)
- Bug 1195142 patch 1 - Set CSS_PROPERTY_CREATES_STACKING_CONTEXT for the opacity property. r=BenWa (e547f7b420)
- Bug 1195142 patch 2 - Add reftests for will-change creating a stacking context. r=BenWa (3bb9dc17b9)
- Bug 1195142 patch 3 - Link to correct specification URLs so the CSSWG test suite system is happy. (a8121cdcf0)
- Bug 1234966 - nsStylePosition::MaxDifference should include nsChangeHint_NeutralChange because CalcDiffrence returns it. r=heycam (aa0bf89e54)
- Bug 1244166: Don't ignore stroke/fill properties in high-contrast mode, since doing so can produce icons that are invisible or whose colors are unrelated to the user's chosen high-contrast colors. r=longsonr (6448b05118)
- Bug 1157057 - Rewrite the handling of the nsITimer object in nrappkitTimerCallback; r=ekr (7cc88409b0)
- Bug 1117984: added proxy connection state enum. r=bwc (0c643ff34a)
- Bug 1231971 - Refactor the NAT simulator to use e10s sockets when appropriate. r=drno (c0722c431b)
- Bug 1231973 - Allow NAT simulator to be enabled with the pref system. r=drno (c92ca4fefa)
- Bug 1201209 - Extend the timeout on socket readiness in test_nr_socket_unittest. r=drno (e9e5400902)
- Bug 1216815 - fix memory leaks in test TCP STUN server. r=mjf (11219f41fc)
- Bug 1194385 - Add new unit tests which demonstrate the current behavior. r=bwc (900c621491)
- crashreporte (2ac99868b6)
- Bug 1150966: Check whether |streams_| is null on stats methods in NrIceMediaStream. r=drno (130a9ac2da)
- Bug 1241690: reduce logging output for unconnected PCs. r=bwc (aa236d7184)
- Bug 1224845 - close sockets on errors and don't connect to IPv4 TURN TCP from IPv6 sockets. r=jesup (f128a67692)
- Bug 1189961 - added DNS AAAA convertion to nICEr transport addr. r=bwc (30c14fe7dd)
- Bug 1247536 - Fix -Wunreachable-code warning in media/mtransport/. r=drno (f6768f8539)
- Bug 1194259: nsresult != NS_IMETHODIMP rs=bustage (3a922e6e14)
- Bug 1237909 part 1 - Remove unused TransportLayer::RunOnThread function. r=bwc (d2d219d63a)
- Bug 1237909 part 2 - Do not return value from task for sync dispatch. r=froydnj (c5ec2aecfc)
- Bug 1245035 - Move LOCAL_INCLUDES to moz.build in media/omx-plugin/lib/ics/libvideoeditorplayer. r=mshal (54c363c9f7)
- Bug 1232069 - Check box sizes before alloc&copy. r=jya (86cfe660e7)
- Bug 1234778: Mark all audio frames as keyframes. r=kentuckyfriedtakahe (5e4f1b54d5)
- Bug 1231169 - report rust mp4parse track status in telemetry. r=kinetik,vladan (260d0fed99)
- Bug 1238420 - Update mp4parse-rust invocations in MP4Metadata to match CAPI changes. r=rillian (64c5d6a1ef)
- Bug 1238420 - Report mp4parse-rust errors via Telemetry. r=rillian,vladan (ff72f8dead)
- Bug 1219452 - Update script for rust mp4parser. r=kinetik (9abc268b60)
- Bug 1220754 - Update rust mp4parse import script for v0.1.3. r=kinetik (7185657598)
- Bug 1224785, Part 1 - Implement alert favicons backend. r=wchen (665c44b0cb)
- Bug 1224785, Part 2 - Show the site favicon in OS X notifications. r=mstange (814ff022ba)
- Bug 1224785, Part 3 - Don't include ShowWith{Icon}Backend on Android. r=me (fe323c2960)
- Bug 1243418 - Fix up incorrect 'aOverwrite' usage and impl in GLUploadHelpers r=jgilbert (67677b4921)
- clarify comment (88003aaf96)
- Bug 1204284: Show paper size options in OS X print dialog. r=smichaud (8bb40b4349)
- Bug 1214511 - Show copies, page range selection, and more on the expanded OSX print dialog. r=mstange (301d5cdccc)
- Bug 1216478 - prefer tooltiptext on a XUL element over title attribute on a containing toolbaritem when determining accessible name, r=surkov (ec1dfcad37)
- Bug 1248838 - ARIA owns change may fail, r=yzen (d183be3f3c)
- Bug 1222531 - turn off -Wextra-tokens on clang-cl in accessible/ directories; r=tbsaunde (6dd4dcae20)
- bug 1241453 - add DocAccessibleParent::GetXPCAccessible() r=davidb (f243398399)
- Bug 1087608 - eliminating a pref observer leak and fixing test timeout overflow that cause intermittents. r=eeejay (413354c349)
- Bug 1238368 - Re-introduce workaround for Android tap gesture. r=yzen (04bb9cea5a)
- Bug 1233863 - ARM64: Disable tests that require ion.enable = 1. r=jimb (b268c03c22)
- Bug 1191976 - Intentionally crash if we hit an IPC FatalError in the  parent process. r=billm (b6e9d90d34)
- Bug 1194721: Add |DaemonRunnable8|, r=shuang (0b293cb8a5)
- Bug 1194721: Add PDU_ prefix to daemon PDU constants, r=shuang (834240b14b)
- Bug 1228546 - Implement peripheral mode support for GATT API. r=brsun, r=mrbkap (01a711cac6)
- Bug 1194721: Add helpers for Gonk sensors daemon, r=gsvelto (524d1d6792)
2024-01-02 22:59:35 +08:00

886 lines
25 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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/. */
#include "base/basictypes.h"
#include "BluetoothServiceChildProcess.h"
#include "mozilla/Assertions.h"
#include "mozilla/dom/ContentChild.h"
#include "mozilla/dom/ipc/BlobChild.h"
#include "BluetoothChild.h"
#include "MainThreadUtils.h"
USING_BLUETOOTH_NAMESPACE
namespace {
BluetoothChild* sBluetoothChild;
inline
void
SendRequest(BluetoothReplyRunnable* aRunnable, const Request& aRequest)
{
MOZ_ASSERT(NS_IsMainThread());
MOZ_ASSERT(aRunnable);
NS_WARN_IF_FALSE(sBluetoothChild,
"Calling methods on BluetoothServiceChildProcess during "
"shutdown!");
if (sBluetoothChild) {
BluetoothRequestChild* actor = new BluetoothRequestChild(aRunnable);
sBluetoothChild->SendPBluetoothRequestConstructor(actor, aRequest);
}
}
} // namespace
// static
BluetoothServiceChildProcess*
BluetoothServiceChildProcess::Create()
{
MOZ_ASSERT(!sBluetoothChild);
mozilla::dom::ContentChild* contentChild =
mozilla::dom::ContentChild::GetSingleton();
MOZ_ASSERT(contentChild);
BluetoothServiceChildProcess* btService = new BluetoothServiceChildProcess();
sBluetoothChild = new BluetoothChild(btService);
contentChild->SendPBluetoothConstructor(sBluetoothChild);
return btService;
}
BluetoothServiceChildProcess::BluetoothServiceChildProcess()
{
}
BluetoothServiceChildProcess::~BluetoothServiceChildProcess()
{
sBluetoothChild = nullptr;
}
void
BluetoothServiceChildProcess::NoteDeadActor()
{
MOZ_ASSERT(sBluetoothChild);
sBluetoothChild = nullptr;
}
void
BluetoothServiceChildProcess::RegisterBluetoothSignalHandler(
const nsAString& aNodeName,
BluetoothSignalObserver* aHandler)
{
if (sBluetoothChild && !IsSignalRegistered(aNodeName)) {
sBluetoothChild->SendRegisterSignalHandler(nsString(aNodeName));
}
BluetoothService::RegisterBluetoothSignalHandler(aNodeName, aHandler);
}
void
BluetoothServiceChildProcess::UnregisterBluetoothSignalHandler(
const nsAString& aNodeName,
BluetoothSignalObserver* aHandler)
{
BluetoothService::UnregisterBluetoothSignalHandler(aNodeName, aHandler);
if (sBluetoothChild && !IsSignalRegistered(aNodeName)) {
sBluetoothChild->SendUnregisterSignalHandler(nsString(aNodeName));
}
}
nsresult
BluetoothServiceChildProcess::GetAdaptersInternal(
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, GetAdaptersRequest());
return NS_OK;
}
nsresult
BluetoothServiceChildProcess::StartInternal(BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, StartBluetoothRequest());
return NS_OK;
}
nsresult
BluetoothServiceChildProcess::StopInternal(BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, StopBluetoothRequest());
return NS_OK;
}
nsresult
BluetoothServiceChildProcess::GetConnectedDevicePropertiesInternal(
uint16_t aServiceUuid,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, ConnectedDevicePropertiesRequest(aServiceUuid));
return NS_OK;
}
nsresult
BluetoothServiceChildProcess::GetPairedDevicePropertiesInternal(
const nsTArray<BluetoothAddress>& aDeviceAddresses,
BluetoothReplyRunnable* aRunnable)
{
PairedDevicePropertiesRequest request;
request.addresses().AppendElements(aDeviceAddresses);
SendRequest(aRunnable, request);
return NS_OK;
}
nsresult
BluetoothServiceChildProcess::FetchUuidsInternal(
const BluetoothAddress& aDeviceAddress, BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, FetchUuidsRequest(aDeviceAddress));
return NS_OK;
}
void
BluetoothServiceChildProcess::StopDiscoveryInternal(
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, StopDiscoveryRequest());
}
void
BluetoothServiceChildProcess::StartDiscoveryInternal(
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, StartDiscoveryRequest());
}
void
BluetoothServiceChildProcess::StopLeScanInternal(
const BluetoothUuid& aScanUuid,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, StopLeScanRequest(aScanUuid));
}
void
BluetoothServiceChildProcess::StartLeScanInternal(
const nsTArray<BluetoothUuid>& aServiceUuids,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, StartLeScanRequest(aServiceUuids));
}
void
BluetoothServiceChildProcess::StartAdvertisingInternal(
const BluetoothUuid& aAppUuid,
const BluetoothGattAdvertisingData& aAdvData,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, StartAdvertisingRequest(aAppUuid, aAdvData));
}
void
BluetoothServiceChildProcess::StopAdvertisingInternal(
const BluetoothUuid& aAppUuid,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, StopAdvertisingRequest(aAppUuid));
}
nsresult
BluetoothServiceChildProcess::SetProperty(BluetoothObjectType aType,
const BluetoothNamedValue& aValue,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, SetPropertyRequest(aType, aValue));
return NS_OK;
}
nsresult
BluetoothServiceChildProcess::CreatePairedDeviceInternal(
const BluetoothAddress& aDeviceAddress, int aTimeout,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, PairRequest(aDeviceAddress, aTimeout));
return NS_OK;
}
nsresult
BluetoothServiceChildProcess::RemoveDeviceInternal(
const BluetoothAddress& aDeviceAddress, BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, UnpairRequest(aDeviceAddress));
return NS_OK;
}
nsresult
BluetoothServiceChildProcess::GetServiceChannel(const BluetoothAddress& aDeviceAddress,
const BluetoothUuid& aServiceUuid,
BluetoothProfileManagerBase* aManager)
{
MOZ_CRASH("This should never be called!");
}
bool
BluetoothServiceChildProcess::UpdateSdpRecords(const BluetoothAddress& aDeviceAddress,
BluetoothProfileManagerBase* aManager)
{
MOZ_CRASH("This should never be called!");
}
void
BluetoothServiceChildProcess::PinReplyInternal(
const BluetoothAddress& aDeviceAddress, bool aAccept,
const BluetoothPinCode& aPinCode, BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, PinReplyRequest(aDeviceAddress, aAccept, aPinCode));
}
void
BluetoothServiceChildProcess::SspReplyInternal(
const BluetoothAddress& aDeviceAddress,
BluetoothSspVariant aVariant, bool aAccept,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, SspReplyRequest(aDeviceAddress, aVariant, aAccept));
}
void
BluetoothServiceChildProcess::SetPinCodeInternal(
const BluetoothAddress& aDeviceAddress,
const BluetoothPinCode& aPinCode,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, SetPinCodeRequest(aDeviceAddress, aPinCode));
}
void
BluetoothServiceChildProcess::SetPasskeyInternal(
const BluetoothAddress& aDeviceAddress,
uint32_t aPasskey,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, SetPasskeyRequest(aDeviceAddress, aPasskey));
}
void
BluetoothServiceChildProcess::SetPairingConfirmationInternal(
const BluetoothAddress& aDeviceAddress,
bool aConfirm,
BluetoothReplyRunnable* aRunnable)
{
if (aConfirm) {
SendRequest(aRunnable, ConfirmPairingConfirmationRequest(aDeviceAddress));
} else {
SendRequest(aRunnable, DenyPairingConfirmationRequest(aDeviceAddress));
}
}
void
BluetoothServiceChildProcess::Connect(
const BluetoothAddress& aDeviceAddress,
uint32_t aCod, uint16_t aServiceUuid,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, ConnectRequest(aDeviceAddress, aCod, aServiceUuid));
}
void
BluetoothServiceChildProcess::Disconnect(
const BluetoothAddress& aDeviceAddress,
uint16_t aServiceUuid,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, DisconnectRequest(aDeviceAddress, aServiceUuid));
}
void
BluetoothServiceChildProcess::SendFile(
const BluetoothAddress& aDeviceAddress,
BlobParent* aBlobParent,
BlobChild* aBlobChild,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, SendFileRequest(aDeviceAddress, nullptr, aBlobChild));
}
void
BluetoothServiceChildProcess::SendFile(
const BluetoothAddress& aDeviceAddress,
Blob* aBlobChild,
BluetoothReplyRunnable* aRunnable)
{
// Parent-process-only method
MOZ_CRASH("This should never be called!");
}
void
BluetoothServiceChildProcess::StopSendingFile(
const BluetoothAddress& aDeviceAddress,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, StopSendingFileRequest(aDeviceAddress));
}
void
BluetoothServiceChildProcess::ConfirmReceivingFile(
const BluetoothAddress& aDeviceAddress, bool aConfirm,
BluetoothReplyRunnable* aRunnable)
{
if(aConfirm) {
SendRequest(aRunnable, ConfirmReceivingFileRequest(aDeviceAddress));
return;
}
SendRequest(aRunnable, DenyReceivingFileRequest(aDeviceAddress));
}
void
BluetoothServiceChildProcess::ConnectSco(BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, ConnectScoRequest());
}
void
BluetoothServiceChildProcess::DisconnectSco(BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, DisconnectScoRequest());
}
void
BluetoothServiceChildProcess::IsScoConnected(BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, IsScoConnectedRequest());
}
void
BluetoothServiceChildProcess::SetObexPassword(
const nsAString& aPassword,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, SetObexPasswordRequest(nsString(aPassword)));
}
void
BluetoothServiceChildProcess::RejectObexAuth(BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, RejectObexAuthRequest());
}
void
BluetoothServiceChildProcess::ReplyTovCardPulling(
BlobParent* aBlobParent,
BlobChild* aBlobChild,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, ReplyTovCardPullingRequest(nullptr, aBlobChild));
}
void
BluetoothServiceChildProcess::ReplyTovCardPulling(
Blob* aBlobChild,
BluetoothReplyRunnable* aRunnable)
{
// Parent-process-only method
MOZ_CRASH("This should never be called!");
}
void
BluetoothServiceChildProcess::ReplyToPhonebookPulling(
BlobParent* aBlobParent,
BlobChild* aBlobChild,
uint16_t aPhonebookSize,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
ReplyToPhonebookPullingRequest(nullptr, aBlobChild, aPhonebookSize));
}
void
BluetoothServiceChildProcess::ReplyToPhonebookPulling(
Blob* aBlobChild,
uint16_t aPhonebookSize,
BluetoothReplyRunnable* aRunnable)
{
// Parent-process-only method
MOZ_CRASH("This should never be called!");
}
void
BluetoothServiceChildProcess::ReplyTovCardListing(
BlobParent* aBlobParent,
BlobChild* aBlobChild,
uint16_t aPhonebookSize,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
ReplyTovCardListingRequest(nullptr, aBlobChild, aPhonebookSize));
}
void
BluetoothServiceChildProcess::ReplyTovCardListing(
Blob* aBlobChild,
uint16_t aPhonebookSize,
BluetoothReplyRunnable* aRunnable)
{
// Parent-process-only method
MOZ_CRASH("This should never be called!");
}
void
BluetoothServiceChildProcess::ReplyToMapFolderListing(long aMasId,
const nsAString& aFolderList,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
ReplyToFolderListingRequest(aMasId, nsString(aFolderList)));
}
void
BluetoothServiceChildProcess::ReplyToMapMessagesListing(BlobParent* aBlobParent,
BlobChild* aBlobChild,
long aMasId,
bool aNewMessage,
const nsAString& aTimestamp,
int aSize,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
ReplyToMessagesListingRequest(aMasId, nullptr, aBlobChild,
aNewMessage, nsString(aTimestamp), aSize));
}
void
BluetoothServiceChildProcess::ReplyToMapMessagesListing(long aMasId,
Blob* aBlob,
bool aNewMessage,
const nsAString& aTimestamp,
int aSize,
BluetoothReplyRunnable* aRunnable)
{
// Parent-process-only method
MOZ_CRASH("This should never be called!");
}
void
BluetoothServiceChildProcess::ReplyToMapGetMessage(BlobParent* aBlobParent,
BlobChild* aBlobChild,
long aMasId,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
ReplyToGetMessageRequest(aMasId, nullptr, aBlobChild));
}
void
BluetoothServiceChildProcess::ReplyToMapGetMessage(Blob* aBlob,
long aMasId,
BluetoothReplyRunnable* aRunnable)
{
// Parent-process-only method
MOZ_CRASH("This should never be called!");
}
void
BluetoothServiceChildProcess::ReplyToMapSetMessageStatus(long aMasId,
bool aStatus,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
ReplyToSetMessageStatusRequest(aMasId, aStatus));
}
void
BluetoothServiceChildProcess::ReplyToMapSendMessage(long aMasId,
const nsAString& aHandleId,
bool aStatus,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
ReplyToSendMessageRequest(aMasId, nsString(aHandleId), aStatus));
}
void
BluetoothServiceChildProcess::ReplyToMapMessageUpdate(long aMasId,
bool aStatus,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
ReplyToMessageUpdateRequest(aMasId, aStatus));
}
#ifdef MOZ_B2G_RIL
void
BluetoothServiceChildProcess::AnswerWaitingCall(
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, AnswerWaitingCallRequest());
}
void
BluetoothServiceChildProcess::IgnoreWaitingCall(
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, IgnoreWaitingCallRequest());
}
void
BluetoothServiceChildProcess::ToggleCalls(
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, ToggleCallsRequest());
}
#endif // MOZ_B2G_RIL
void
BluetoothServiceChildProcess::SendMetaData(const nsAString& aTitle,
const nsAString& aArtist,
const nsAString& aAlbum,
int64_t aMediaNumber,
int64_t aTotalMediaCount,
int64_t aDuration,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
SendMetaDataRequest(nsString(aTitle), nsString(aArtist),
nsString(aAlbum), aMediaNumber,
aTotalMediaCount, aDuration));
}
void
BluetoothServiceChildProcess::SendPlayStatus(int64_t aDuration,
int64_t aPosition,
ControlPlayStatus aPlayStatus,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
SendPlayStatusRequest(aDuration, aPosition, aPlayStatus));
}
void
BluetoothServiceChildProcess::ConnectGattClientInternal(
const BluetoothUuid& aAppUuid, const BluetoothAddress& aDeviceAddress,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, ConnectGattClientRequest(aAppUuid, aDeviceAddress));
}
void
BluetoothServiceChildProcess::DisconnectGattClientInternal(
const BluetoothUuid& aAppUuid, const BluetoothAddress& aDeviceAddress,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
DisconnectGattClientRequest(aAppUuid, aDeviceAddress));
}
void
BluetoothServiceChildProcess::DiscoverGattServicesInternal(
const BluetoothUuid& aAppUuid, BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, DiscoverGattServicesRequest(aAppUuid));
}
void
BluetoothServiceChildProcess::GattClientStartNotificationsInternal(
const BluetoothUuid& aAppUuid, const BluetoothGattServiceId& aServId,
const BluetoothGattId& aCharId, BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattClientStartNotificationsRequest(aAppUuid, aServId, aCharId));
}
void
BluetoothServiceChildProcess::GattClientStopNotificationsInternal(
const BluetoothUuid& aAppUuid, const BluetoothGattServiceId& aServId,
const BluetoothGattId& aCharId, BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattClientStopNotificationsRequest(aAppUuid, aServId, aCharId));
}
void
BluetoothServiceChildProcess::UnregisterGattClientInternal(
int aClientIf, BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, UnregisterGattClientRequest(aClientIf));
}
void
BluetoothServiceChildProcess::GattClientReadRemoteRssiInternal(
int aClientIf, const BluetoothAddress& aDeviceAddress,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattClientReadRemoteRssiRequest(aClientIf, aDeviceAddress));
}
void
BluetoothServiceChildProcess::GattClientReadCharacteristicValueInternal(
const BluetoothUuid& aAppUuid,
const BluetoothGattServiceId& aServiceId,
const BluetoothGattId& aCharacteristicId,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattClientReadCharacteristicValueRequest(aAppUuid,
aServiceId,
aCharacteristicId));
}
void
BluetoothServiceChildProcess::GattClientWriteCharacteristicValueInternal(
const BluetoothUuid& aAppUuid,
const BluetoothGattServiceId& aServiceId,
const BluetoothGattId& aCharacteristicId,
const BluetoothGattWriteType& aWriteType,
const nsTArray<uint8_t>& aValue,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattClientWriteCharacteristicValueRequest(aAppUuid,
aServiceId,
aCharacteristicId,
aWriteType,
aValue));
}
void
BluetoothServiceChildProcess::GattClientReadDescriptorValueInternal(
const BluetoothUuid& aAppUuid,
const BluetoothGattServiceId& aServiceId,
const BluetoothGattId& aCharacteristicId,
const BluetoothGattId& aDescriptorId,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattClientReadDescriptorValueRequest(aAppUuid,
aServiceId,
aCharacteristicId,
aDescriptorId));
}
void
BluetoothServiceChildProcess::GattClientWriteDescriptorValueInternal(
const BluetoothUuid& aAppUuid,
const BluetoothGattServiceId& aServiceId,
const BluetoothGattId& aCharacteristicId,
const BluetoothGattId& aDescriptorId,
const nsTArray<uint8_t>& aValue,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattClientWriteDescriptorValueRequest(aAppUuid,
aServiceId,
aCharacteristicId,
aDescriptorId,
aValue));
}
void
BluetoothServiceChildProcess::GattServerRegisterInternal(
const BluetoothUuid& aAppUuid,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,GattServerRegisterRequest(aAppUuid));
}
void
BluetoothServiceChildProcess::GattServerConnectPeripheralInternal(
const BluetoothUuid& aAppUuid,
const BluetoothAddress& aAddress,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattServerConnectPeripheralRequest(aAppUuid, aAddress));
}
void
BluetoothServiceChildProcess::GattServerDisconnectPeripheralInternal(
const BluetoothUuid& aAppUuid,
const BluetoothAddress& aAddress,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattServerDisconnectPeripheralRequest(aAppUuid, aAddress));
}
void
BluetoothServiceChildProcess::UnregisterGattServerInternal(
int aServerIf, BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable, UnregisterGattServerRequest(aServerIf));
}
void
BluetoothServiceChildProcess::GattServerAddServiceInternal(
const BluetoothUuid& aAppUuid,
const BluetoothGattServiceId& aServiceId,
uint16_t aHandleCount,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattServerAddServiceRequest(aAppUuid, aServiceId, aHandleCount));
}
void
BluetoothServiceChildProcess::GattServerAddIncludedServiceInternal(
const BluetoothUuid& aAppUuid,
const BluetoothAttributeHandle& aServiceHandle,
const BluetoothAttributeHandle& aIncludedServiceHandle,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattServerAddIncludedServiceRequest(aAppUuid,
aServiceHandle,
aIncludedServiceHandle));
}
void
BluetoothServiceChildProcess::GattServerAddCharacteristicInternal(
const BluetoothUuid& aAppUuid,
const BluetoothAttributeHandle& aServiceHandle,
const BluetoothUuid& aCharacteristicUuid,
BluetoothGattAttrPerm aPermissions,
BluetoothGattCharProp aProperties,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattServerAddCharacteristicRequest(aAppUuid,
aServiceHandle,
aCharacteristicUuid,
aPermissions,
aProperties));
}
void
BluetoothServiceChildProcess::GattServerAddDescriptorInternal(
const BluetoothUuid& aAppUuid,
const BluetoothAttributeHandle& aServiceHandle,
const BluetoothAttributeHandle& aCharacteristicHandle,
const BluetoothUuid& aDescriptorUuid,
BluetoothGattAttrPerm aPermissions,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattServerAddDescriptorRequest(aAppUuid,
aServiceHandle,
aCharacteristicHandle,
aDescriptorUuid,
aPermissions));
}
void
BluetoothServiceChildProcess::GattServerRemoveServiceInternal(
const BluetoothUuid& aAppUuid,
const BluetoothAttributeHandle& aServiceHandle,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattServerRemoveServiceRequest(aAppUuid, aServiceHandle));
}
void
BluetoothServiceChildProcess::GattServerStartServiceInternal(
const BluetoothUuid& aAppUuid,
const BluetoothAttributeHandle& aServiceHandle,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattServerStartServiceRequest(aAppUuid, aServiceHandle));
}
void
BluetoothServiceChildProcess::GattServerStopServiceInternal(
const BluetoothUuid& aAppUuid,
const BluetoothAttributeHandle& aServiceHandle,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattServerStopServiceRequest(aAppUuid, aServiceHandle));
}
void
BluetoothServiceChildProcess::GattServerSendResponseInternal(
const BluetoothUuid& aAppUuid,
const BluetoothAddress& aAddress,
uint16_t aStatus,
int32_t aRequestId,
const BluetoothGattResponse& aRsp,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattServerSendResponseRequest(aAppUuid,
aAddress,
aStatus,
aRequestId,
aRsp));
}
void
BluetoothServiceChildProcess::GattServerSendIndicationInternal(
const BluetoothUuid& aAppUuid,
const BluetoothAddress& aAddress,
const BluetoothAttributeHandle& aCharacteristicHandle,
bool aConfirm,
const nsTArray<uint8_t>& aValue,
BluetoothReplyRunnable* aRunnable)
{
SendRequest(aRunnable,
GattServerSendIndicationRequest(aAppUuid,
aAddress,
aCharacteristicHandle,
aConfirm,
aValue));
}
nsresult
BluetoothServiceChildProcess::HandleStartup()
{
// Don't need to do anything here for startup since our Create function takes
// care of the actor machinery.
return NS_OK;
}
nsresult
BluetoothServiceChildProcess::HandleShutdown()
{
// If this process is shutting down then we need to disconnect ourselves from
// the parent.
if (sBluetoothChild) {
sBluetoothChild->BeginShutdown();
}
return NS_OK;
}
nsresult
BluetoothServiceChildProcess::SendSinkMessage(const nsAString& aDeviceAddresses,
const nsAString& aMessage)
{
MOZ_CRASH("This should never be called!");
}
nsresult
BluetoothServiceChildProcess::SendInputMessage(const nsAString& aDeviceAddresses,
const nsAString& aMessage)
{
MOZ_CRASH("This should never be called!");
}
void
BluetoothServiceChildProcess::UpdatePlayStatus(uint32_t aDuration,
uint32_t aPosition,
ControlPlayStatus aPlayStatus)
{
MOZ_CRASH("This should never be called!");
}