gecko/dom/icc/interfaces/nsIIccProvider.idl

151 lines
6.0 KiB
Plaintext

/* 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 "nsISupports.idl"
interface nsIDOMDOMRequest;
interface nsIDOMWindow;
interface nsIIccInfo;
[scriptable, uuid(7c0ada3d-d8d4-493e-9243-fa3df39855e4)]
interface nsIIccListener : nsISupports
{
void notifyStkCommand(in DOMString aMessage);
void notifyStkSessionEnd();
void notifyCardStateChanged();
void notifyIccInfoChanged();
};
/**
* XPCOM component (in the content process) that provides the ICC information.
*/
[scriptable, uuid(bf802bf0-4df2-11e4-916c-0800200c9a66)]
interface nsIIccProvider : nsISupports
{
// MUST match enum IccCardState in MozIcc.webidl!
const unsigned long CARD_STATE_UNKNOWN = 0;
const unsigned long CARD_STATE_READY = 1;
const unsigned long CARD_STATE_PIN_REQUIRED = 2;
const unsigned long CARD_STATE_PUK_REQUIRED = 3;
const unsigned long CARD_STATE_PERMANENT_BLOCKED = 4;
const unsigned long CARD_STATE_PERSONALIZATION_IN_PROGRESS = 5;
const unsigned long CARD_STATE_PERSONALIZATION_READY = 6;
const unsigned long CARD_STATE_NETWORK_LOCKED = 7;
const unsigned long CARD_STATE_NETWORK_SUBSET_LOCKED = 8;
const unsigned long CARD_STATE_CORPORATE_LOCKED = 9;
const unsigned long CARD_STATE_SERVICE_PROVIDER_LOCKED = 10;
const unsigned long CARD_STATE_SIM_LOCKED = 11;
const unsigned long CARD_STATE_NETWORK_PUK_REQUIRED = 12;
const unsigned long CARD_STATE_NETWORK_SUBSET_PUK_REQUIRED = 13;
const unsigned long CARD_STATE_CORPORATE_PUK_REQUIRED = 14;
const unsigned long CARD_STATE_SERVICE_PROVIDER_PUK_REQUIRED = 15;
const unsigned long CARD_STATE_SIM_PUK_REQUIRED = 16;
const unsigned long CARD_STATE_NETWORK1_LOCKED = 17;
const unsigned long CARD_STATE_NETWORK2_LOCKED = 18;
const unsigned long CARD_STATE_HRPD_NETWORK_LOCKED = 19;
const unsigned long CARD_STATE_RUIM_CORPORATE_LOCKED = 20;
const unsigned long CARD_STATE_RUIM_SERVICE_PROVIDER_LOCKED = 21;
const unsigned long CARD_STATE_RUIM_LOCKED = 22;
const unsigned long CARD_STATE_NETWORK1_PUK_REQUIRED = 23;
const unsigned long CARD_STATE_NETWORK2_PUK_REQUIRED = 24;
const unsigned long CARD_STATE_HRPD_NETWORK_PUK_REQUIRED = 25;
const unsigned long CARD_STATE_RUIM_CORPORATE_PUK_REQUIRED = 26;
const unsigned long CARD_STATE_RUIM_SERVICE_PROVIDER_PUK_REQUIRED = 27;
const unsigned long CARD_STATE_RUIM_PUK_REQUIRED = 28;
const unsigned long CARD_STATE_ILLEGAL = 29;
const unsigned long CARD_STATE_UNDETECTED = 4294967295; // UINT32_MAX
/**
* Called when a content process registers receiving unsolicited messages from
* RadioInterfaceLayer in the chrome process. Only a content process that has
* the 'mobileconnection' permission is allowed to register.
*/
void registerIccMsg(in unsigned long clientId, in nsIIccListener listener);
void unregisterIccMsg(in unsigned long clientId, in nsIIccListener listener);
/**
* UICC Information
*/
nsIIccInfo getIccInfo(in unsigned long clientId);
/**
* Card State
*
* One of the nsIIccProvider.CARD_STATE_* values.
*/
unsigned long getCardState(in unsigned long clientId);
/**
* STK interfaces.
*/
void sendStkResponse(in unsigned long clientId,
in nsIDOMWindow window,
in jsval command,
in jsval response);
void sendStkMenuSelection(in unsigned long clientId,
in nsIDOMWindow window,
in unsigned short itemIdentifier,
in boolean helpRequested);
void sendStkTimerExpiration(in unsigned long clientId,
in nsIDOMWindow window,
in jsval timer);
void sendStkEventDownload(in unsigned long clientId,
in nsIDOMWindow window,
in jsval event);
/**
* Card lock interfaces.
*/
nsIDOMDOMRequest getCardLockState(in unsigned long clientId,
in nsIDOMWindow window,
in DOMString lockType);
nsIDOMDOMRequest unlockCardLock(in unsigned long clientId,
in nsIDOMWindow window,
in jsval info);
nsIDOMDOMRequest setCardLock(in unsigned long clientId,
in nsIDOMWindow window,
in jsval info);
nsIDOMDOMRequest getCardLockRetryCount(in unsigned long clientId,
in nsIDOMWindow window,
in DOMString lockType);
/**
* Phonebook interfaces.
*/
nsIDOMDOMRequest readContacts(in unsigned long clientId,
in nsIDOMWindow window,
in DOMString contactType);
nsIDOMDOMRequest updateContact(in unsigned long clientId,
in nsIDOMWindow window,
in DOMString contactType,
in jsval contact,
in DOMString pin2);
/**
* Secure Card Icc communication channel
*/
nsIDOMDOMRequest iccOpenChannel(in unsigned long clientId,
in nsIDOMWindow window,
in DOMString aid);
nsIDOMDOMRequest iccExchangeAPDU(in unsigned long clientId,
in nsIDOMWindow window,
in long channel,
in jsval apdu);
nsIDOMDOMRequest iccCloseChannel(in unsigned long clientId,
in nsIDOMWindow window,
in long channel);
/**
* Helpers
*/
nsIDOMDOMRequest matchMvno(in unsigned long clientId,
in nsIDOMWindow window,
in DOMString mvnoType,
in DOMString mvnoData);
};