diff --git a/dom/system/gonk/ril_worker.js b/dom/system/gonk/ril_worker.js index c91add3b94d4..d42405f4c14d 100644 --- a/dom/system/gonk/ril_worker.js +++ b/dom/system/gonk/ril_worker.js @@ -94,11 +94,9 @@ let RILQUIRKS_SEND_STK_PROFILE_DOWNLOAD; // Ril quirk to attach data registration on demand. let RILQUIRKS_DATA_REGISTRATION_ON_DEMAND; -let Buf = { - __proto__: (function(){ - return require("resource://gre/modules/workers/worker_buf.js").Buf; - })(), - +function BufObject() { +} +BufObject.prototype = { mToken: 0, mTokenRequestMap: null, @@ -188,6 +186,13 @@ let Buf = { } }; +(function() { + let base = require("resource://gre/modules/workers/worker_buf.js").Buf; + for (let p in base) { + BufObject.prototype[p] = base[p]; + } +})(); + /** * The RIL state machine. * @@ -195,35 +200,44 @@ let Buf = { * via post messages. It maintains state about the radio, ICC, calls, etc. * and acts upon state changes accordingly. */ -let RIL = { +function RilObject() { + this.currentCalls = {}; + this.currentConference = {state: null, participants: {}}; + this.currentDataCalls = {}; + this._receivedSmsSegmentsMap = {}; + this._pendingSentSmsMap = {}; + this.pendingNetworkType = {}; + this._receivedSmsCbPagesMap = {}; +} +RilObject.prototype = { v5Legacy: null, /** * Valid calls. */ - currentCalls: {}, + currentCalls: null, /** * Existing conference call and its participants. */ - currentConference: {state: null, participants: {}}, + currentConference: null, /** * Existing data calls. */ - currentDataCalls: {}, + currentDataCalls: null, /** * Hash map for received multipart sms fragments. Messages are hashed with * its sender address and concatenation reference number. Three additional * attributes `segmentMaxSeq`, `receivedSegments`, `segments` are inserted. */ - _receivedSmsSegmentsMap: {}, + _receivedSmsSegmentsMap: null, /** * Outgoing messages waiting for SMS-STATUS-REPORT. */ - _pendingSentSmsMap: {}, + _pendingSentSmsMap: null, /** * Index of the RIL_PREFERRED_NETWORK_TYPE_TO_GECKO. Its value should be @@ -234,7 +248,7 @@ let RIL = { /** * Marker object. */ - pendingNetworkType: {}, + pendingNetworkType: null, /** * Global Cell Broadcast switch. @@ -253,7 +267,7 @@ let RIL = { cellBroadcastConfigs: null, mergedCellBroadcastConfig: null, - _receivedSmsCbPagesMap: {}, + _receivedSmsCbPagesMap: null, initRILState: function() { /** @@ -877,11 +891,11 @@ let RIL = { } // Reuse 'options' to get 'requestId' and 'contactType'. options.contacts = contacts; - RIL.sendChromeMessage(options); + this.sendChromeMessage(options); }.bind(this), function onerror(errorMsg) { options.errorMsg = errorMsg; - RIL.sendChromeMessage(options); + this.sendChromeMessage(options); }.bind(this)); }, @@ -899,12 +913,12 @@ let RIL = { contact.pbrIndex * ICC_MAX_LINEAR_FIXED_RECORDS + contact.recordId; contact.contactId = this.iccInfo.iccid + recordIndex; // Reuse 'options' to get 'requestId' and 'contactType'. - RIL.sendChromeMessage(options); + this.sendChromeMessage(options); }.bind(this); let onerror = function onerror(errorMsg) { options.errorMsg = errorMsg; - RIL.sendChromeMessage(options); + this.sendChromeMessage(options); }.bind(this); if (!this.appType || !options.contact) { @@ -913,7 +927,7 @@ let RIL = { } let contact = options.contact; - let iccid = RIL.iccInfo.iccid; + let iccid = this.iccInfo.iccid; let isValidRecordId = false; if (typeof contact.contactId === "string" && contact.contactId.startsWith(iccid)) { @@ -2071,7 +2085,7 @@ let RIL = { let mmiString = options.mmi; let mmi = this._parseMMI(mmiString); - let _sendMMIError = (function _sendMMIError(errorMsg, mmiServiceCode) { + let _sendMMIError = (function(errorMsg, mmiServiceCode) { options.success = false; options.errorMsg = errorMsg; if (mmiServiceCode) { @@ -2109,13 +2123,13 @@ let RIL = { return true; } - function _isRadioAvailable(mmiServiceCode) { - if (RIL.radioState !== GECKO_RADIOSTATE_READY) { + let _isRadioAvailable = (function(mmiServiceCode) { + if (this.radioState !== GECKO_RADIOSTATE_READY) { _sendMMIError(GECKO_ERROR_RADIO_NOT_AVAILABLE, mmiServiceCode); return false; } return true; - } + }).bind(this); // If we couldn't parse the MMI code, we'll send it as an USSD request. if (mmi === null) { @@ -3174,20 +3188,20 @@ let RIL = { // Send the message on the next tick of the worker's loop, so we give the // last message a chance to call _sendNetworkInfoMessage first. - setTimeout(this._sendPendingNetworkInfo, 0); + setTimeout(this._sendPendingNetworkInfo.bind(this), 0); }, _sendPendingNetworkInfo: function() { - RIL.sendChromeMessage(RIL._pendingNetworkInfo); + this.sendChromeMessage(this._pendingNetworkInfo); - RIL._processingNetworkInfo = false; + this._processingNetworkInfo = false; for (let i = 0; i < NETWORK_INFO_MESSAGE_TYPES.length; i++) { - delete RIL._pendingNetworkInfo[NETWORK_INFO_MESSAGE_TYPES[i]]; + delete this._pendingNetworkInfo[NETWORK_INFO_MESSAGE_TYPES[i]]; } - if (RIL._needRepollNetworkInfo) { - RIL._needRepollNetworkInfo = false; - RIL.requestNetworkInfo(); + if (this._needRepollNetworkInfo) { + this._needRepollNetworkInfo = false; + this.requestNetworkInfo(); } }, @@ -3294,7 +3308,7 @@ let RIL = { _processCREG: function(curState, newState) { let changed = false; - let regState = RIL.parseInt(newState[0], NETWORK_CREG_STATE_UNKNOWN); + let regState = this.parseInt(newState[0], NETWORK_CREG_STATE_UNKNOWN); if (curState.regState === undefined || curState.regState !== regState) { changed = true; curState.regState = regState; @@ -3312,14 +3326,14 @@ let RIL = { // From TS 23.003, 0000 and 0xfffe are indicated that no valid LAI exists // in MS. So we still need to report the '0000' as well. - let lac = RIL.parseInt(newState[1], -1, 16); + let lac = this.parseInt(newState[1], -1, 16); if (curState.cell.gsmLocationAreaCode === undefined || curState.cell.gsmLocationAreaCode !== lac) { curState.cell.gsmLocationAreaCode = lac; changed = true; } - let cid = RIL.parseInt(newState[2], -1, 16); + let cid = this.parseInt(newState[2], -1, 16); if (curState.cell.gsmCellId === undefined || curState.cell.gsmCellId !== cid) { curState.cell.gsmCellId = cid; @@ -3328,7 +3342,7 @@ let RIL = { let radioTech = (newState[3] === undefined ? NETWORK_CREG_TECH_UNKNOWN : - RIL.parseInt(newState[3], NETWORK_CREG_TECH_UNKNOWN)); + this.parseInt(newState[3], NETWORK_CREG_TECH_UNKNOWN)); if (curState.radioTech === undefined || curState.radioTech !== radioTech) { changed = true; curState.radioTech = radioTech; @@ -3341,23 +3355,23 @@ let RIL = { let rs = this.voiceRegistrationState; let stateChanged = this._processCREG(rs, state); if (stateChanged && rs.connected) { - RIL.getSmscAddress(); + this.getSmscAddress(); } let cell = rs.cell; if (this._isCdma) { // Some variables below are not used. Comment them instead of removing to // keep the information about state[x]. - let cdmaBaseStationId = RIL.parseInt(state[4], -1); - let cdmaBaseStationLatitude = RIL.parseInt(state[5], -2147483648); - let cdmaBaseStationLongitude = RIL.parseInt(state[6], -2147483648); - // let cssIndicator = RIL.parseInt(state[7]); - let cdmaSystemId = RIL.parseInt(state[8], -1); - let cdmaNetworkId = RIL.parseInt(state[9], -1); - // let roamingIndicator = RIL.parseInt(state[10]); - // let systemIsInPRL = RIL.parseInt(state[11]); - // let defaultRoamingIndicator = RIL.parseInt(state[12]); - // let reasonForDenial = RIL.parseInt(state[13]); + let cdmaBaseStationId = this.parseInt(state[4], -1); + let cdmaBaseStationLatitude = this.parseInt(state[5], -2147483648); + let cdmaBaseStationLongitude = this.parseInt(state[6], -2147483648); + // let cssIndicator = this.parseInt(state[7]); + let cdmaSystemId = this.parseInt(state[8], -1); + let cdmaNetworkId = this.parseInt(state[9], -1); + // let roamingIndicator = this.parseInt(state[10]); + // let systemIsInPRL = this.parseInt(state[11]); + // let defaultRoamingIndicator = this.parseInt(state[12]); + // let reasonForDenial = this.parseInt(state[13]); if (cell.cdmaBaseStationId !== cdmaBaseStationId || cell.cdmaBaseStationLatitude !== cdmaBaseStationLatitude || @@ -4911,7 +4925,7 @@ let RIL = { berTlv = BerTlvHelper.decode(length / 2); } catch (e) { if (DEBUG) debug("processStkProactiveCommand : " + e); - RIL.sendStkTerminalResponse({ + this.sendStkTerminalResponse({ resultCode: STK_RESULT_CMD_DATA_NOT_UNDERSTOOD}); return; } @@ -4922,7 +4936,7 @@ let RIL = { let ctlv = StkProactiveCmdHelper.searchForTag( COMPREHENSIONTLV_TAG_COMMAND_DETAILS, ctlvs); if (!ctlv) { - RIL.sendStkTerminalResponse({ + this.sendStkTerminalResponse({ resultCode: STK_RESULT_CMD_DATA_NOT_UNDERSTOOD}); throw new Error("Can't find COMMAND_DETAILS ComprehensionTlv"); } @@ -4936,7 +4950,7 @@ let RIL = { // STK_CMD_MORE_TIME need not to propagate event to chrome. if (cmdDetails.typeOfCommand == STK_CMD_MORE_TIME) { - RIL.sendStkTerminalResponse({ + this.sendStkTerminalResponse({ command: cmdDetails, resultCode: STK_RESULT_OK}); return; @@ -4944,7 +4958,7 @@ let RIL = { cmdDetails.rilMessageType = "stkcommand"; cmdDetails.options = StkCommandParamsFactory.createParam(cmdDetails, ctlvs); - RIL.sendChromeMessage(cmdDetails); + this.sendChromeMessage(cmdDetails); }, /** @@ -4998,7 +5012,7 @@ let RIL = { } }; -RIL[REQUEST_GET_SIM_STATUS] = function REQUEST_GET_SIM_STATUS(length, options) { +RilObject.prototype[REQUEST_GET_SIM_STATUS] = function REQUEST_GET_SIM_STATUS(length, options) { if (options.rilRequestError) { return; } @@ -5040,29 +5054,29 @@ RIL[REQUEST_GET_SIM_STATUS] = function REQUEST_GET_SIM_STATUS(length, options) { if (DEBUG) debug("iccStatus: " + JSON.stringify(iccStatus)); this._processICCStatus(iccStatus); }; -RIL[REQUEST_ENTER_SIM_PIN] = function REQUEST_ENTER_SIM_PIN(length, options) { +RilObject.prototype[REQUEST_ENTER_SIM_PIN] = function REQUEST_ENTER_SIM_PIN(length, options) { this._processEnterAndChangeICCResponses(length, options); }; -RIL[REQUEST_ENTER_SIM_PUK] = function REQUEST_ENTER_SIM_PUK(length, options) { +RilObject.prototype[REQUEST_ENTER_SIM_PUK] = function REQUEST_ENTER_SIM_PUK(length, options) { this._processEnterAndChangeICCResponses(length, options); }; -RIL[REQUEST_ENTER_SIM_PIN2] = function REQUEST_ENTER_SIM_PIN2(length, options) { +RilObject.prototype[REQUEST_ENTER_SIM_PIN2] = function REQUEST_ENTER_SIM_PIN2(length, options) { this._processEnterAndChangeICCResponses(length, options); }; -RIL[REQUEST_ENTER_SIM_PUK2] = function REQUEST_ENTER_SIM_PUK(length, options) { +RilObject.prototype[REQUEST_ENTER_SIM_PUK2] = function REQUEST_ENTER_SIM_PUK(length, options) { this._processEnterAndChangeICCResponses(length, options); }; -RIL[REQUEST_CHANGE_SIM_PIN] = function REQUEST_CHANGE_SIM_PIN(length, options) { +RilObject.prototype[REQUEST_CHANGE_SIM_PIN] = function REQUEST_CHANGE_SIM_PIN(length, options) { this._processEnterAndChangeICCResponses(length, options); }; -RIL[REQUEST_CHANGE_SIM_PIN2] = function REQUEST_CHANGE_SIM_PIN2(length, options) { +RilObject.prototype[REQUEST_CHANGE_SIM_PIN2] = function REQUEST_CHANGE_SIM_PIN2(length, options) { this._processEnterAndChangeICCResponses(length, options); }; -RIL[REQUEST_ENTER_NETWORK_DEPERSONALIZATION_CODE] = +RilObject.prototype[REQUEST_ENTER_NETWORK_DEPERSONALIZATION_CODE] = function REQUEST_ENTER_NETWORK_DEPERSONALIZATION_CODE(length, options) { this._processEnterAndChangeICCResponses(length, options); }; -RIL[REQUEST_GET_CURRENT_CALLS] = function REQUEST_GET_CURRENT_CALLS(length, options) { +RilObject.prototype[REQUEST_GET_CURRENT_CALLS] = function REQUEST_GET_CURRENT_CALLS(length, options) { if (options.rilRequestError) { return; } @@ -5118,7 +5132,7 @@ RIL[REQUEST_GET_CURRENT_CALLS] = function REQUEST_GET_CURRENT_CALLS(length, opti } this._processCalls(calls); }; -RIL[REQUEST_DIAL] = function REQUEST_DIAL(length, options) { +RilObject.prototype[REQUEST_DIAL] = function REQUEST_DIAL(length, options) { options.success = (options.rilRequestError === 0); if (options.success) { this.sendChromeMessage(options); @@ -5129,7 +5143,7 @@ RIL[REQUEST_DIAL] = function REQUEST_DIAL(length, options) { }).bind(this, options)); } }; -RIL[REQUEST_GET_IMSI] = function REQUEST_GET_IMSI(length, options) { +RilObject.prototype[REQUEST_GET_IMSI] = function REQUEST_GET_IMSI(length, options) { if (options.rilRequestError) { return; } @@ -5143,35 +5157,35 @@ RIL[REQUEST_GET_IMSI] = function REQUEST_GET_IMSI(length, options) { options.imsi = this.iccInfoPrivate.imsi; this.sendChromeMessage(options); }; -RIL[REQUEST_HANGUP] = function REQUEST_HANGUP(length, options) { +RilObject.prototype[REQUEST_HANGUP] = function REQUEST_HANGUP(length, options) { if (options.rilRequestError) { return; } this.getCurrentCalls(); }; -RIL[REQUEST_HANGUP_WAITING_OR_BACKGROUND] = function REQUEST_HANGUP_WAITING_OR_BACKGROUND(length, options) { +RilObject.prototype[REQUEST_HANGUP_WAITING_OR_BACKGROUND] = function REQUEST_HANGUP_WAITING_OR_BACKGROUND(length, options) { if (options.rilRequestError) { return; } this.getCurrentCalls(); }; -RIL[REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND] = function REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND(length, options) { +RilObject.prototype[REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND] = function REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND(length, options) { if (options.rilRequestError) { return; } this.getCurrentCalls(); }; -RIL[REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE] = function REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE(length, options) { +RilObject.prototype[REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE] = function REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE(length, options) { if (options.rilRequestError) { return; } this.getCurrentCalls(); }; -RIL[REQUEST_SWITCH_HOLDING_AND_ACTIVE] = function REQUEST_SWITCH_HOLDING_AND_ACTIVE(length, options) { +RilObject.prototype[REQUEST_SWITCH_HOLDING_AND_ACTIVE] = function REQUEST_SWITCH_HOLDING_AND_ACTIVE(length, options) { if (options.rilRequestError) { return; } @@ -5181,7 +5195,7 @@ RIL[REQUEST_SWITCH_HOLDING_AND_ACTIVE] = function REQUEST_SWITCH_HOLDING_AND_ACT // this.getCurrentCalls() helps update the call state actively. this.getCurrentCalls(); }; -RIL[REQUEST_CONFERENCE] = function REQUEST_CONFERENCE(length, options) { +RilObject.prototype[REQUEST_CONFERENCE] = function REQUEST_CONFERENCE(length, options) { if (options.rilRequestError) { this._hasConferenceRequest = false; options = {rilMessageType: "conferenceError", @@ -5191,15 +5205,15 @@ RIL[REQUEST_CONFERENCE] = function REQUEST_CONFERENCE(length, options) { return; } }; -RIL[REQUEST_UDUB] = null; -RIL[REQUEST_LAST_CALL_FAIL_CAUSE] = function REQUEST_LAST_CALL_FAIL_CAUSE(length, options) { +RilObject.prototype[REQUEST_UDUB] = null; +RilObject.prototype[REQUEST_LAST_CALL_FAIL_CAUSE] = function REQUEST_LAST_CALL_FAIL_CAUSE(length, options) { let num = length ? Buf.readInt32() : 0; let failCause = num ? RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[Buf.readInt32()] : null; if (options.callback) { options.callback(failCause); } }; -RIL[REQUEST_SIGNAL_STRENGTH] = function REQUEST_SIGNAL_STRENGTH(length, options) { +RilObject.prototype[REQUEST_SIGNAL_STRENGTH] = function REQUEST_SIGNAL_STRENGTH(length, options) { this._receivedNetworkInfo(NETWORK_INFO_SIGNAL); if (options.rilRequestError) { @@ -5228,7 +5242,7 @@ RIL[REQUEST_SIGNAL_STRENGTH] = function REQUEST_SIGNAL_STRENGTH(length, options) this._processSignalStrength(signal); }; -RIL[REQUEST_VOICE_REGISTRATION_STATE] = function REQUEST_VOICE_REGISTRATION_STATE(length, options) { +RilObject.prototype[REQUEST_VOICE_REGISTRATION_STATE] = function REQUEST_VOICE_REGISTRATION_STATE(length, options) { this._receivedNetworkInfo(NETWORK_INFO_VOICE_REGISTRATION_STATE); if (options.rilRequestError) { @@ -5249,7 +5263,7 @@ RIL[REQUEST_VOICE_REGISTRATION_STATE] = function REQUEST_VOICE_REGISTRATION_STAT this.cachedDialRequest = null; } }; -RIL[REQUEST_DATA_REGISTRATION_STATE] = function REQUEST_DATA_REGISTRATION_STATE(length, options) { +RilObject.prototype[REQUEST_DATA_REGISTRATION_STATE] = function REQUEST_DATA_REGISTRATION_STATE(length, options) { this._receivedNetworkInfo(NETWORK_INFO_DATA_REGISTRATION_STATE); if (options.rilRequestError) { @@ -5259,7 +5273,7 @@ RIL[REQUEST_DATA_REGISTRATION_STATE] = function REQUEST_DATA_REGISTRATION_STATE( let state = Buf.readStringList(); this._processDataRegistrationState(state); }; -RIL[REQUEST_OPERATOR] = function REQUEST_OPERATOR(length, options) { +RilObject.prototype[REQUEST_OPERATOR] = function REQUEST_OPERATOR(length, options) { this._receivedNetworkInfo(NETWORK_INFO_OPERATOR); if (options.rilRequestError) { @@ -5270,7 +5284,7 @@ RIL[REQUEST_OPERATOR] = function REQUEST_OPERATOR(length, options) { if (DEBUG) debug("Operator: " + operatorData); this._processOperator(operatorData); }; -RIL[REQUEST_RADIO_POWER] = function REQUEST_RADIO_POWER(length, options) { +RilObject.prototype[REQUEST_RADIO_POWER] = function REQUEST_RADIO_POWER(length, options) { if (options.rilMessageType == null) { // The request was made by ril_worker itself. if (options.rilRequestError) { @@ -5286,13 +5300,13 @@ RIL[REQUEST_RADIO_POWER] = function REQUEST_RADIO_POWER(length, options) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; this.sendChromeMessage(options); }; -RIL[REQUEST_DTMF] = null; -RIL[REQUEST_SEND_SMS] = function REQUEST_SEND_SMS(length, options) { +RilObject.prototype[REQUEST_DTMF] = null; +RilObject.prototype[REQUEST_SEND_SMS] = function REQUEST_SEND_SMS(length, options) { this._processSmsSendResult(length, options); }; -RIL[REQUEST_SEND_SMS_EXPECT_MORE] = null; +RilObject.prototype[REQUEST_SEND_SMS_EXPECT_MORE] = null; -RIL.readSetupDataCall_v5 = function readSetupDataCall_v5(options) { +RilObject.prototype.readSetupDataCall_v5 = function readSetupDataCall_v5(options) { if (!options) { options = {}; } @@ -5307,7 +5321,7 @@ RIL.readSetupDataCall_v5 = function readSetupDataCall_v5(options) { return options; }; -RIL[REQUEST_SETUP_DATA_CALL] = function REQUEST_SETUP_DATA_CALL(length, options) { +RilObject.prototype[REQUEST_SETUP_DATA_CALL] = function REQUEST_SETUP_DATA_CALL(length, options) { if (options.rilRequestError) { // On Data Call generic errors, we shall notify caller this._sendDataCallError(options, options.rilRequestError); @@ -5330,7 +5344,7 @@ RIL[REQUEST_SETUP_DATA_CALL] = function REQUEST_SETUP_DATA_CALL(length, options) // how the data call was set up. this[REQUEST_DATA_CALL_LIST](length, options); }; -RIL[REQUEST_SIM_IO] = function REQUEST_SIM_IO(length, options) { +RilObject.prototype[REQUEST_SIM_IO] = function REQUEST_SIM_IO(length, options) { if (!length) { ICCIOHelper.processICCIOError(options); return; @@ -5346,7 +5360,7 @@ RIL[REQUEST_SIM_IO] = function REQUEST_SIM_IO(length, options) { } ICCIOHelper.processICCIO(options); }; -RIL[REQUEST_SEND_USSD] = function REQUEST_SEND_USSD(length, options) { +RilObject.prototype[REQUEST_SEND_USSD] = function REQUEST_SEND_USSD(length, options) { if (DEBUG) { debug("REQUEST_SEND_USSD " + JSON.stringify(options)); } @@ -5354,7 +5368,7 @@ RIL[REQUEST_SEND_USSD] = function REQUEST_SEND_USSD(length, options) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; this.sendChromeMessage(options); }; -RIL[REQUEST_CANCEL_USSD] = function REQUEST_CANCEL_USSD(length, options) { +RilObject.prototype[REQUEST_CANCEL_USSD] = function REQUEST_CANCEL_USSD(length, options) { if (DEBUG) { debug("REQUEST_CANCEL_USSD" + JSON.stringify(options)); } @@ -5363,7 +5377,7 @@ RIL[REQUEST_CANCEL_USSD] = function REQUEST_CANCEL_USSD(length, options) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; this.sendChromeMessage(options); }; -RIL[REQUEST_GET_CLIR] = function REQUEST_GET_CLIR(length, options) { +RilObject.prototype[REQUEST_GET_CLIR] = function REQUEST_GET_CLIR(length, options) { options.success = (options.rilRequestError === 0); if (!options.success) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; @@ -5447,7 +5461,7 @@ RIL[REQUEST_GET_CLIR] = function REQUEST_GET_CLIR(length, options) { this.sendChromeMessage(options); }; -RIL[REQUEST_SET_CLIR] = function REQUEST_SET_CLIR(length, options) { +RilObject.prototype[REQUEST_SET_CLIR] = function REQUEST_SET_CLIR(length, options) { if (options.rilMessageType == null) { // The request was made by ril_worker itself automatically. Don't report. return; @@ -5468,7 +5482,7 @@ RIL[REQUEST_SET_CLIR] = function REQUEST_SET_CLIR(length, options) { this.sendChromeMessage(options); }; -RIL[REQUEST_QUERY_CALL_FORWARD_STATUS] = +RilObject.prototype[REQUEST_QUERY_CALL_FORWARD_STATUS] = function REQUEST_QUERY_CALL_FORWARD_STATUS(length, options) { options.success = (options.rilRequestError === 0); if (!options.success) { @@ -5508,7 +5522,7 @@ RIL[REQUEST_QUERY_CALL_FORWARD_STATUS] = } this.sendChromeMessage(options); }; -RIL[REQUEST_SET_CALL_FORWARD] = +RilObject.prototype[REQUEST_SET_CALL_FORWARD] = function REQUEST_SET_CALL_FORWARD(length, options) { options.success = (options.rilRequestError === 0); if (!options.success) { @@ -5531,7 +5545,7 @@ RIL[REQUEST_SET_CALL_FORWARD] = } this.sendChromeMessage(options); }; -RIL[REQUEST_QUERY_CALL_WAITING] = +RilObject.prototype[REQUEST_QUERY_CALL_WAITING] = function REQUEST_QUERY_CALL_WAITING(length, options) { options.success = (options.rilRequestError === 0); if (!options.success) { @@ -5551,7 +5565,7 @@ RIL[REQUEST_QUERY_CALL_WAITING] = this.sendChromeMessage(options); }; -RIL[REQUEST_SET_CALL_WAITING] = function REQUEST_SET_CALL_WAITING(length, options) { +RilObject.prototype[REQUEST_SET_CALL_WAITING] = function REQUEST_SET_CALL_WAITING(length, options) { options.success = (options.rilRequestError === 0); if (!options.success) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; @@ -5566,8 +5580,8 @@ RIL[REQUEST_SET_CALL_WAITING] = function REQUEST_SET_CALL_WAITING(length, option this.sendChromeMessage(options); }; -RIL[REQUEST_SMS_ACKNOWLEDGE] = null; -RIL[REQUEST_GET_IMEI] = function REQUEST_GET_IMEI(length, options) { +RilObject.prototype[REQUEST_SMS_ACKNOWLEDGE] = null; +RilObject.prototype[REQUEST_GET_IMEI] = function REQUEST_GET_IMEI(length, options) { this.IMEI = Buf.readString(); let rilMessageType = options.rilMessageType; // So far we only send the IMEI back to chrome if it was requested via MMI. @@ -5583,15 +5597,15 @@ RIL[REQUEST_GET_IMEI] = function REQUEST_GET_IMEI(length, options) { options.statusMessage = this.IMEI; this.sendChromeMessage(options); }; -RIL[REQUEST_GET_IMEISV] = function REQUEST_GET_IMEISV(length, options) { +RilObject.prototype[REQUEST_GET_IMEISV] = function REQUEST_GET_IMEISV(length, options) { if (options.rilRequestError) { return; } this.IMEISV = Buf.readString(); }; -RIL[REQUEST_ANSWER] = null; -RIL[REQUEST_DEACTIVATE_DATA_CALL] = function REQUEST_DEACTIVATE_DATA_CALL(length, options) { +RilObject.prototype[REQUEST_ANSWER] = null; +RilObject.prototype[REQUEST_DEACTIVATE_DATA_CALL] = function REQUEST_DEACTIVATE_DATA_CALL(length, options) { if (options.rilRequestError) { return; } @@ -5602,7 +5616,7 @@ RIL[REQUEST_DEACTIVATE_DATA_CALL] = function REQUEST_DEACTIVATE_DATA_CALL(length datacall.rilMessageType = "datacallstatechange"; this.sendChromeMessage(datacall); }; -RIL[REQUEST_QUERY_FACILITY_LOCK] = function REQUEST_QUERY_FACILITY_LOCK(length, options) { +RilObject.prototype[REQUEST_QUERY_FACILITY_LOCK] = function REQUEST_QUERY_FACILITY_LOCK(length, options) { options.success = (options.rilRequestError === 0); if (!options.success) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; @@ -5640,7 +5654,7 @@ RIL[REQUEST_QUERY_FACILITY_LOCK] = function REQUEST_QUERY_FACILITY_LOCK(length, } this.sendChromeMessage(options); }; -RIL[REQUEST_SET_FACILITY_LOCK] = function REQUEST_SET_FACILITY_LOCK(length, options) { +RilObject.prototype[REQUEST_SET_FACILITY_LOCK] = function REQUEST_SET_FACILITY_LOCK(length, options) { options.success = (options.rilRequestError === 0); if (!options.success) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; @@ -5660,14 +5674,14 @@ RIL[REQUEST_SET_FACILITY_LOCK] = function REQUEST_SET_FACILITY_LOCK(length, opti } this.sendChromeMessage(options); }; -RIL[REQUEST_CHANGE_BARRING_PASSWORD] = +RilObject.prototype[REQUEST_CHANGE_BARRING_PASSWORD] = function REQUEST_CHANGE_BARRING_PASSWORD(length, options) { if (options.rilRequestError) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; } this.sendChromeMessage(options); }; -RIL[REQUEST_SIM_OPEN_CHANNEL] = function REQUEST_SIM_OPEN_CHANNEL(length, options) { +RilObject.prototype[REQUEST_SIM_OPEN_CHANNEL] = function REQUEST_SIM_OPEN_CHANNEL(length, options) { if (options.rilRequestError) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; this.sendChromeMessage(options); @@ -5678,7 +5692,7 @@ RIL[REQUEST_SIM_OPEN_CHANNEL] = function REQUEST_SIM_OPEN_CHANNEL(length, option if (DEBUG) debug("Setting channel number in options: " + options.channel); this.sendChromeMessage(options); }; -RIL[REQUEST_SIM_CLOSE_CHANNEL] = function REQUEST_SIM_CLOSE_CHANNEL(length, options) { +RilObject.prototype[REQUEST_SIM_CLOSE_CHANNEL] = function REQUEST_SIM_CLOSE_CHANNEL(length, options) { if (options.rilRequestError) { options.error = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; this.sendChromeMessage(options); @@ -5688,7 +5702,7 @@ RIL[REQUEST_SIM_CLOSE_CHANNEL] = function REQUEST_SIM_CLOSE_CHANNEL(length, opti // No return value this.sendChromeMessage(options); }; -RIL[REQUEST_SIM_ACCESS_CHANNEL] = function REQUEST_SIM_ACCESS_CHANNEL(length, options) { +RilObject.prototype[REQUEST_SIM_ACCESS_CHANNEL] = function REQUEST_SIM_ACCESS_CHANNEL(length, options) { if (options.rilRequestError) { options.error = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; this.sendChromeMessage(options); @@ -5703,7 +5717,7 @@ RIL[REQUEST_SIM_ACCESS_CHANNEL] = function REQUEST_SIM_ACCESS_CHANNEL(length, op } this.sendChromeMessage(options); }; -RIL[REQUEST_QUERY_NETWORK_SELECTION_MODE] = function REQUEST_QUERY_NETWORK_SELECTION_MODE(length, options) { +RilObject.prototype[REQUEST_QUERY_NETWORK_SELECTION_MODE] = function REQUEST_QUERY_NETWORK_SELECTION_MODE(length, options) { this._receivedNetworkInfo(NETWORK_INFO_NETWORK_SELECTION_MODE); if (options.rilRequestError) { @@ -5731,21 +5745,21 @@ RIL[REQUEST_QUERY_NETWORK_SELECTION_MODE] = function REQUEST_QUERY_NETWORK_SELEC this._sendNetworkInfoMessage(NETWORK_INFO_NETWORK_SELECTION_MODE, options); } }; -RIL[REQUEST_SET_NETWORK_SELECTION_AUTOMATIC] = function REQUEST_SET_NETWORK_SELECTION_AUTOMATIC(length, options) { +RilObject.prototype[REQUEST_SET_NETWORK_SELECTION_AUTOMATIC] = function REQUEST_SET_NETWORK_SELECTION_AUTOMATIC(length, options) { if (options.rilRequestError) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; } this.sendChromeMessage(options); }; -RIL[REQUEST_SET_NETWORK_SELECTION_MANUAL] = function REQUEST_SET_NETWORK_SELECTION_MANUAL(length, options) { +RilObject.prototype[REQUEST_SET_NETWORK_SELECTION_MANUAL] = function REQUEST_SET_NETWORK_SELECTION_MANUAL(length, options) { if (options.rilRequestError) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; } this.sendChromeMessage(options); }; -RIL[REQUEST_QUERY_AVAILABLE_NETWORKS] = function REQUEST_QUERY_AVAILABLE_NETWORKS(length, options) { +RilObject.prototype[REQUEST_QUERY_AVAILABLE_NETWORKS] = function REQUEST_QUERY_AVAILABLE_NETWORKS(length, options) { if (options.rilRequestError) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; } else { @@ -5753,9 +5767,9 @@ RIL[REQUEST_QUERY_AVAILABLE_NETWORKS] = function REQUEST_QUERY_AVAILABLE_NETWORK } this.sendChromeMessage(options); }; -RIL[REQUEST_DTMF_START] = null; -RIL[REQUEST_DTMF_STOP] = null; -RIL[REQUEST_BASEBAND_VERSION] = function REQUEST_BASEBAND_VERSION(length, options) { +RilObject.prototype[REQUEST_DTMF_START] = null; +RilObject.prototype[REQUEST_DTMF_STOP] = null; +RilObject.prototype[REQUEST_BASEBAND_VERSION] = function REQUEST_BASEBAND_VERSION(length, options) { if (options.rilRequestError) { return; } @@ -5763,7 +5777,7 @@ RIL[REQUEST_BASEBAND_VERSION] = function REQUEST_BASEBAND_VERSION(length, option this.basebandVersion = Buf.readString(); if (DEBUG) debug("Baseband version: " + this.basebandVersion); }; -RIL[REQUEST_SEPARATE_CONNECTION] = function REQUEST_SEPARATE_CONNECTION(length, options) { +RilObject.prototype[REQUEST_SEPARATE_CONNECTION] = function REQUEST_SEPARATE_CONNECTION(length, options) { if (options.rilRequestError) { options = {rilMessageType: "conferenceError", errorName: "removeError", @@ -5772,9 +5786,9 @@ RIL[REQUEST_SEPARATE_CONNECTION] = function REQUEST_SEPARATE_CONNECTION(length, return; } }; -RIL[REQUEST_SET_MUTE] = null; -RIL[REQUEST_GET_MUTE] = null; -RIL[REQUEST_QUERY_CLIP] = function REQUEST_QUERY_CLIP(length, options) { +RilObject.prototype[REQUEST_SET_MUTE] = null; +RilObject.prototype[REQUEST_GET_MUTE] = null; +RilObject.prototype[REQUEST_QUERY_CLIP] = function REQUEST_QUERY_CLIP(length, options) { options.success = (options.rilRequestError === 0); if (!options.success) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; @@ -5812,9 +5826,9 @@ RIL[REQUEST_QUERY_CLIP] = function REQUEST_QUERY_CLIP(length, options) { } this.sendChromeMessage(options); }; -RIL[REQUEST_LAST_DATA_CALL_FAIL_CAUSE] = null; +RilObject.prototype[REQUEST_LAST_DATA_CALL_FAIL_CAUSE] = null; -RIL.readDataCall_v5 = function(options) { +RilObject.prototype.readDataCall_v5 = function(options) { if (!options) { options = {}; } @@ -5826,7 +5840,7 @@ RIL.readDataCall_v5 = function(options) { return options; }; -RIL.readDataCall_v6 = function(options) { +RilObject.prototype.readDataCall_v6 = function(options) { if (!options) { options = {}; } @@ -5852,7 +5866,7 @@ RIL.readDataCall_v6 = function(options) { return options; }; -RIL[REQUEST_DATA_CALL_LIST] = function REQUEST_DATA_CALL_LIST(length, options) { +RilObject.prototype[REQUEST_DATA_CALL_LIST] = function REQUEST_DATA_CALL_LIST(length, options) { if (options.rilRequestError) { return; } @@ -5884,12 +5898,12 @@ RIL[REQUEST_DATA_CALL_LIST] = function REQUEST_DATA_CALL_LIST(length, options) { } this._processDataCallList(datacalls, newDataCallOptions); }; -RIL[REQUEST_RESET_RADIO] = null; -RIL[REQUEST_OEM_HOOK_RAW] = null; -RIL[REQUEST_OEM_HOOK_STRINGS] = null; -RIL[REQUEST_SCREEN_STATE] = null; -RIL[REQUEST_SET_SUPP_SVC_NOTIFICATION] = null; -RIL[REQUEST_WRITE_SMS_TO_SIM] = function REQUEST_WRITE_SMS_TO_SIM(length, options) { +RilObject.prototype[REQUEST_RESET_RADIO] = null; +RilObject.prototype[REQUEST_OEM_HOOK_RAW] = null; +RilObject.prototype[REQUEST_OEM_HOOK_STRINGS] = null; +RilObject.prototype[REQUEST_SCREEN_STATE] = null; +RilObject.prototype[REQUEST_SET_SUPP_SVC_NOTIFICATION] = null; +RilObject.prototype[REQUEST_WRITE_SMS_TO_SIM] = function REQUEST_WRITE_SMS_TO_SIM(length, options) { if (options.rilRequestError) { // `The MS shall return a "protocol error, unspecified" error message if // the short message cannot be stored in the (U)SIM, and there is other @@ -5900,16 +5914,16 @@ RIL[REQUEST_WRITE_SMS_TO_SIM] = function REQUEST_WRITE_SMS_TO_SIM(length, option this.acknowledgeGsmSms(true, PDU_FCS_OK); } }; -RIL[REQUEST_DELETE_SMS_ON_SIM] = null; -RIL[REQUEST_SET_BAND_MODE] = null; -RIL[REQUEST_QUERY_AVAILABLE_BAND_MODE] = null; -RIL[REQUEST_STK_GET_PROFILE] = null; -RIL[REQUEST_STK_SET_PROFILE] = null; -RIL[REQUEST_STK_SEND_ENVELOPE_COMMAND] = null; -RIL[REQUEST_STK_SEND_TERMINAL_RESPONSE] = null; -RIL[REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM] = null; -RIL[REQUEST_EXPLICIT_CALL_TRANSFER] = null; -RIL[REQUEST_SET_PREFERRED_NETWORK_TYPE] = function REQUEST_SET_PREFERRED_NETWORK_TYPE(length, options) { +RilObject.prototype[REQUEST_DELETE_SMS_ON_SIM] = null; +RilObject.prototype[REQUEST_SET_BAND_MODE] = null; +RilObject.prototype[REQUEST_QUERY_AVAILABLE_BAND_MODE] = null; +RilObject.prototype[REQUEST_STK_GET_PROFILE] = null; +RilObject.prototype[REQUEST_STK_SET_PROFILE] = null; +RilObject.prototype[REQUEST_STK_SEND_ENVELOPE_COMMAND] = null; +RilObject.prototype[REQUEST_STK_SEND_TERMINAL_RESPONSE] = null; +RilObject.prototype[REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM] = null; +RilObject.prototype[REQUEST_EXPLICIT_CALL_TRANSFER] = null; +RilObject.prototype[REQUEST_SET_PREFERRED_NETWORK_TYPE] = function REQUEST_SET_PREFERRED_NETWORK_TYPE(length, options) { if (options.networkType == null) { // The request was made by ril_worker itself automatically. Don't report. return; @@ -5923,7 +5937,7 @@ RIL[REQUEST_SET_PREFERRED_NETWORK_TYPE] = function REQUEST_SET_PREFERRED_NETWORK } this.sendChromeMessage(options); }; -RIL[REQUEST_GET_PREFERRED_NETWORK_TYPE] = function REQUEST_GET_PREFERRED_NETWORK_TYPE(length, options) { +RilObject.prototype[REQUEST_GET_PREFERRED_NETWORK_TYPE] = function REQUEST_GET_PREFERRED_NETWORK_TYPE(length, options) { if (options.rilRequestError) { options.success = false; options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; @@ -5941,16 +5955,16 @@ RIL[REQUEST_GET_PREFERRED_NETWORK_TYPE] = function REQUEST_GET_PREFERRED_NETWORK this.sendChromeMessage(options); }; -RIL[REQUEST_GET_NEIGHBORING_CELL_IDS] = null; -RIL[REQUEST_SET_LOCATION_UPDATES] = null; -RIL[REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE] = null; -RIL[REQUEST_CDMA_SET_ROAMING_PREFERENCE] = function REQUEST_CDMA_SET_ROAMING_PREFERENCE(length, options) { +RilObject.prototype[REQUEST_GET_NEIGHBORING_CELL_IDS] = null; +RilObject.prototype[REQUEST_SET_LOCATION_UPDATES] = null; +RilObject.prototype[REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE] = null; +RilObject.prototype[REQUEST_CDMA_SET_ROAMING_PREFERENCE] = function REQUEST_CDMA_SET_ROAMING_PREFERENCE(length, options) { if (options.rilRequestError) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; } this.sendChromeMessage(options); }; -RIL[REQUEST_CDMA_QUERY_ROAMING_PREFERENCE] = function REQUEST_CDMA_QUERY_ROAMING_PREFERENCE(length, options) { +RilObject.prototype[REQUEST_CDMA_QUERY_ROAMING_PREFERENCE] = function REQUEST_CDMA_QUERY_ROAMING_PREFERENCE(length, options) { if (options.rilRequestError) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; } else { @@ -5959,9 +5973,9 @@ RIL[REQUEST_CDMA_QUERY_ROAMING_PREFERENCE] = function REQUEST_CDMA_QUERY_ROAMING } this.sendChromeMessage(options); }; -RIL[REQUEST_SET_TTY_MODE] = null; -RIL[REQUEST_QUERY_TTY_MODE] = null; -RIL[REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE] = function REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE(length, options) { +RilObject.prototype[REQUEST_SET_TTY_MODE] = null; +RilObject.prototype[REQUEST_QUERY_TTY_MODE] = null; +RilObject.prototype[REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE] = function REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE(length, options) { if (options.rilRequestError) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; this.sendChromeMessage(options); @@ -5970,7 +5984,7 @@ RIL[REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE] = function REQUEST_CDMA_SET_P this.sendChromeMessage(options); }; -RIL[REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE] = function REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE(length, options) { +RilObject.prototype[REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE] = function REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE(length, options) { if (options.rilRequestError) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; this.sendChromeMessage(options); @@ -5981,24 +5995,24 @@ RIL[REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE] = function REQUEST_CDMA_QUE options.enabled = enabled[0] ? true : false; this.sendChromeMessage(options); }; -RIL[REQUEST_CDMA_FLASH] = null; -RIL[REQUEST_CDMA_BURST_DTMF] = null; -RIL[REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY] = null; -RIL[REQUEST_CDMA_SEND_SMS] = function REQUEST_CDMA_SEND_SMS(length, options) { +RilObject.prototype[REQUEST_CDMA_FLASH] = null; +RilObject.prototype[REQUEST_CDMA_BURST_DTMF] = null; +RilObject.prototype[REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY] = null; +RilObject.prototype[REQUEST_CDMA_SEND_SMS] = function REQUEST_CDMA_SEND_SMS(length, options) { this._processSmsSendResult(length, options); }; -RIL[REQUEST_CDMA_SMS_ACKNOWLEDGE] = null; -RIL[REQUEST_GSM_GET_BROADCAST_SMS_CONFIG] = null; -RIL[REQUEST_GSM_SET_BROADCAST_SMS_CONFIG] = function REQUEST_GSM_SET_BROADCAST_SMS_CONFIG(length, options) { +RilObject.prototype[REQUEST_CDMA_SMS_ACKNOWLEDGE] = null; +RilObject.prototype[REQUEST_GSM_GET_BROADCAST_SMS_CONFIG] = null; +RilObject.prototype[REQUEST_GSM_SET_BROADCAST_SMS_CONFIG] = function REQUEST_GSM_SET_BROADCAST_SMS_CONFIG(length, options) { if (options.rilRequestError == ERROR_SUCCESS) { this.setSmsBroadcastActivation(true); } }; -RIL[REQUEST_GSM_SMS_BROADCAST_ACTIVATION] = null; -RIL[REQUEST_CDMA_GET_BROADCAST_SMS_CONFIG] = null; -RIL[REQUEST_CDMA_SET_BROADCAST_SMS_CONFIG] = null; -RIL[REQUEST_CDMA_SMS_BROADCAST_ACTIVATION] = null; -RIL[REQUEST_CDMA_SUBSCRIPTION] = function REQUEST_CDMA_SUBSCRIPTION(length, options) { +RilObject.prototype[REQUEST_GSM_SMS_BROADCAST_ACTIVATION] = null; +RilObject.prototype[REQUEST_CDMA_GET_BROADCAST_SMS_CONFIG] = null; +RilObject.prototype[REQUEST_CDMA_SET_BROADCAST_SMS_CONFIG] = null; +RilObject.prototype[REQUEST_CDMA_SMS_BROADCAST_ACTIVATION] = null; +RilObject.prototype[REQUEST_CDMA_SUBSCRIPTION] = function REQUEST_CDMA_SUBSCRIPTION(length, options) { if (options.rilRequestError) { return; } @@ -6013,9 +6027,9 @@ RIL[REQUEST_CDMA_SUBSCRIPTION] = function REQUEST_CDMA_SUBSCRIPTION(length, opti ICCUtilsHelper.handleICCInfoChange(); }; -RIL[REQUEST_CDMA_WRITE_SMS_TO_RUIM] = null; -RIL[REQUEST_CDMA_DELETE_SMS_ON_RUIM] = null; -RIL[REQUEST_DEVICE_IDENTITY] = function REQUEST_DEVICE_IDENTITY(length, options) { +RilObject.prototype[REQUEST_CDMA_WRITE_SMS_TO_RUIM] = null; +RilObject.prototype[REQUEST_CDMA_DELETE_SMS_ON_RUIM] = null; +RilObject.prototype[REQUEST_DEVICE_IDENTITY] = function REQUEST_DEVICE_IDENTITY(length, options) { if (options.rilRequestError) { return; } @@ -6028,7 +6042,7 @@ RIL[REQUEST_DEVICE_IDENTITY] = function REQUEST_DEVICE_IDENTITY(length, options) this.ESN = result[2]; this.MEID = result[3]; }; -RIL[REQUEST_EXIT_EMERGENCY_CALLBACK_MODE] = function REQUEST_EXIT_EMERGENCY_CALLBACK_MODE(length, options) { +RilObject.prototype[REQUEST_EXIT_EMERGENCY_CALLBACK_MODE] = function REQUEST_EXIT_EMERGENCY_CALLBACK_MODE(length, options) { if (options.internal) { return; } @@ -6039,7 +6053,7 @@ RIL[REQUEST_EXIT_EMERGENCY_CALLBACK_MODE] = function REQUEST_EXIT_EMERGENCY_CALL } this.sendChromeMessage(options); }; -RIL[REQUEST_GET_SMSC_ADDRESS] = function REQUEST_GET_SMSC_ADDRESS(length, options) { +RilObject.prototype[REQUEST_GET_SMSC_ADDRESS] = function REQUEST_GET_SMSC_ADDRESS(length, options) { this.SMSC = options.rilRequestError ? null : Buf.readString(); if (!options || options.rilMessageType !== "getSmscAddress") { @@ -6050,11 +6064,11 @@ RIL[REQUEST_GET_SMSC_ADDRESS] = function REQUEST_GET_SMSC_ADDRESS(length, option options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; this.sendChromeMessage(options); }; -RIL[REQUEST_SET_SMSC_ADDRESS] = null; -RIL[REQUEST_REPORT_SMS_MEMORY_STATUS] = null; -RIL[REQUEST_REPORT_STK_SERVICE_IS_RUNNING] = null; -RIL[REQUEST_ACKNOWLEDGE_INCOMING_GSM_SMS_WITH_PDU] = null; -RIL[REQUEST_STK_SEND_ENVELOPE_WITH_STATUS] = function REQUEST_STK_SEND_ENVELOPE_WITH_STATUS(length, options) { +RilObject.prototype[REQUEST_SET_SMSC_ADDRESS] = null; +RilObject.prototype[REQUEST_REPORT_SMS_MEMORY_STATUS] = null; +RilObject.prototype[REQUEST_REPORT_STK_SERVICE_IS_RUNNING] = null; +RilObject.prototype[REQUEST_ACKNOWLEDGE_INCOMING_GSM_SMS_WITH_PDU] = null; +RilObject.prototype[REQUEST_STK_SEND_ENVELOPE_WITH_STATUS] = function REQUEST_STK_SEND_ENVELOPE_WITH_STATUS(length, options) { if (options.rilRequestError) { this.acknowledgeGsmSms(false, PDU_FCS_UNSPECIFIED); return; @@ -6080,7 +6094,7 @@ RIL[REQUEST_STK_SEND_ENVELOPE_WITH_STATUS] = function REQUEST_STK_SEND_ENVELOPE_ this.acknowledgeIncomingGsmSmsWithPDU(success, responsePduLen, options); }; -RIL[REQUEST_VOICE_RADIO_TECH] = function REQUEST_VOICE_RADIO_TECH(length, options) { +RilObject.prototype[REQUEST_VOICE_RADIO_TECH] = function REQUEST_VOICE_RADIO_TECH(length, options) { if (options.rilRequestError) { if (DEBUG) { debug("Error when getting voice radio tech: " + options.rilRequestError); @@ -6090,7 +6104,7 @@ RIL[REQUEST_VOICE_RADIO_TECH] = function REQUEST_VOICE_RADIO_TECH(length, option let radioTech = Buf.readInt32List(); this._processRadioTech(radioTech[0]); }; -RIL[REQUEST_GET_UNLOCK_RETRY_COUNT] = function REQUEST_GET_UNLOCK_RETRY_COUNT(length, options) { +RilObject.prototype[REQUEST_GET_UNLOCK_RETRY_COUNT] = function REQUEST_GET_UNLOCK_RETRY_COUNT(length, options) { options.success = (options.rilRequestError === 0); if (!options.success) { options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError]; @@ -6098,9 +6112,9 @@ RIL[REQUEST_GET_UNLOCK_RETRY_COUNT] = function REQUEST_GET_UNLOCK_RETRY_COUNT(le options.retryCount = length ? Buf.readInt32List()[0] : -1; this.sendChromeMessage(options); }; -RIL[RIL_REQUEST_GPRS_ATTACH] = null; -RIL[RIL_REQUEST_GPRS_DETACH] = null; -RIL[UNSOLICITED_RESPONSE_RADIO_STATE_CHANGED] = function UNSOLICITED_RESPONSE_RADIO_STATE_CHANGED() { +RilObject.prototype[RIL_REQUEST_GPRS_ATTACH] = null; +RilObject.prototype[RIL_REQUEST_GPRS_DETACH] = null; +RilObject.prototype[UNSOLICITED_RESPONSE_RADIO_STATE_CHANGED] = function UNSOLICITED_RESPONSE_RADIO_STATE_CHANGED() { let radioState = Buf.readInt32(); let newState; if (radioState == RADIO_STATE_UNAVAILABLE) { @@ -6180,15 +6194,15 @@ RIL[UNSOLICITED_RESPONSE_RADIO_STATE_CHANGED] = function UNSOLICITED_RESPONSE_RA } this.getICCStatus(); }; -RIL[UNSOLICITED_RESPONSE_CALL_STATE_CHANGED] = function UNSOLICITED_RESPONSE_CALL_STATE_CHANGED() { +RilObject.prototype[UNSOLICITED_RESPONSE_CALL_STATE_CHANGED] = function UNSOLICITED_RESPONSE_CALL_STATE_CHANGED() { this.getCurrentCalls(); }; -RIL[UNSOLICITED_RESPONSE_VOICE_NETWORK_STATE_CHANGED] = function UNSOLICITED_RESPONSE_VOICE_NETWORK_STATE_CHANGED() { +RilObject.prototype[UNSOLICITED_RESPONSE_VOICE_NETWORK_STATE_CHANGED] = function UNSOLICITED_RESPONSE_VOICE_NETWORK_STATE_CHANGED() { if (DEBUG) debug("Network state changed, re-requesting phone state and ICC status"); this.getICCStatus(); this.requestNetworkInfo(); }; -RIL[UNSOLICITED_RESPONSE_NEW_SMS] = function UNSOLICITED_RESPONSE_NEW_SMS(length) { +RilObject.prototype[UNSOLICITED_RESPONSE_NEW_SMS] = function UNSOLICITED_RESPONSE_NEW_SMS(length) { let [message, result] = GsmPDUHelper.processReceivedSms(length); if (message) { @@ -6202,11 +6216,11 @@ RIL[UNSOLICITED_RESPONSE_NEW_SMS] = function UNSOLICITED_RESPONSE_NEW_SMS(length // Not reserved FCS values, send ACK now. this.acknowledgeGsmSms(result == PDU_FCS_OK, result); }; -RIL[UNSOLICITED_RESPONSE_NEW_SMS_STATUS_REPORT] = function UNSOLICITED_RESPONSE_NEW_SMS_STATUS_REPORT(length) { +RilObject.prototype[UNSOLICITED_RESPONSE_NEW_SMS_STATUS_REPORT] = function UNSOLICITED_RESPONSE_NEW_SMS_STATUS_REPORT(length) { let result = this._processSmsStatusReport(length); this.acknowledgeGsmSms(result == PDU_FCS_OK, result); }; -RIL[UNSOLICITED_RESPONSE_NEW_SMS_ON_SIM] = function UNSOLICITED_RESPONSE_NEW_SMS_ON_SIM(length) { +RilObject.prototype[UNSOLICITED_RESPONSE_NEW_SMS_ON_SIM] = function UNSOLICITED_RESPONSE_NEW_SMS_ON_SIM(length) { let recordNumber = Buf.readInt32List()[0]; SimRecordHelper.readSMS( @@ -6222,7 +6236,7 @@ RIL[UNSOLICITED_RESPONSE_NEW_SMS_ON_SIM] = function UNSOLICITED_RESPONSE_NEW_SMS } }); }; -RIL[UNSOLICITED_ON_USSD] = function UNSOLICITED_ON_USSD() { +RilObject.prototype[UNSOLICITED_ON_USSD] = function UNSOLICITED_ON_USSD() { let [typeCode, message] = Buf.readStringList(); if (DEBUG) { debug("On USSD. Type Code: " + typeCode + " Message: " + message); @@ -6234,7 +6248,7 @@ RIL[UNSOLICITED_ON_USSD] = function UNSOLICITED_ON_USSD() { message: message, sessionEnded: !this._ussdSession}); }; -RIL[UNSOLICITED_NITZ_TIME_RECEIVED] = function UNSOLICITED_NITZ_TIME_RECEIVED() { +RilObject.prototype[UNSOLICITED_NITZ_TIME_RECEIVED] = function UNSOLICITED_NITZ_TIME_RECEIVED() { let dateString = Buf.readString(); // The data contained in the NITZ message is @@ -6272,17 +6286,17 @@ RIL[UNSOLICITED_NITZ_TIME_RECEIVED] = function UNSOLICITED_NITZ_TIME_RECEIVED() receiveTimeInMS: now}); }; -RIL[UNSOLICITED_SIGNAL_STRENGTH] = function UNSOLICITED_SIGNAL_STRENGTH(length) { +RilObject.prototype[UNSOLICITED_SIGNAL_STRENGTH] = function UNSOLICITED_SIGNAL_STRENGTH(length) { this[REQUEST_SIGNAL_STRENGTH](length, {rilRequestError: ERROR_SUCCESS}); }; -RIL[UNSOLICITED_DATA_CALL_LIST_CHANGED] = function UNSOLICITED_DATA_CALL_LIST_CHANGED(length) { +RilObject.prototype[UNSOLICITED_DATA_CALL_LIST_CHANGED] = function UNSOLICITED_DATA_CALL_LIST_CHANGED(length) { if (this.v5Legacy) { this.getDataCallList(); return; } this[REQUEST_DATA_CALL_LIST](length, {rilRequestError: ERROR_SUCCESS}); }; -RIL[UNSOLICITED_SUPP_SVC_NOTIFICATION] = function UNSOLICITED_SUPP_SVC_NOTIFICATION(length) { +RilObject.prototype[UNSOLICITED_SUPP_SVC_NOTIFICATION] = function UNSOLICITED_SUPP_SVC_NOTIFICATION(length) { let info = {}; info.notificationType = Buf.readInt32(); info.code = Buf.readInt32(); @@ -6293,19 +6307,19 @@ RIL[UNSOLICITED_SUPP_SVC_NOTIFICATION] = function UNSOLICITED_SUPP_SVC_NOTIFICAT this._processSuppSvcNotification(info); }; -RIL[UNSOLICITED_STK_SESSION_END] = function UNSOLICITED_STK_SESSION_END() { +RilObject.prototype[UNSOLICITED_STK_SESSION_END] = function UNSOLICITED_STK_SESSION_END() { this.sendChromeMessage({rilMessageType: "stksessionend"}); }; -RIL[UNSOLICITED_STK_PROACTIVE_COMMAND] = function UNSOLICITED_STK_PROACTIVE_COMMAND() { +RilObject.prototype[UNSOLICITED_STK_PROACTIVE_COMMAND] = function UNSOLICITED_STK_PROACTIVE_COMMAND() { this.processStkProactiveCommand(); }; -RIL[UNSOLICITED_STK_EVENT_NOTIFY] = function UNSOLICITED_STK_EVENT_NOTIFY() { +RilObject.prototype[UNSOLICITED_STK_EVENT_NOTIFY] = function UNSOLICITED_STK_EVENT_NOTIFY() { this.processStkProactiveCommand(); }; -RIL[UNSOLICITED_STK_CALL_SETUP] = null; -RIL[UNSOLICITED_SIM_SMS_STORAGE_FULL] = null; -RIL[UNSOLICITED_SIM_REFRESH] = null; -RIL[UNSOLICITED_CALL_RING] = function UNSOLICITED_CALL_RING() { +RilObject.prototype[UNSOLICITED_STK_CALL_SETUP] = null; +RilObject.prototype[UNSOLICITED_SIM_SMS_STORAGE_FULL] = null; +RilObject.prototype[UNSOLICITED_SIM_REFRESH] = null; +RilObject.prototype[UNSOLICITED_CALL_RING] = function UNSOLICITED_CALL_RING() { let info = {rilMessageType: "callRing"}; let isCDMA = false; //XXX TODO hard-code this for now if (isCDMA) { @@ -6320,10 +6334,10 @@ RIL[UNSOLICITED_CALL_RING] = function UNSOLICITED_CALL_RING() { // dispatch DOM events etc. this.sendChromeMessage(info); }; -RIL[UNSOLICITED_RESPONSE_SIM_STATUS_CHANGED] = function UNSOLICITED_RESPONSE_SIM_STATUS_CHANGED() { +RilObject.prototype[UNSOLICITED_RESPONSE_SIM_STATUS_CHANGED] = function UNSOLICITED_RESPONSE_SIM_STATUS_CHANGED() { this.getICCStatus(); }; -RIL[UNSOLICITED_RESPONSE_CDMA_NEW_SMS] = function UNSOLICITED_RESPONSE_CDMA_NEW_SMS(length) { +RilObject.prototype[UNSOLICITED_RESPONSE_CDMA_NEW_SMS] = function UNSOLICITED_RESPONSE_CDMA_NEW_SMS(length) { let [message, result] = CdmaPDUHelper.processReceivedSms(length); if (message) { @@ -6343,7 +6357,7 @@ RIL[UNSOLICITED_RESPONSE_CDMA_NEW_SMS] = function UNSOLICITED_RESPONSE_CDMA_NEW_ // Not reserved FCS values, send ACK now. this.acknowledgeCdmaSms(result == PDU_FCS_OK, result); }; -RIL[UNSOLICITED_RESPONSE_NEW_BROADCAST_SMS] = function UNSOLICITED_RESPONSE_NEW_BROADCAST_SMS(length) { +RilObject.prototype[UNSOLICITED_RESPONSE_NEW_BROADCAST_SMS] = function UNSOLICITED_RESPONSE_NEW_BROADCAST_SMS(length) { let message; try { message = GsmPDUHelper.readCbMessage(Buf.readInt32()); @@ -6362,12 +6376,12 @@ RIL[UNSOLICITED_RESPONSE_NEW_BROADCAST_SMS] = function UNSOLICITED_RESPONSE_NEW_ message.rilMessageType = "cellbroadcast-received"; this.sendChromeMessage(message); }; -RIL[UNSOLICITED_CDMA_RUIM_SMS_STORAGE_FULL] = null; -RIL[UNSOLICITED_RESTRICTED_STATE_CHANGED] = null; -RIL[UNSOLICITED_ENTER_EMERGENCY_CALLBACK_MODE] = function UNSOLICITED_ENTER_EMERGENCY_CALLBACK_MODE() { +RilObject.prototype[UNSOLICITED_CDMA_RUIM_SMS_STORAGE_FULL] = null; +RilObject.prototype[UNSOLICITED_RESTRICTED_STATE_CHANGED] = null; +RilObject.prototype[UNSOLICITED_ENTER_EMERGENCY_CALLBACK_MODE] = function UNSOLICITED_ENTER_EMERGENCY_CALLBACK_MODE() { this._handleChangedEmergencyCbMode(true); }; -RIL[UNSOLICITED_CDMA_CALL_WAITING] = function UNSOLICITED_CDMA_CALL_WAITING(length) { +RilObject.prototype[UNSOLICITED_CDMA_CALL_WAITING] = function UNSOLICITED_CDMA_CALL_WAITING(length) { let call = {}; call.number = Buf.readString(); call.numberPresentation = Buf.readInt32(); @@ -6380,23 +6394,23 @@ RIL[UNSOLICITED_CDMA_CALL_WAITING] = function UNSOLICITED_CDMA_CALL_WAITING(leng this.sendChromeMessage({rilMessageType: "cdmaCallWaiting", number: call.number}); }; -RIL[UNSOLICITED_CDMA_OTA_PROVISION_STATUS] = function UNSOLICITED_CDMA_OTA_PROVISION_STATUS() { +RilObject.prototype[UNSOLICITED_CDMA_OTA_PROVISION_STATUS] = function UNSOLICITED_CDMA_OTA_PROVISION_STATUS() { let status = Buf.readInt32List()[0]; this.sendChromeMessage({rilMessageType: "otastatuschange", status: status}); }; -RIL[UNSOLICITED_CDMA_INFO_REC] = function UNSOLICITED_CDMA_INFO_REC(length) { +RilObject.prototype[UNSOLICITED_CDMA_INFO_REC] = function UNSOLICITED_CDMA_INFO_REC(length) { let record = CdmaPDUHelper.decodeInformationRecord(); record.rilMessageType = "cdma-info-rec-received"; this.sendChromeMessage(record); }; -RIL[UNSOLICITED_OEM_HOOK_RAW] = null; -RIL[UNSOLICITED_RINGBACK_TONE] = null; -RIL[UNSOLICITED_RESEND_INCALL_MUTE] = null; -RIL[UNSOLICITED_EXIT_EMERGENCY_CALLBACK_MODE] = function UNSOLICITED_EXIT_EMERGENCY_CALLBACK_MODE() { +RilObject.prototype[UNSOLICITED_OEM_HOOK_RAW] = null; +RilObject.prototype[UNSOLICITED_RINGBACK_TONE] = null; +RilObject.prototype[UNSOLICITED_RESEND_INCALL_MUTE] = null; +RilObject.prototype[UNSOLICITED_EXIT_EMERGENCY_CALLBACK_MODE] = function UNSOLICITED_EXIT_EMERGENCY_CALLBACK_MODE() { this._handleChangedEmergencyCbMode(false); }; -RIL[UNSOLICITED_RIL_CONNECTED] = function UNSOLICITED_RIL_CONNECTED(length) { +RilObject.prototype[UNSOLICITED_RIL_CONNECTED] = function UNSOLICITED_RIL_CONNECTED(length) { // Prevent response id collision between UNSOLICITED_RIL_CONNECTED and // UNSOLICITED_VOICE_RADIO_TECH_CHANGED for Akami on gingerbread branch. if (!length) { @@ -6425,7 +6439,9 @@ RIL[UNSOLICITED_RIL_CONNECTED] = function UNSOLICITED_RIL_CONNECTED(length) { * message text but information about the sender, the SMS service center, * timestamp, etc. */ -let GsmPDUHelper = { +function GsmPDUHelperObject() { +} +GsmPDUHelperObject.prototype = { /** * Read one character (2 bytes) from a RIL string and decode as hex. @@ -8043,7 +8059,7 @@ let GsmPDUHelper = { // to the text string if this bit is true. // bit 1-3: number of spare bits in last octet. - let codingInfo = GsmPDUHelper.readHexOctet(); + let codingInfo = this.readHexOctet(); if (!(codingInfo & 0x80)) { return null; } @@ -8056,7 +8072,7 @@ let GsmPDUHelper = { switch (textEncoding) { case 0: // GSM Default alphabet. - resultString = GsmPDUHelper.readSeptetsToString( + resultString = this.readSeptetsToString( ((len - 1) * 8 - spareBits) / 7, 0, PDU_NL_IDENTIFIER_DEFAULT, PDU_NL_IDENTIFIER_DEFAULT); @@ -8079,14 +8095,18 @@ let GsmPDUHelper = { /** * Provide buffer with bitwise read/write function so make encoding/decoding easier. */ -let BitBufferHelper = { +function BitBufferHelperObject() { + this.readBuffer = []; + this.writeBuffer = []; +} +BitBufferHelperObject.prototype = { readCache: 0, readCacheSize: 0, - readBuffer: [], + readBuffer: null, readIndex: 0, writeCache: 0, writeCacheSize: 0, - writeBuffer: [], + writeBuffer: null, // Max length is 32 because we use integer as read/write cache. // All read/write functions are implemented based on bitwise operation. @@ -8222,7 +8242,9 @@ let BitBufferHelper = { * moved from GsmPDUHelper to a common object shared among GsmPDUHelper and * CdmaPDUHelper. */ -let CdmaPDUHelper = { +function CdmaPDUHelperObject() { +} +CdmaPDUHelperObject.prototype = { // 1..........C // Only "1234567890*#" is defined in C.S0005-D v2.0 dtmfChars: ".1234567890*#...", @@ -9310,7 +9332,9 @@ let CdmaPDUHelper = { /** * Helper for processing ICC PDUs. */ -let ICCPDUHelper = { +function ICCPDUHelperObject() { +} +ICCPDUHelperObject.prototype = { /** * Read GSM 8-bit unpacked octets, * which are default 7-bit alphabets with bit 8 set to 0. @@ -9717,9 +9741,11 @@ let ICCPDUHelper = { } }; -let StkCommandParamsFactory = { +function StkCommandParamsFactoryObject() { +} +StkCommandParamsFactoryObject.prototype = { createParam: function(cmdDetails, ctlvs) { - let method = StkCommandParamsFactory[cmdDetails.typeOfCommand]; + let method = this[cmdDetails.typeOfCommand]; if (typeof method != "function") { if (DEBUG) { debug("Unknown proactive command " + cmdDetails.typeOfCommand.toString(16)); @@ -10159,77 +10185,79 @@ let StkCommandParamsFactory = { return bipMsg; } }; -StkCommandParamsFactory[STK_CMD_REFRESH] = function STK_CMD_REFRESH(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_REFRESH] = function STK_CMD_REFRESH(cmdDetails, ctlvs) { return this.processRefresh(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_POLL_INTERVAL] = function STK_CMD_POLL_INTERVAL(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_POLL_INTERVAL] = function STK_CMD_POLL_INTERVAL(cmdDetails, ctlvs) { return this.processPollInterval(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_POLL_OFF] = function STK_CMD_POLL_OFF(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_POLL_OFF] = function STK_CMD_POLL_OFF(cmdDetails, ctlvs) { return this.processPollOff(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_PROVIDE_LOCAL_INFO] = function STK_CMD_PROVIDE_LOCAL_INFO(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_PROVIDE_LOCAL_INFO] = function STK_CMD_PROVIDE_LOCAL_INFO(cmdDetails, ctlvs) { return this.processProvideLocalInfo(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_SET_UP_EVENT_LIST] = function STK_CMD_SET_UP_EVENT_LIST(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_SET_UP_EVENT_LIST] = function STK_CMD_SET_UP_EVENT_LIST(cmdDetails, ctlvs) { return this.processSetUpEventList(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_SET_UP_MENU] = function STK_CMD_SET_UP_MENU(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_SET_UP_MENU] = function STK_CMD_SET_UP_MENU(cmdDetails, ctlvs) { return this.processSelectItem(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_SELECT_ITEM] = function STK_CMD_SELECT_ITEM(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_SELECT_ITEM] = function STK_CMD_SELECT_ITEM(cmdDetails, ctlvs) { return this.processSelectItem(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_DISPLAY_TEXT] = function STK_CMD_DISPLAY_TEXT(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_DISPLAY_TEXT] = function STK_CMD_DISPLAY_TEXT(cmdDetails, ctlvs) { return this.processDisplayText(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_SET_UP_IDLE_MODE_TEXT] = function STK_CMD_SET_UP_IDLE_MODE_TEXT(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_SET_UP_IDLE_MODE_TEXT] = function STK_CMD_SET_UP_IDLE_MODE_TEXT(cmdDetails, ctlvs) { return this.processSetUpIdleModeText(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_GET_INKEY] = function STK_CMD_GET_INKEY(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_GET_INKEY] = function STK_CMD_GET_INKEY(cmdDetails, ctlvs) { return this.processGetInkey(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_GET_INPUT] = function STK_CMD_GET_INPUT(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_GET_INPUT] = function STK_CMD_GET_INPUT(cmdDetails, ctlvs) { return this.processGetInput(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_SEND_SS] = function STK_CMD_SEND_SS(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_SEND_SS] = function STK_CMD_SEND_SS(cmdDetails, ctlvs) { return this.processEventNotify(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_SEND_USSD] = function STK_CMD_SEND_USSD(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_SEND_USSD] = function STK_CMD_SEND_USSD(cmdDetails, ctlvs) { return this.processEventNotify(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_SEND_SMS] = function STK_CMD_SEND_SMS(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_SEND_SMS] = function STK_CMD_SEND_SMS(cmdDetails, ctlvs) { return this.processEventNotify(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_SEND_DTMF] = function STK_CMD_SEND_DTMF(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_SEND_DTMF] = function STK_CMD_SEND_DTMF(cmdDetails, ctlvs) { return this.processEventNotify(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_SET_UP_CALL] = function STK_CMD_SET_UP_CALL(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_SET_UP_CALL] = function STK_CMD_SET_UP_CALL(cmdDetails, ctlvs) { return this.processSetupCall(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_LAUNCH_BROWSER] = function STK_CMD_LAUNCH_BROWSER(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_LAUNCH_BROWSER] = function STK_CMD_LAUNCH_BROWSER(cmdDetails, ctlvs) { return this.processLaunchBrowser(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_PLAY_TONE] = function STK_CMD_PLAY_TONE(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_PLAY_TONE] = function STK_CMD_PLAY_TONE(cmdDetails, ctlvs) { return this.processPlayTone(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_TIMER_MANAGEMENT] = function STK_CMD_TIMER_MANAGEMENT(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_TIMER_MANAGEMENT] = function STK_CMD_TIMER_MANAGEMENT(cmdDetails, ctlvs) { return this.processTimerManagement(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_OPEN_CHANNEL] = function STK_CMD_OPEN_CHANNEL(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_OPEN_CHANNEL] = function STK_CMD_OPEN_CHANNEL(cmdDetails, ctlvs) { return this.processBipMessage(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_CLOSE_CHANNEL] = function STK_CMD_CLOSE_CHANNEL(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_CLOSE_CHANNEL] = function STK_CMD_CLOSE_CHANNEL(cmdDetails, ctlvs) { return this.processBipMessage(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_RECEIVE_DATA] = function STK_CMD_RECEIVE_DATA(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_RECEIVE_DATA] = function STK_CMD_RECEIVE_DATA(cmdDetails, ctlvs) { return this.processBipMessage(cmdDetails, ctlvs); }; -StkCommandParamsFactory[STK_CMD_SEND_DATA] = function STK_CMD_SEND_DATA(cmdDetails, ctlvs) { +StkCommandParamsFactoryObject.prototype[STK_CMD_SEND_DATA] = function STK_CMD_SEND_DATA(cmdDetails, ctlvs) { return this.processBipMessage(cmdDetails, ctlvs); }; -let StkProactiveCmdHelper = { +function StkProactiveCmdHelperObject() { +} +StkProactiveCmdHelperObject.prototype = { retrieve: function(tag, length) { let method = StkProactiveCmdHelper[tag]; if (typeof method != "function") { @@ -10580,62 +10608,64 @@ let StkProactiveCmdHelper = { return null; }, }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_COMMAND_DETAILS] = function COMPREHENSIONTLV_TAG_COMMAND_DETAILS(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_COMMAND_DETAILS] = function COMPREHENSIONTLV_TAG_COMMAND_DETAILS(length) { return this.retrieveCommandDetails(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_DEVICE_ID] = function COMPREHENSIONTLV_TAG_DEVICE_ID(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_DEVICE_ID] = function COMPREHENSIONTLV_TAG_DEVICE_ID(length) { return this.retrieveDeviceId(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_ALPHA_ID] = function COMPREHENSIONTLV_TAG_ALPHA_ID(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_ALPHA_ID] = function COMPREHENSIONTLV_TAG_ALPHA_ID(length) { return this.retrieveAlphaId(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_DURATION] = function COMPREHENSIONTLV_TAG_DURATION(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_DURATION] = function COMPREHENSIONTLV_TAG_DURATION(length) { return this.retrieveDuration(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_ADDRESS] = function COMPREHENSIONTLV_TAG_ADDRESS(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_ADDRESS] = function COMPREHENSIONTLV_TAG_ADDRESS(length) { return this.retrieveAddress(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_TEXT_STRING] = function COMPREHENSIONTLV_TAG_TEXT_STRING(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_TEXT_STRING] = function COMPREHENSIONTLV_TAG_TEXT_STRING(length) { return this.retrieveTextString(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_TONE] = function COMPREHENSIONTLV_TAG_TONE(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_TONE] = function COMPREHENSIONTLV_TAG_TONE(length) { return this.retrieveTone(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_ITEM] = function COMPREHENSIONTLV_TAG_ITEM(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_ITEM] = function COMPREHENSIONTLV_TAG_ITEM(length) { return this.retrieveItem(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_ITEM_ID] = function COMPREHENSIONTLV_TAG_ITEM_ID(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_ITEM_ID] = function COMPREHENSIONTLV_TAG_ITEM_ID(length) { return this.retrieveItemId(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_RESPONSE_LENGTH] = function COMPREHENSIONTLV_TAG_RESPONSE_LENGTH(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_RESPONSE_LENGTH] = function COMPREHENSIONTLV_TAG_RESPONSE_LENGTH(length) { return this.retrieveResponseLength(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_FILE_LIST] = function COMPREHENSIONTLV_TAG_FILE_LIST(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_FILE_LIST] = function COMPREHENSIONTLV_TAG_FILE_LIST(length) { return this.retrieveFileList(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_DEFAULT_TEXT] = function COMPREHENSIONTLV_TAG_DEFAULT_TEXT(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_DEFAULT_TEXT] = function COMPREHENSIONTLV_TAG_DEFAULT_TEXT(length) { return this.retrieveDefaultText(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_EVENT_LIST] = function COMPREHENSIONTLV_TAG_EVENT_LIST(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_EVENT_LIST] = function COMPREHENSIONTLV_TAG_EVENT_LIST(length) { return this.retrieveEventList(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_TIMER_IDENTIFIER] = function COMPREHENSIONTLV_TAG_TIMER_IDENTIFIER(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_TIMER_IDENTIFIER] = function COMPREHENSIONTLV_TAG_TIMER_IDENTIFIER(length) { return this.retrieveTimerId(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_TIMER_VALUE] = function COMPREHENSIONTLV_TAG_TIMER_VALUE(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_TIMER_VALUE] = function COMPREHENSIONTLV_TAG_TIMER_VALUE(length) { return this.retrieveTimerValue(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_IMMEDIATE_RESPONSE] = function COMPREHENSIONTLV_TAG_IMMEDIATE_RESPONSE(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_IMMEDIATE_RESPONSE] = function COMPREHENSIONTLV_TAG_IMMEDIATE_RESPONSE(length) { return this.retrieveImmediaResponse(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_URL] = function COMPREHENSIONTLV_TAG_URL(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_URL] = function COMPREHENSIONTLV_TAG_URL(length) { return this.retrieveUrl(length); }; -StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_NEXT_ACTION_IND] = function COMPREHENSIONTLV_TAG_NEXT_ACTION_IND(length) { +StkProactiveCmdHelperObject.prototype[COMPREHENSIONTLV_TAG_NEXT_ACTION_IND] = function COMPREHENSIONTLV_TAG_NEXT_ACTION_IND(length) { return this.retrieveNextActionList(length); }; -let ComprehensionTlvHelper = { +function ComprehensionTlvHelperObject() { +} +ComprehensionTlvHelperObject.prototype = { /** * Decode raw data to a Comprehension-TLV. */ @@ -10898,7 +10928,9 @@ let ComprehensionTlvHelper = { }, }; -let BerTlvHelper = { +function BerTlvHelperObject() { +} +BerTlvHelperObject.prototype = { /** * Decode Ber TLV. * @@ -11084,26 +11116,28 @@ let BerTlvHelper = { return null; } }; -BerTlvHelper[BER_FCP_TEMPLATE_TAG] = function BER_FCP_TEMPLATE_TAG(length) { +BerTlvHelperObject.prototype[BER_FCP_TEMPLATE_TAG] = function BER_FCP_TEMPLATE_TAG(length) { return this.processFcpTemplate(length); }; -BerTlvHelper[BER_PROACTIVE_COMMAND_TAG] = function BER_PROACTIVE_COMMAND_TAG(length) { +BerTlvHelperObject.prototype[BER_PROACTIVE_COMMAND_TAG] = function BER_PROACTIVE_COMMAND_TAG(length) { return this.processProactiveCommand(length); }; -BerTlvHelper[BER_FCP_FILE_SIZE_DATA_TAG] = function BER_FCP_FILE_SIZE_DATA_TAG(length) { +BerTlvHelperObject.prototype[BER_FCP_FILE_SIZE_DATA_TAG] = function BER_FCP_FILE_SIZE_DATA_TAG(length) { return this.retrieveFileSizeData(length); }; -BerTlvHelper[BER_FCP_FILE_DESCRIPTOR_TAG] = function BER_FCP_FILE_DESCRIPTOR_TAG(length) { +BerTlvHelperObject.prototype[BER_FCP_FILE_DESCRIPTOR_TAG] = function BER_FCP_FILE_DESCRIPTOR_TAG(length) { return this.retrieveFileDescriptor(length); }; -BerTlvHelper[BER_FCP_FILE_IDENTIFIER_TAG] = function BER_FCP_FILE_IDENTIFIER_TAG(length) { +BerTlvHelperObject.prototype[BER_FCP_FILE_IDENTIFIER_TAG] = function BER_FCP_FILE_IDENTIFIER_TAG(length) { return this.retrieveFileIdentifier(length); }; /** * ICC Helper for getting EF path. */ -let ICCFileHelper = { +function ICCFileHelperObject() { +} +ICCFileHelperObject.prototype = { /** * This function handles only EFs that are common to RUIM, SIM, USIM * and other types of ICC cards. @@ -11227,7 +11261,9 @@ let ICCFileHelper = { /** * Helper for ICC IO functionalities. */ -let ICCIOHelper = { +function ICCIOHelperObject() { +} +ICCIOHelperObject.prototype = { /** * Load EF with type 'Linear Fixed'. * @@ -11508,25 +11544,27 @@ let ICCIOHelper = { onerror(requestError); }, }; -ICCIOHelper[ICC_COMMAND_SEEK] = null; -ICCIOHelper[ICC_COMMAND_READ_BINARY] = function ICC_COMMAND_READ_BINARY(options) { +ICCIOHelperObject.prototype[ICC_COMMAND_SEEK] = null; +ICCIOHelperObject.prototype[ICC_COMMAND_READ_BINARY] = function ICC_COMMAND_READ_BINARY(options) { this.processICCIOReadBinary(options); }; -ICCIOHelper[ICC_COMMAND_READ_RECORD] = function ICC_COMMAND_READ_RECORD(options) { +ICCIOHelperObject.prototype[ICC_COMMAND_READ_RECORD] = function ICC_COMMAND_READ_RECORD(options) { this.processICCIOReadRecord(options); }; -ICCIOHelper[ICC_COMMAND_GET_RESPONSE] = function ICC_COMMAND_GET_RESPONSE(options) { +ICCIOHelperObject.prototype[ICC_COMMAND_GET_RESPONSE] = function ICC_COMMAND_GET_RESPONSE(options) { this.processICCIOGetResponse(options); }; -ICCIOHelper[ICC_COMMAND_UPDATE_BINARY] = null; -ICCIOHelper[ICC_COMMAND_UPDATE_RECORD] = function ICC_COMMAND_UPDATE_RECORD(options) { +ICCIOHelperObject.prototype[ICC_COMMAND_UPDATE_BINARY] = null; +ICCIOHelperObject.prototype[ICC_COMMAND_UPDATE_RECORD] = function ICC_COMMAND_UPDATE_RECORD(options) { this.processICCIOUpdateRecord(options); }; /** * Helper for ICC records. */ -let ICCRecordHelper = { +function ICCRecordHelperObject() { +} +ICCRecordHelperObject.prototype = { /** * Fetch ICC records. */ @@ -12003,7 +12041,9 @@ let ICCRecordHelper = { /** * Helper for (U)SIM Records. */ -let SimRecordHelper = { +function SimRecordHelperObject() { +} +SimRecordHelperObject.prototype = { /** * Fetch (U)SIM records. */ @@ -12720,7 +12760,9 @@ let SimRecordHelper = { }, }; -let RuimRecordHelper = { +function RuimRecordHelperObject() { +} +RuimRecordHelperObject.prototype = { fetchRuimRecords: function() { this.getIMSI_M(); this.readCST(); @@ -12940,7 +12982,9 @@ let RuimRecordHelper = { /** * Helper functions for ICC utilities. */ -let ICCUtilsHelper = { +function ICCUtilsHelperObject() { +} +ICCUtilsHelperObject.prototype = { /** * Get network names by using EF_OPL and EF_PNN * @@ -13323,7 +13367,9 @@ let ICCUtilsHelper = { /** * Helper for ICC Contacts. */ -let ICCContactHelper = { +function ICCContactHelperObject() { +} +ICCContactHelperObject.prototype = { /** * Helper function to check DF_PHONEBOOK. */ @@ -13922,8 +13968,28 @@ let ICCContactHelper = { // Initialize buffers. This is a separate function so that unit tests can // re-initialize the buffers at will. +let Buf = new BufObject(); Buf.init(); +let RIL = new RilObject(); +RIL.initRILState(); + +let GsmPDUHelper = new GsmPDUHelperObject(); +let BitBufferHelper = new BitBufferHelperObject(); +let CdmaPDUHelper = new CdmaPDUHelperObject(); +let ICCPDUHelper = new ICCPDUHelperObject(); +let StkCommandParamsFactory = new StkCommandParamsFactoryObject(); +let StkProactiveCmdHelper = new StkProactiveCmdHelperObject(); +let ComprehensionTlvHelper = new ComprehensionTlvHelperObject(); +let BerTlvHelper = new BerTlvHelperObject(); +let ICCFileHelper = new ICCFileHelperObject(); +let ICCIOHelper = new ICCIOHelperObject(); +let ICCRecordHelper = new ICCRecordHelperObject(); +let SimRecordHelper = new SimRecordHelperObject(); +let RuimRecordHelper = new RuimRecordHelperObject(); +let ICCUtilsHelper = new ICCUtilsHelperObject(); +let ICCContactHelper = new ICCContactHelperObject(); + function onRILMessage(/*unused*/aClientId, data) { Buf.processIncoming(data); }