gecko-dev/dom/nfc/nsINfcContentHelper.idl
Yoshi Huang 66afb11fa3 Bug 933141 - Move NFC files out of system/gonk. r=gps, dimi
--HG--
rename : dom/system/gonk/NfcContentHelper.js => dom/nfc/NfcContentHelper.js
rename : dom/system/gonk/Nfc.js => dom/nfc/gonk/Nfc.js
rename : dom/system/gonk/Nfc.manifest => dom/nfc/gonk/Nfc.manifest
rename : dom/system/gonk/NfcGonkMessage.h => dom/nfc/gonk/NfcGonkMessage.h
rename : dom/system/gonk/NfcMessageHandler.cpp => dom/nfc/gonk/NfcMessageHandler.cpp
rename : dom/system/gonk/NfcMessageHandler.h => dom/nfc/gonk/NfcMessageHandler.h
rename : dom/system/gonk/NfcOptions.h => dom/nfc/gonk/NfcOptions.h
rename : dom/system/gonk/NfcService.cpp => dom/nfc/gonk/NfcService.cpp
rename : dom/system/gonk/NfcService.h => dom/nfc/gonk/NfcService.h
rename : dom/system/gonk/nfc_consts.js => dom/nfc/gonk/nfc_consts.js
rename : dom/system/gonk/nsINfcService.idl => dom/nfc/gonk/nsINfcService.idl
rename : dom/system/gonk/nsINfcContentHelper.idl => dom/nfc/nsINfcContentHelper.idl
2014-08-01 17:23:14 +08:00

153 lines
4.5 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"
#include "nsIDOMDOMRequest.idl"
interface nsIVariant;
[scriptable, uuid(57fc2998-1058-4fd5-8dd9-0e303218d5fd)]
interface nsINfcPeerEventListener : nsISupports
{
/**
* Callback function used to notify peerready.
*
* @param sessionToken
* SessionToken received from Chrome process
*/
void notifyPeerReady(in DOMString sessionToken);
/**
* Callback function used to notify peerlost.
*
* @param sessionToken
* SessionToken received from Chrome process
*/
void notifyPeerLost(in DOMString sessionToken);
};
[scriptable, uuid(5bea28d3-67ee-4916-8c8e-4f35e3666e61)]
interface nsINfcContentHelper : nsISupports
{
const long NFC_EVENT_PEER_READY = 0x01;
const long NFC_EVENT_PEER_LOST = 0x02;
boolean setSessionToken(in DOMString sessionToken);
nsIDOMDOMRequest getDetailsNDEF(in nsIDOMWindow window, in DOMString sessionToken);
nsIDOMDOMRequest readNDEF(in nsIDOMWindow window, in DOMString sessionToken);
nsIDOMDOMRequest writeNDEF(in nsIDOMWindow window, in nsIVariant records, in DOMString sessionToken);
nsIDOMDOMRequest makeReadOnlyNDEF(in nsIDOMWindow window, in DOMString sessionToken);
nsIDOMDOMRequest connect(in nsIDOMWindow window, in unsigned long techType, in DOMString sessionToken);
nsIDOMDOMRequest close(in nsIDOMWindow window, in DOMString sessionToken);
/**
* Initiate Send file operation
*
* @param window
* Current window
*
* @param blob
* Raw data of the file to be sent. This object represents a file-like
* (nsIDOMFile) object of immutable, raw data. The blob data needs
* to be 'object wrapped' before calling this interface.
*
* @param sessionToken
* Current token
*
* Returns DOMRequest, if initiation of send file operation is successful
* then 'onsuccess' is called else 'onerror'
*/
nsIDOMDOMRequest sendFile(in nsIDOMWindow window,
in jsval blob,
in DOMString sessionToken);
/**
* Register the peer event listener.
*
* @param listener An instance of the nsINfcPeerEventListener.
*/
void registerPeerEventListener(in nsINfcPeerEventListener listener);
/**
* Register the given application id with Chrome process
*
* @param window
* Current window
*
* @param appId
* Application ID to be registered
*/
void registerTargetForPeerReady(in nsIDOMWindow window,
in unsigned long appId);
/**
* Unregister the given application id with Chrome process
*
* @param window
* Current window
*
* @param appId
* Application ID to be registered
*/
void unregisterTargetForPeerReady(in nsIDOMWindow window,
in unsigned long appId);
/**
* Checks if the given application's id is a registered peer target (with the Chrome process)
*
* @param window
* Current window
*
* @param appId
* Application ID to be updated with Chrome process
*
* Returns DOMRequest, if appId is registered then 'onsuccess' is called else 'onerror'
*/
nsIDOMDOMRequest checkP2PRegistration(in nsIDOMWindow window, in unsigned long appId);
/**
* Notify the Chrome process that user has accepted to share nfc message on P2P UI
*
* @param window
* Current window
*
* @param appId
* Application ID that is capable of handling NFC_EVENT_PEER_READY event
*/
void notifyUserAcceptedP2P(in nsIDOMWindow window, in unsigned long appId);
/**
* Notify the status of sendFile operation to Chrome process
*
* @param window
* Current window
*
* @param status
* Status of sendFile operation
*
* @param requestId
* Request ID of SendFile DOM Request
*/
void notifySendFileStatus(in nsIDOMWindow window,
in octet status,
in DOMString requestId);
/**
* Power on the NFC hardware and start polling for NFC tags or devices.
*/
nsIDOMDOMRequest startPoll(in nsIDOMWindow window);
/**
* Stop polling for NFC tags or devices. i.e. enter low power mode.
*/
nsIDOMDOMRequest stopPoll(in nsIDOMWindow window);
/**
* Power off the NFC hardware.
*/
nsIDOMDOMRequest powerOff(in nsIDOMWindow window);
};