зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changesets ede868d47878 and 5fd0b863fac7 (bug 900321) for Marionette failures.
This commit is contained in:
Родитель
209f1a6b6f
Коммит
122afb1e47
|
@ -10,7 +10,7 @@ interface nsIDOMDOMRequest;
|
|||
interface nsIDOMEventListener;
|
||||
interface nsIDOMMozIccInfo;
|
||||
|
||||
[scriptable, builtinclass, uuid(904b92cb-dad3-416f-88cf-0291012cf448)]
|
||||
[scriptable, builtinclass, uuid(d362bf60-c910-11e2-8b8b-0800200c9a66)]
|
||||
interface nsIDOMMozIccManager : nsIDOMEventTarget
|
||||
{
|
||||
/**
|
||||
|
@ -295,9 +295,7 @@ interface nsIDOMMozIccManager : nsIDOMEventTarget
|
|||
* Indicates the state of the device's ICC card.
|
||||
*
|
||||
* Possible values: null, 'unknown', 'absent', 'pinRequired', 'pukRequired',
|
||||
* 'personalizationInProgress', 'networkLocked', 'corporateLocked',
|
||||
* 'serviceProviderLocked', 'networkPukRequired', 'corporatePukRequired',
|
||||
* 'serviceProviderPukRequired', 'ready'.
|
||||
* 'networkLocked', 'corporateLocked', 'serviceProviderLocked', 'ready'.
|
||||
*/
|
||||
readonly attribute DOMString cardState;
|
||||
|
||||
|
@ -362,23 +360,6 @@ interface nsIDOMMozIccManager : nsIDOMEventTarget
|
|||
* unlockCardLock({lockType: "spck",
|
||||
* pin: "..."});
|
||||
*
|
||||
* (6) Network PUK depersonalization. Unlocking the network control key (NCK).
|
||||
*
|
||||
* unlockCardLock({lockType: "nckPuk",
|
||||
* puk: "..."});
|
||||
*
|
||||
* (7) Corporate PUK depersonalization. Unlocking the corporate control key
|
||||
* (CCK).
|
||||
*
|
||||
* unlockCardLock({lockType: "cckPuk",
|
||||
* puk: "..."});
|
||||
*
|
||||
* (8) Service Provider PUK depersonalization. Unlocking the service provider
|
||||
* control key (SPCK).
|
||||
*
|
||||
* unlockCardLock({lockType: "spckPuk",
|
||||
* puk: "..."});
|
||||
*
|
||||
* @return a nsIDOMDOMRequest.
|
||||
* The request's result will be an object containing
|
||||
* information about the unlock operation.
|
||||
|
|
|
@ -2331,46 +2331,26 @@ this.GECKO_RADIOSTATE_UNAVAILABLE = null;
|
|||
this.GECKO_RADIOSTATE_OFF = "off";
|
||||
this.GECKO_RADIOSTATE_READY = "ready";
|
||||
|
||||
this.GECKO_CARDSTATE_NOT_READY = null;
|
||||
this.GECKO_CARDSTATE_UNKNOWN = "unknown";
|
||||
this.GECKO_CARDSTATE_ABSENT = "absent";
|
||||
this.GECKO_CARDSTATE_PIN_REQUIRED = "pinRequired";
|
||||
this.GECKO_CARDSTATE_PUK_REQUIRED = "pukRequired";
|
||||
this.GECKO_CARDSTATE_PERSONALIZATION_IN_PROGRESS = "personalizationInProgress";
|
||||
this.GECKO_CARDSTATE_NETWORK_LOCKED = "networkLocked";
|
||||
this.GECKO_CARDSTATE_NETWORK_SUBSET_LOCKED = "networkSubsetLocked";
|
||||
this.GECKO_CARDSTATE_CORPORATE_LOCKED = "corporateLocked";
|
||||
this.GECKO_CARDSTATE_SERVICE_PROVIDER_LOCKED = "serviceProviderLocked";
|
||||
this.GECKO_CARDSTATE_SIM_LOCKED = "simPersonalizationLock";
|
||||
this.GECKO_CARDSTATE_NETWORK_PUK_REQUIRED = "networkPukRequired";
|
||||
this.GECKO_CARDSTATE_NETWORK_SUBSET_PUK_REQUIRED = "networkSubsetPukRequired";
|
||||
this.GECKO_CARDSTATE_CORPORATE_PUK_REQUIRED = "corporatePukRequired";
|
||||
this.GECKO_CARDSTATE_SERVICE_PROVIDER_PUK_REQUIRED = "serviceProviderPukRequired";
|
||||
this.GECKO_CARDSTATE_SIM_PUK_REQUIRED = "simPersonalizationPukRequired";
|
||||
this.GECKO_CARDSTATE_READY = "ready";
|
||||
this.GECKO_CARDSTATE_NOT_READY = null;
|
||||
this.GECKO_CARDSTATE_UNKNOWN = "unknown";
|
||||
this.GECKO_CARDSTATE_ABSENT = "absent";
|
||||
this.GECKO_CARDSTATE_PIN_REQUIRED = "pinRequired";
|
||||
this.GECKO_CARDSTATE_PUK_REQUIRED = "pukRequired";
|
||||
this.GECKO_CARDSTATE_NETWORK_LOCKED = "networkLocked";
|
||||
this.GECKO_CARDSTATE_CORPORATE_LOCKED = "corporateLocked";
|
||||
this.GECKO_CARDSTATE_SERVICE_PROVIDER_LOCKED = "serviceProviderLocked";
|
||||
this.GECKO_CARDSTATE_READY = "ready";
|
||||
|
||||
// See ril.h RIL_PersoSubstate
|
||||
this.PERSONSUBSTATE = {};
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_UNKNOWN] = GECKO_CARDSTATE_UNKNOWN;
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_IN_PROGRESS] = GECKO_CARDSTATE_PERSONALIZATION_IN_PROGRESS;
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_IN_PROGRESS] = "inProgress";
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_READY] = GECKO_CARDSTATE_READY;
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK] = GECKO_CARDSTATE_NETWORK_LOCKED;
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK_SUBSET] = GECKO_CARDSTATE_NETWORK_SUBSET_LOCKED;
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK_SUBSET] = "networkSubsetLocked";
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_CORPORATE] = GECKO_CARDSTATE_CORPORATE_LOCKED;
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER] = GECKO_CARDSTATE_SERVICE_PROVIDER_LOCKED;
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_SIM] = GECKO_CARDSTATE_SIM_LOCKED;
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK_PUK] = GECKO_CARDSTATE_NETWORK_PUK_REQUIRED;
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK] = GECKO_CARDSTATE_NETWORK_SUBSET_PUK_REQUIRED;
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_CORPORATE_PUK] = GECKO_CARDSTATE_CORPORATE_PUK_REQUIRED;
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK] = GECKO_CARDSTATE_SERVICE_PROVIDER_PUK_REQUIRED;
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_READY] = GECKO_CARDSTATE_READY;
|
||||
|
||||
this.GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK = {};
|
||||
GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK["nck"] = CARD_PERSOSUBSTATE_SIM_NETWORK;
|
||||
GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK["cck"] = CARD_PERSOSUBSTATE_SIM_CORPORATE;
|
||||
GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK["spck"] = CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER;
|
||||
GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK["nckPuk"] = CARD_PERSOSUBSTATE_SIM_NETWORK_PUK;
|
||||
GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK["cckPuk"] = CARD_PERSOSUBSTATE_SIM_CORPORATE_PUK;
|
||||
GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK["spckPuk"] = CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK;
|
||||
PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_SIM] = "simPersonalizationLock";
|
||||
|
||||
this.GECKO_NETWORK_SELECTION_UNKNOWN = null;
|
||||
this.GECKO_NETWORK_SELECTION_AUTOMATIC = "automatic";
|
||||
|
|
|
@ -980,19 +980,17 @@ let RIL = {
|
|||
this.enterICCPUK2(options);
|
||||
break;
|
||||
case "nck":
|
||||
case "cck": // Fall through.
|
||||
case "spck": {
|
||||
let type = GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[options.lockType];
|
||||
this.enterDepersonalization(type, options.pin, options);
|
||||
options.type = CARD_PERSOSUBSTATE_SIM_NETWORK;
|
||||
this.enterDepersonalization(options);
|
||||
break;
|
||||
}
|
||||
case "nckPuk":
|
||||
case "cckPuk": // Fall through.
|
||||
case "spckPuk": {
|
||||
let type = GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[options.lockType];
|
||||
this.enterDepersonalization(type, options.puk, options);
|
||||
case "cck":
|
||||
options.type = CARD_PERSOSUBSTATE_SIM_CORPORATE;
|
||||
this.enterDepersonalization(options);
|
||||
break;
|
||||
case "spck":
|
||||
options.type = CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER;
|
||||
this.enterDepersonalization(options);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
options.errorMsg = "Unsupported Card Lock.";
|
||||
options.success = false;
|
||||
|
@ -1041,13 +1039,13 @@ let RIL = {
|
|||
*
|
||||
* @param type
|
||||
* Integer indicating the network personalization be deactivated.
|
||||
* @param password
|
||||
* String containing the password.
|
||||
* @param pin
|
||||
* String containing the pin.
|
||||
*/
|
||||
enterDepersonalization: function enterDepersonalization(type, password, options) {
|
||||
enterDepersonalization: function enterDepersonalization(options) {
|
||||
Buf.newParcel(REQUEST_ENTER_NETWORK_DEPERSONALIZATION_CODE, options);
|
||||
Buf.writeUint32(type);
|
||||
Buf.writeString(password);
|
||||
Buf.writeUint32(options.type);
|
||||
Buf.writeString(options.pin);
|
||||
Buf.sendParcel();
|
||||
},
|
||||
|
||||
|
|
|
@ -2606,51 +2606,58 @@ add_test(function test_find_free_icc_contact() {
|
|||
contactHelper.findFreeICCContact(CARD_APPTYPE_USIM, "adn", successCb, errorCb);
|
||||
});
|
||||
|
||||
add_test(function test_personalization_state() {
|
||||
/**
|
||||
* Verify cardState 'corporateLocked'.
|
||||
*/
|
||||
add_test(function test_card_state_corporateLocked() {
|
||||
let worker = newUint8Worker();
|
||||
let ril = worker.RIL;
|
||||
let iccStatus = {
|
||||
gsmUmtsSubscriptionAppIndex: 0,
|
||||
apps: [
|
||||
{
|
||||
app_state: CARD_APPSTATE_SUBSCRIPTION_PERSO,
|
||||
perso_substate: CARD_PERSOSUBSTATE_SIM_CORPORATE
|
||||
}],
|
||||
};
|
||||
|
||||
function testPersonalization(cardPersoState, geckoCardState) {
|
||||
let iccStatus = {
|
||||
gsmUmtsSubscriptionAppIndex: 0,
|
||||
apps: [
|
||||
{
|
||||
app_state: CARD_APPSTATE_SUBSCRIPTION_PERSO,
|
||||
perso_substate: cardPersoState
|
||||
}],
|
||||
};
|
||||
|
||||
ril._processICCStatus(iccStatus);
|
||||
do_check_eq(ril.cardState, geckoCardState);
|
||||
}
|
||||
|
||||
testPersonalization(CARD_PERSOSUBSTATE_SIM_NETWORK,
|
||||
GECKO_CARDSTATE_NETWORK_LOCKED);
|
||||
testPersonalization(CARD_PERSOSUBSTATE_SIM_CORPORATE,
|
||||
GECKO_CARDSTATE_CORPORATE_LOCKED);
|
||||
testPersonalization(CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER,
|
||||
GECKO_CARDSTATE_SERVICE_PROVIDER_LOCKED);
|
||||
testPersonalization(CARD_PERSOSUBSTATE_SIM_NETWORK_PUK,
|
||||
GECKO_CARDSTATE_NETWORK_PUK_REQUIRED);
|
||||
testPersonalization(CARD_PERSOSUBSTATE_SIM_CORPORATE_PUK,
|
||||
GECKO_CARDSTATE_CORPORATE_PUK_REQUIRED);
|
||||
testPersonalization(CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK,
|
||||
GECKO_CARDSTATE_SERVICE_PROVIDER_PUK_REQUIRED);
|
||||
ril._processICCStatus(iccStatus);
|
||||
do_check_eq(ril.cardState, GECKO_CARDSTATE_CORPORATE_LOCKED);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify iccUnlockCardLock.
|
||||
* Verify cardState 'serviceProviderLocked'.
|
||||
*/
|
||||
add_test(function test_card_state_serviceProviderLocked() {
|
||||
let worker = newUint8Worker();
|
||||
let ril = worker.RIL;
|
||||
let iccStatus = {
|
||||
gsmUmtsSubscriptionAppIndex: 0,
|
||||
apps: [
|
||||
{
|
||||
app_state: CARD_APPSTATE_SUBSCRIPTION_PERSO,
|
||||
perso_substate: CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER
|
||||
}],
|
||||
};
|
||||
|
||||
ril._processICCStatus(iccStatus);
|
||||
do_check_eq(ril.cardState, GECKO_CARDSTATE_SERVICE_PROVIDER_LOCKED);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify iccUnlockCardLock with lockType is "cck" and "spck".
|
||||
*/
|
||||
add_test(function test_unlock_card_lock_corporateLocked() {
|
||||
let worker = newUint8Worker();
|
||||
let ril = worker.RIL;
|
||||
let buf = worker.Buf;
|
||||
const pin = "12345678";
|
||||
const puk = "12345678";
|
||||
|
||||
function do_test(aLock, aPassword) {
|
||||
function do_test(aLock, aPin) {
|
||||
buf.sendParcel = function fakeSendParcel () {
|
||||
// Request Type.
|
||||
do_check_eq(this.readUint32(), REQUEST_ENTER_NETWORK_DEPERSONALIZATION_CODE);
|
||||
|
@ -2658,29 +2665,23 @@ add_test(function test_unlock_card_lock_corporateLocked() {
|
|||
// Token : we don't care
|
||||
this.readUint32();
|
||||
|
||||
let lockType = GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[aLock];
|
||||
let lockType = aLock === "cck" ?
|
||||
CARD_PERSOSUBSTATE_SIM_CORPORATE :
|
||||
CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER;
|
||||
|
||||
// Lock Type
|
||||
do_check_eq(this.readUint32(), lockType);
|
||||
|
||||
// Pin/Puk.
|
||||
do_check_eq(this.readString(), aPassword);
|
||||
// Pin.
|
||||
do_check_eq(this.readString(), aPin);
|
||||
};
|
||||
|
||||
if (aLock.endsWith("Puk")) {
|
||||
ril.iccUnlockCardLock({lockType: aLock,
|
||||
puk: aPassword});
|
||||
} else {
|
||||
ril.iccUnlockCardLock({lockType: aLock,
|
||||
pin: aPassword});
|
||||
}
|
||||
ril.iccUnlockCardLock({lockType: aLock,
|
||||
pin: aPin});
|
||||
}
|
||||
|
||||
do_test("nck", pin);
|
||||
do_test("cck", pin);
|
||||
do_test("spck", pin);
|
||||
do_test("nckPuk", puk);
|
||||
do_test("cckPuk", puk);
|
||||
do_test("spckPuk", puk);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
|
Загрузка…
Ссылка в новой задаче