зеркало из https://github.com/mozilla/gecko-dev.git
Bug 778640 - Final version: Firing devicedisappeared event, create nsIDOMBluetoothDeviceAddressEvent by event generator, r=qdot, r=smaug
--- dom/bluetooth/BluetoothAdapter.cpp | 17 +++++++++++++++- dom/bluetooth/Makefile.in | 1 + .../nsIDOMBluetoothDeviceAddressEvent.idl | 21 ++++++++++++++++++++ js/xpconnect/src/event_impl_gen.conf.in | 3 ++- 4 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 dom/bluetooth/nsIDOMBluetoothDeviceAddressEvent.idl
This commit is contained in:
Родитель
10083eff12
Коммит
faa4304b5c
|
@ -14,11 +14,13 @@
|
|||
#include "BluetoothReplyRunnable.h"
|
||||
#include "BluetoothUtils.h"
|
||||
|
||||
#include "GeneratedEvents.h"
|
||||
#include "nsDOMClassInfo.h"
|
||||
#include "nsDOMEvent.h"
|
||||
#include "nsThreadUtils.h"
|
||||
#include "nsXPCOMCIDInternal.h"
|
||||
#include "nsIDOMDOMRequest.h"
|
||||
#include "nsIDOMBluetoothDeviceAddressEvent.h"
|
||||
#include "nsContentUtils.h"
|
||||
|
||||
#include "mozilla/LazyIdleThread.h"
|
||||
|
@ -272,6 +274,19 @@ BluetoothAdapter::Notify(const BluetoothSignal& aData)
|
|||
nsRefPtr<BluetoothDevice> d = BluetoothDevice::Create(GetOwner(), mPath, aData.value());
|
||||
nsRefPtr<BluetoothDeviceEvent> e = BluetoothDeviceEvent::Create(d);
|
||||
e->Dispatch(ToIDOMEventTarget(), NS_LITERAL_STRING("devicefound"));
|
||||
} else if (aData.name().EqualsLiteral("DeviceDisappeared")) {
|
||||
const nsAString& deviceAddress = aData.value().get_nsString();
|
||||
|
||||
nsCOMPtr<nsIDOMEvent> event;
|
||||
NS_NewDOMBluetoothDeviceAddressEvent(getter_AddRefs(event), nullptr, nullptr);
|
||||
|
||||
nsCOMPtr<nsIDOMBluetoothDeviceAddressEvent> e = do_QueryInterface(event);
|
||||
e->InitBluetoothDeviceAddressEvent(NS_LITERAL_STRING("devicedisappeared"),
|
||||
false, false, deviceAddress);
|
||||
e->SetTrusted(true);
|
||||
|
||||
bool dummy;
|
||||
DispatchEvent(event, &dummy);
|
||||
} else if (aData.name().EqualsLiteral("PropertyChanged")) {
|
||||
// Get BluetoothNamedValue, make sure array length is 1
|
||||
InfallibleTArray<BluetoothNamedValue> arr = aData.value().get_ArrayOfBluetoothNamedValue();
|
||||
|
|
|
@ -45,6 +45,7 @@ XPIDLSRCS = \
|
|||
nsIDOMBluetoothAdapter.idl \
|
||||
nsIDOMBluetoothDevice.idl \
|
||||
nsIDOMBluetoothDeviceEvent.idl \
|
||||
nsIDOMBluetoothDeviceAddressEvent.idl \
|
||||
nsIDOMBluetoothPropertyEvent.idl \
|
||||
$(NULL)
|
||||
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
/* 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 "nsIDOMEvent.idl"
|
||||
|
||||
[scriptable, builtinclass, uuid(afcb832f-bbb5-45fa-b703-f8185bd2d26d)]
|
||||
interface nsIDOMBluetoothDeviceAddressEvent : nsIDOMEvent
|
||||
{
|
||||
readonly attribute DOMString deviceAddress;
|
||||
|
||||
[noscript] void initBluetoothDeviceAddressEvent(in DOMString aType,
|
||||
in boolean aCanBubble,
|
||||
in boolean aCancelable,
|
||||
in DOMString aDeviceAddress);
|
||||
};
|
||||
|
||||
dictionary BluetoothDeviceAddressEventInit : EventInit
|
||||
{
|
||||
DOMString deviceAddress;
|
||||
};
|
|
@ -21,7 +21,8 @@ simple_events = [
|
|||
'DeviceOrientationEvent',
|
||||
'DeviceLightEvent',
|
||||
'MozApplicationEvent',
|
||||
'DeviceStorageChangeEvent'
|
||||
'DeviceStorageChangeEvent',
|
||||
'BluetoothDeviceAddressEvent'
|
||||
]
|
||||
|
||||
""" include file names """
|
||||
|
|
Загрузка…
Ссылка в новой задаче