diff -r 000000000000 -r 6474c204b198 dom/icc/src/Icc.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/icc/src/Icc.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,122 @@ +/* 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/. */ + +#ifndef mozilla_dom_Icc_h +#define mozilla_dom_Icc_h + +#include "mozilla/DOMEventTargetHelper.h" +#include "nsIIccProvider.h" + +namespace mozilla { +namespace dom { + +class Icc MOZ_FINAL : public DOMEventTargetHelper +{ +public: + NS_REALLY_FORWARD_NSIDOMEVENTTARGET(DOMEventTargetHelper) + + Icc(nsPIDOMWindow* aWindow, long aClientId, const nsAString& aIccId); + + void + Shutdown(); + + nsresult + NotifyEvent(const nsAString& aName); + + nsresult + NotifyStkEvent(const nsAString& aName, const nsAString& aMessage); + + nsString + GetIccId() + { + return mIccId; + } + + nsPIDOMWindow* + GetParentObject() const + { + return GetOwner(); + } + + // WrapperCache + virtual JSObject* + WrapObject(JSContext* aCx) MOZ_OVERRIDE; + + // MozIcc WebIDL + already_AddRefed + GetIccInfo() const; + + void + GetCardState(nsString& aCardState) const; + + void + SendStkResponse(const JSContext* aCx, JS::Handle aCommand, + JS::Handle aResponse, ErrorResult& aRv); + + void + SendStkMenuSelection(uint16_t aItemIdentifier, bool aHelpRequested, + ErrorResult& aRv); + + void + SendStkTimerExpiration(const JSContext* aCx, JS::Handle aTimer, + ErrorResult& aRv); + + void + SendStkEventDownload(const JSContext* aCx, JS::Handle aEvent, + ErrorResult& aRv); + + already_AddRefed + GetCardLock(const nsAString& aLockType, ErrorResult& aRv); + + already_AddRefed + UnlockCardLock(const JSContext* aCx, JS::Handle aInfo, + ErrorResult& aRv); + + already_AddRefed + SetCardLock(const JSContext* aCx, JS::Handle aInfo, + ErrorResult& aRv); + + already_AddRefed + GetCardLockRetryCount(const nsAString& aLockType, ErrorResult& aRv); + + already_AddRefed + ReadContacts(const nsAString& aContactType, ErrorResult& aRv); + + already_AddRefed + UpdateContact(const JSContext* aCx, const nsAString& aContactType, + JS::Handle aContact, const nsAString& aPin2, + ErrorResult& aRv); + + already_AddRefed + IccOpenChannel(const nsAString& aAid, ErrorResult& aRv); + + already_AddRefed + IccExchangeAPDU(const JSContext* aCx, int32_t aChannel, + JS::Handle aApdu, ErrorResult& aRv); + + already_AddRefed + IccCloseChannel(int32_t aChannel, ErrorResult& aRv); + + already_AddRefed + MatchMvno(const nsAString& aMvnoType, const nsAString& aMatchData, + ErrorResult& aRv); + + IMPL_EVENT_HANDLER(iccinfochange) + IMPL_EVENT_HANDLER(cardstatechange) + IMPL_EVENT_HANDLER(stkcommand) + IMPL_EVENT_HANDLER(stksessionend) + +private: + bool mLive; + uint32_t mClientId; + nsString mIccId; + // mProvider is a xpcom service and will be released at shutdown, so it + // doesn't need to be cycle collected. + nsCOMPtr mProvider; +}; + +} // namespace dom +} // namespace mozilla + +#endif // mozilla_dom_icc_Icc_h