Bug 887690 - Part 1: Add emergency callback mode support (idl, webidl). r=hsinyi, sr=smaug

This commit is contained in:
Szu-Yu Chen [:aknow] 2013-08-14 08:48:28 -04:00
parent b883640fbe
commit f9a712c3b6
7 changed files with 78 additions and 4 deletions

View File

@ -21,6 +21,7 @@ if CONFIG['MOZ_B2G_RIL']:
XPIDL_SOURCES += [ XPIDL_SOURCES += [
'nsIDOMCFStateChangeEvent.idl', 'nsIDOMCFStateChangeEvent.idl',
'nsIDOMMobileConnection.idl', 'nsIDOMMobileConnection.idl',
'nsIDOMMozEmergencyCbModeEvent.idl',
'nsIDOMNetworkStats.idl', 'nsIDOMNetworkStats.idl',
'nsIDOMNetworkStatsManager.idl', 'nsIDOMNetworkStatsManager.idl',
'nsIMobileConnectionProvider.idl', 'nsIMobileConnectionProvider.idl',

View File

@ -11,7 +11,7 @@ interface nsIDOMMozMobileNetworkInfo;
interface nsIDOMMozMobileCellInfo; interface nsIDOMMozMobileCellInfo;
interface nsIDOMMozMobileCFInfo; interface nsIDOMMozMobileCFInfo;
[scriptable, builtinclass, uuid(ae82dac0-d1a0-11e2-8b8b-0800200c9a66)] [scriptable, builtinclass, uuid(35fbab20-ee07-454d-943d-090a9378f5cf)]
interface nsIDOMMozMobileConnection : nsIDOMEventTarget interface nsIDOMMozMobileConnection : nsIDOMEventTarget
{ {
const long ICC_SERVICE_CLASS_VOICE = (1 << 0); const long ICC_SERVICE_CLASS_VOICE = (1 << 0);
@ -268,7 +268,7 @@ interface nsIDOMMozMobileConnection : nsIDOMEventTarget
* *
* @param clirMode * @param clirMode
* Is one of the CLIR_* constants. * Is one of the CLIR_* constants.
* *
* If successful, the request's onsuccess will be called. * If successful, the request's onsuccess will be called.
* *
* Otherwise, the request's onerror will be called, and the request's error * Otherwise, the request's onerror will be called, and the request's error
@ -289,6 +289,16 @@ interface nsIDOMMozMobileConnection : nsIDOMEventTarget
*/ */
nsIDOMDOMRequest getCallingLineIdRestriction(); nsIDOMDOMRequest getCallingLineIdRestriction();
/**
* Exit emergency callback mode.
*
* If successful, the request's onsuccess will be called.
*
* Otherwise, the request's onerror will be called, and the request's error
* will be either 'RequestNotSupported' or 'GenericFailure'.
*/
nsIDOMDOMRequest exitEmergencyCbMode();
/** /**
* The 'voicechange' event is notified whenever the voice connection object * The 'voicechange' event is notified whenever the voice connection object
* changes. * changes.
@ -318,6 +328,12 @@ interface nsIDOMMozMobileConnection : nsIDOMEventTarget
* state changes. * state changes.
*/ */
[implicit_jscontext] attribute jsval oncfstatechange; [implicit_jscontext] attribute jsval oncfstatechange;
/**
* The 'emergencycbmodechange' event is notified whenever the emergency
* callback mode changes.
*/
[implicit_jscontext] attribute jsval onemergencycbmodechange;
}; };
[scriptable, uuid(49706beb-a160-40b7-b745-50f62e389a2c)] [scriptable, uuid(49706beb-a160-40b7-b745-50f62e389a2c)]

View File

@ -0,0 +1,31 @@
/* 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(15cc1010-f051-11e2-945c-60a44c237d2b)]
interface nsIDOMMozEmergencyCbModeEvent : nsIDOMEvent
{
/**
* Whether the mode is activated.
*/
readonly attribute boolean active;
/**
* Automatically exit the mode after the timeoutMs ms.
*/
readonly attribute unsigned long timeoutMs;
[noscript] void initMozEmergencyCbModeEvent(in DOMString aType,
in boolean aCanBubble,
in boolean aCancelable,
in boolean aActive,
in unsigned long aTimeoutMs);
};
dictionary MozEmergencyCbModeEventInit : EventInit
{
boolean active;
unsigned long timeoutMs;
};

View File

@ -10,7 +10,7 @@ interface nsIDOMMozMobileConnectionInfo;
interface nsIDOMMozMobileNetworkInfo; interface nsIDOMMozMobileNetworkInfo;
interface nsIDOMWindow; interface nsIDOMWindow;
[scriptable, uuid(74361840-c913-11e2-8b8b-0800200c9a66)] [scriptable, uuid(7da2d9f6-eba1-4339-bde1-dc6732d42cdf)]
interface nsIMobileConnectionListener : nsISupports interface nsIMobileConnectionListener : nsISupports
{ {
void notifyVoiceChanged(); void notifyVoiceChanged();
@ -24,13 +24,15 @@ interface nsIMobileConnectionListener : nsISupports
in DOMString number, in DOMString number,
in unsigned short timeSeconds, in unsigned short timeSeconds,
in unsigned short serviceClass); in unsigned short serviceClass);
void notifyEmergencyCbModeChanged(in boolean active,
in unsigned long timeoutMs);
}; };
/** /**
* XPCOM component (in the content process) that provides the mobile * XPCOM component (in the content process) that provides the mobile
* network information. * network information.
*/ */
[scriptable, uuid(12705160-d1b6-11e2-8b8b-0800200c9a66)] [scriptable, uuid(a16681a5-a7f1-4340-a478-e0326a49e988)]
interface nsIMobileConnectionProvider : nsISupports interface nsIMobileConnectionProvider : nsISupports
{ {
/** /**
@ -73,4 +75,6 @@ interface nsIMobileConnectionProvider : nsISupports
nsIDOMDOMRequest setCallingLineIdRestriction(in nsIDOMWindow window, nsIDOMDOMRequest setCallingLineIdRestriction(in nsIDOMWindow window,
in unsigned short clirMode); in unsigned short clirMode);
nsIDOMDOMRequest getCallingLineIdRestriction(in nsIDOMWindow window); nsIDOMDOMRequest getCallingLineIdRestriction(in nsIDOMWindow window);
nsIDOMDOMRequest exitEmergencyCbMode(in nsIDOMWindow window);
}; };

View File

@ -0,0 +1,20 @@
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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/.
*/
[Constructor(DOMString type,
optional MozEmergencyCbModeEventInit eventInitDict),
HeaderFile="GeneratedEventClasses.h"]
interface MozEmergencyCbModeEvent : Event
{
readonly attribute boolean active;
readonly attribute unsigned long timeoutMs;
};
dictionary MozEmergencyCbModeEventInit : EventInit
{
boolean active = false;
unsigned long timeoutMs = 0;
};

View File

@ -492,6 +492,7 @@ webidl_files += \
DataErrorEvent.webidl \ DataErrorEvent.webidl \
IccCardLockErrorEvent.webidl \ IccCardLockErrorEvent.webidl \
MozCellBroadcastEvent.webidl \ MozCellBroadcastEvent.webidl \
MozEmergencyCbModeEvent.webidl \
MozVoicemailEvent.webidl \ MozVoicemailEvent.webidl \
MozWifiConnectionInfoEvent.webidl \ MozWifiConnectionInfoEvent.webidl \
MozWifiStatusChangeEvent.webidl \ MozWifiStatusChangeEvent.webidl \

View File

@ -35,6 +35,7 @@ simple_events = [
'CFStateChangeEvent', 'CFStateChangeEvent',
'DataErrorEvent', 'DataErrorEvent',
'IccCardLockErrorEvent', 'IccCardLockErrorEvent',
'MozEmergencyCbModeEvent',
'MozWifiStatusChangeEvent', 'MozWifiStatusChangeEvent',
'MozWifiConnectionInfoEvent', 'MozWifiConnectionInfoEvent',
'MozCellBroadcastEvent', 'MozCellBroadcastEvent',