From bb53a67bac1b4d14e68051e1a22a9bcb61355193 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 01:26:58 -0800 Subject: [PATCH 01/22] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/719add3a0155 Author: Rudy Lu Desc: Merge pull request #26471 from RudyLu/keyboard/Bug1103927-type_error_forKeyView Bug 1103927 - still need target to DOM element map for UI components that are r=timdream. ======== https://hg.mozilla.org/integration/gaia-central/rev/df59bf521447 Author: Rudy Lu Desc: Bug 1103927 - still need target to DOM element map for UI components that are not represented as a View. --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 5bcc23d0584a..14ab0760f449 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "78d735b50d94254ff236fc34a6fbaa5ed27692a0", + "revision": "719add3a015541784c0041455d228c71a064576f", "repo_path": "integration/gaia-central" } From fa0dacaebb10d04e5e9dded1bb229f44454eb3ad Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 01:36:34 -0800 Subject: [PATCH 02/22] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index f35911bb117d..09effc78ef44 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 02223472c26a..f7befead8920 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 4b5b2f826589..072f4a36588b 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 89fe98f79dd8..432e8f8cc79f 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 02223472c26a..f7befead8920 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index c0d1a34b0337..542d63c59def 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index beb9030d8892..05133a33cf40 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 088a6145af75..4ed4cb6188c2 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 94cd77036b72..efdaabfb1730 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index e886dce9689c..7a17ffa3efd5 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 196812c112f4..db3c5a7bf3df 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From f8d5136f815e8b139159081556133d0b0427f803 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 02:01:56 -0800 Subject: [PATCH 03/22] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/663b5ce9bb9e Author: gasolin Desc: Merge pull request #26478 from gasolin/issue-1102885 Bug 1089511 refactor system/js/bluetooth to future compatible format, r=alive ======== https://hg.mozilla.org/integration/gaia-central/rev/ed50a13c0655 Author: gasolin Desc: Bug 1089511 - refactor system/js/bluetooth to future compatible format - fix store bluetooth state when restart --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 14ab0760f449..d3b0ebb280d7 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "719add3a015541784c0041455d228c71a064576f", + "revision": "663b5ce9bb9ec58737e115e6b28943624de6f01d", "repo_path": "integration/gaia-central" } From ad39e2b539a45fb0bd12fbed43d3938abaf60b41 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 02:07:01 -0800 Subject: [PATCH 04/22] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 09effc78ef44..5874e8abc2b3 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index f7befead8920..7b1eb01f83fb 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 072f4a36588b..fc8ea49eb2fd 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 432e8f8cc79f..94d6f7be22a5 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index f7befead8920..7b1eb01f83fb 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 542d63c59def..f71a0a4a48f6 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 05133a33cf40..b442d2d6a661 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 4ed4cb6188c2..224c16e687ea 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index efdaabfb1730..73f8ac015069 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 7a17ffa3efd5..23d34cfa202d 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index db3c5a7bf3df..77bf9f7fe3ee 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From 9d7b247d38130d9063b2894e4670b827e1e18765 Mon Sep 17 00:00:00 2001 From: Dimi Lee Date: Thu, 27 Nov 2014 17:02:56 +0800 Subject: [PATCH 05/22] Bug 1093483 - Remove NFC_GECKO_ERROR_NOT_ENABLED error from Nfc.js. r=allstars.chh --- dom/nfc/gonk/Nfc.js | 14 +++----------- dom/nfc/gonk/nfc_consts.js | 6 ++---- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/dom/nfc/gonk/Nfc.js b/dom/nfc/gonk/Nfc.js index 55059fb4fa8b..080f852cd896 100644 --- a/dom/nfc/gonk/Nfc.js +++ b/dom/nfc/gonk/Nfc.js @@ -609,17 +609,9 @@ Nfc.prototype = { * Process a message from the gMessageManager. */ receiveMessage: function receiveMessage(message) { - let isRFAPI = message.name == "NFC:ChangeRFState"; - let isSendFile = message.name == "NFC:SendFile"; - let isInfoAPI = message.name == "NFC:QueryInfo"; - - if (!isRFAPI && !isInfoAPI && (this.rfState != NFC.NFC_RF_STATE_DISCOVERY)) { - debug("NFC is not enabled. current rfState:" + this.rfState); - this.sendNfcErrorResponse(message, NFC.NFC_GECKO_ERROR_NOT_ENABLED); - return null; - } - - if (!isRFAPI && !isSendFile && !isInfoAPI) { + if (["NFC:ChangeRFState", + "NFC:SendFile", + "NFC:QueryInfo"].indexOf(message.name) == -1) { // Update the current sessionId before sending to the NFC service. message.data.sessionId = SessionHelper.getId(message.data.sessionToken); } diff --git a/dom/nfc/gonk/nfc_consts.js b/dom/nfc/gonk/nfc_consts.js index 41f116e836a7..72f88c050df6 100644 --- a/dom/nfc/gonk/nfc_consts.js +++ b/dom/nfc/gonk/nfc_consts.js @@ -26,14 +26,12 @@ this.DEBUG_NFC = DEBUG_ALL || false; this.NFC_GECKO_SUCCESS = 0; this.NFC_GECKO_ERROR_GENERIC_FAILURE = 1; this.NFC_GECKO_ERROR_P2P_REG_INVALID = 2; -this.NFC_GECKO_ERROR_NOT_ENABLED = 3; -this.NFC_GECKO_ERROR_SEND_FILE_FAILED = 4; -this.NFC_GECKO_ERROR_BAD_SESSION_TOKEN = 5; +this.NFC_GECKO_ERROR_SEND_FILE_FAILED = 3; +this.NFC_GECKO_ERROR_BAD_SESSION_TOKEN = 4; this.NFC_ERROR_MSG = {}; this.NFC_ERROR_MSG[this.NFC_GECKO_ERROR_GENERIC_FAILURE] = "NfcGenericFailureError"; this.NFC_ERROR_MSG[this.NFC_GECKO_ERROR_P2P_REG_INVALID] = "NfcP2PRegistrationInvalid"; -this.NFC_ERROR_MSG[this.NFC_GECKO_ERROR_NOT_ENABLED] = "NfcNotEnabledError"; this.NFC_ERROR_MSG[this.NFC_GECKO_ERROR_SEND_FILE_FAILED] = "NfcSendFileFailed"; this.NFC_ERROR_MSG[this.NFC_GECKO_ERROR_BAD_SESSION_TOKEN] = "NfcBadSessionToken"; From 2df3209bd3603691b261198b8fc59beb7cec72e3 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 02:31:58 -0800 Subject: [PATCH 06/22] Bumping gaia.json for 4 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/05fbb2da974f Author: Florin Strugariu Desc: Merge pull request #26409 from viorelaioia/bug_1104001 Bug 1104001 - Fix intermittent failure in test_sms_with_picture_attached... ======== https://hg.mozilla.org/integration/gaia-central/rev/8768fe394bcd Author: Viorela Ioia Desc: Bug 1104001 - Fix intermittent failure in test_sms_with_picture_attached.py ======== https://hg.mozilla.org/integration/gaia-central/rev/1d35295b5bc2 Author: Florin Strugariu Desc: Merge pull request #26446 from zacc/bug_1095471 Bug 1095471 - Wait for keyboard's input mode to be initialized to protec... ======== https://hg.mozilla.org/integration/gaia-central/rev/8ba69fd83337 Author: Zac Desc: Bug 1095471 - Dismiss keyboard between input entry to avoid macos intermittents --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index d3b0ebb280d7..28f0dcd7e456 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "663b5ce9bb9ec58737e115e6b28943624de6f01d", + "revision": "05fbb2da974fd480a8ccccf98b5f68ffe615a6c6", "repo_path": "integration/gaia-central" } From 6aaa94fefcb5282660c9e4a3e63541e63e2e9783 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 02:37:03 -0800 Subject: [PATCH 07/22] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 5874e8abc2b3..120564b4d67e 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 7b1eb01f83fb..b3690ffc8add 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index fc8ea49eb2fd..1cfbfadad269 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 94d6f7be22a5..0f7711053247 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 7b1eb01f83fb..b3690ffc8add 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index f71a0a4a48f6..a54c160e518e 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index b442d2d6a661..89aa6dc3b2cd 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 224c16e687ea..97ff8ebd10fb 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 73f8ac015069..95623f39e6fb 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 23d34cfa202d..9556270ec084 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 77bf9f7fe3ee..c7d51022c12d 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From f688c6c397666fe1cfa2dbc7f12274d8dee128b5 Mon Sep 17 00:00:00 2001 From: Fernando Jimenez Date: Thu, 27 Nov 2014 11:53:43 +0100 Subject: [PATCH 08/22] Bug 1101444 - [Loop] For each invalid inserted verification code, Device receives a valid verification code. r=spenrose --- .../MobileIdentityVerificationFlow.jsm | 106 +++-- services/mobileid/tests/xpcshell/head.js | 443 ++++++++++++++++++ .../tests/xpcshell/test_mobileid_manager.js | 409 ---------------- .../test_mobileid_verification_flow.js | 42 ++ services/mobileid/tests/xpcshell/xpcshell.ini | 3 +- 5 files changed, 541 insertions(+), 462 deletions(-) create mode 100644 services/mobileid/tests/xpcshell/test_mobileid_verification_flow.js diff --git a/services/mobileid/MobileIdentityVerificationFlow.jsm b/services/mobileid/MobileIdentityVerificationFlow.jsm index ad7583aaf35e..bd0f66ccbede 100644 --- a/services/mobileid/MobileIdentityVerificationFlow.jsm +++ b/services/mobileid/MobileIdentityVerificationFlow.jsm @@ -37,68 +37,67 @@ MobileIdentityVerificationFlow.prototype = { return Promise.reject(ERROR_INTERNAL_UNEXPECTED); } this.sessionToken = registerResult.msisdnSessionToken; - return this._doVerification(); + // We save the timestamp of the start of the verification timeout to be + // able to provide to the UI the remaining time on each retry. + if (!this.timer) { + log.debug("Creating verification code timer"); + this.timerCreation = Date.now(); + this.timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer); + this.timer.initWithCallback(this.onVerificationCodeTimeout.bind(this), + VERIFICATIONCODE_TIMEOUT, + this.timer.TYPE_ONE_SHOT); + } + + if (!this.verifyStrategy) { + return Promise.reject(ERROR_INTERNAL_INVALID_VERIFICATION_FLOW); + } + + return this.verifyStrategy() + .then(() => { + return this._doVerification(); + }, (reason) => { + this.verificationCodeDeferred.reject(reason); + }); } ) }, _doVerification: function() { log.debug("_doVerification"); - // We save the timestamp of the start of the verification timeout to be - // able to provide to the UI the remaining time on each retry. - if (!this.timer) { - log.debug("Creating verification code timer"); - this.timerCreation = Date.now(); - this.timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer); - this.timer.initWithCallback(this.onVerificationCodeTimeout.bind(this), - VERIFICATIONCODE_TIMEOUT, - this.timer.TYPE_ONE_SHOT); - } - - if (!this.verifyStrategy) { - return Promise.reject(ERROR_INTERNAL_INVALID_VERIFICATION_FLOW); - } this.verificationCodeDeferred = Promise.defer(); - this.verifyStrategy() - .then( - () => { - // If the verification flow can be for an external phone number, - // we need to ask the user for the verification code. - // In that case we don't do a notification about the verification - // process being done until the user enters the verification code - // in the UI. - if (this.verificationOptions.external) { - let timeLeft = 0; - if (this.timer) { - timeLeft = this.timerCreation + VERIFICATIONCODE_TIMEOUT - - Date.now(); - } - this.ui.verificationCodePrompt(this.retries, - VERIFICATIONCODE_TIMEOUT / 1000, - timeLeft / 1000) - .then( - (verificationCode) => { - if (!verificationCode) { - return this.verificationCodeDeferred.reject( - ERROR_INTERNAL_INVALID_PROMPT_RESULT); - } - // If the user got the verification code that means that the - // introduced phone number didn't belong to any of the inserted - // SIMs. - this.ui.verify(); - this.verificationCodeDeferred.resolve(verificationCode); - } - ); - } else { - this.ui.verify(); - } - }, - (reason) => { - this.verificationCodeDeferred.reject(reason); + // If the verification flow can be for an external phone number, + // we need to ask the user for the verification code. + // In that case we don't do a notification about the verification + // process being done until the user enters the verification code + // in the UI. + if (this.verificationOptions.external) { + let timeLeft = 0; + if (this.timer) { + timeLeft = this.timerCreation + VERIFICATIONCODE_TIMEOUT - + Date.now(); } - ); + this.ui.verificationCodePrompt(this.retries, + VERIFICATIONCODE_TIMEOUT / 1000, + timeLeft / 1000) + .then( + (verificationCode) => { + if (!verificationCode) { + return this.verificationCodeDeferred.reject( + ERROR_INTERNAL_INVALID_PROMPT_RESULT); + } + // If the user got the verification code that means that the + // introduced phone number didn't belong to any of the inserted + // SIMs. + this.ui.verify(); + this.verificationCodeDeferred.resolve(verificationCode); + } + ); + } else { + this.ui.verify(); + } + return this.verificationCodeDeferred.promise.then( this.onVerificationCode.bind(this) ); @@ -145,8 +144,11 @@ MobileIdentityVerificationFlow.prototype = { log.error("Retries left " + this.retries); if (!this.retries) { this.ui.error(ERROR_NO_RETRIES_LEFT); + this.timer.cancel(); + this.timer = null; return Promise.reject(ERROR_NO_RETRIES_LEFT); } + this.ui.error(ERROR_INVALID_VERIFICATION_CODE); this.verifying = false; if (this.queuedTimeout) { this.onVerificationCodeTimeout(); diff --git a/services/mobileid/tests/xpcshell/head.js b/services/mobileid/tests/xpcshell/head.js index 751ae81c77eb..28048e2dab6f 100644 --- a/services/mobileid/tests/xpcshell/head.js +++ b/services/mobileid/tests/xpcshell/head.js @@ -5,6 +5,8 @@ const {classes: Cc, interfaces: Ci, results: Cr, utils: Cu} = Components; "use strict"; +const Cm = Components.manager; + Cu.import("resource://gre/modules/XPCOMUtils.jsm"); Cu.import("resource://gre/modules/Services.jsm"); @@ -17,3 +19,444 @@ Cu.import("resource://gre/modules/Services.jsm"); Services.prefs.setCharPref("services.mobileid.server.uri", "https://dummyurl.com"); }).call(this); + +const DEBUG = false; + +const GET_ASSERTION_IPC_MSG = "MobileId:GetAssertion"; +const GET_ASSERTION_RETURN_OK = "MobileId:GetAssertion:Return:OK"; +const GET_ASSERTION_RETURN_KO = "MobileId:GetAssertion:Return:KO"; + +// === Globals === + +const ORIGIN = "app://afakeorigin"; +const APP_ID = 1; +const PRINCIPAL = { + origin: ORIGIN, + appId: APP_ID +}; +const PHONE_NUMBER = "+34666555444"; +const ANOTHER_PHONE_NUMBER = "+44123123123"; +const VERIFICATION_CODE = "123456"; +const SESSION_TOKEN = "aSessionToken"; +const ICC_ID = "aIccId"; +const ANOTHER_ICC_ID = "anotherIccId"; +const MNC = "aMnc"; +const ANOTHER_MNC = "anotherMnc"; +const MCC = "aMcc"; +const ANOTHER_MCC = "anotherMcc"; +const OPERATOR = "aOperator"; +const ANOTHER_OPERATOR = "anotherOperator"; +const RADIO_INTERFACE = { + rilContext: { + iccInfo: { + iccid: ICC_ID, + mcc: MCC, + mnc: MNC, + msisdn: PHONE_NUMBER, + operator: OPERATOR + } + }, + voice: { + network: { + shortName: OPERATOR + }, + roaming: false + }, + data: { + network: { + shortName: OPERATOR + } + } +}; +const ANOTHER_RADIO_INTERFACE = { + rilContext: { + iccInfo: { + iccid: ANOTHER_ICC_ID, + mcc: ANOTHER_MCC, + mnc: ANOTHER_MNC, + msisdn: ANOTHER_PHONE_NUMBER, + operator: ANOTHER_OPERATOR + } + }, + voice: { + network: { + shortName: ANOTHER_OPERATOR + }, + roaming: false + }, + data: { + network: { + shortName: ANOTHER_OPERATOR + } + } +}; + +const INVALID_RADIO_INTERFACE = { + rilContext: { + iccInfo: { + iccid: null, + mcc: "", + mnc: "", + msisdn: "", + operator: "" + } + }, + voice: { + network: { + shortName: "" + }, + roaming: undefined + }, + data: { + network: { + shortName: "" + } + } +}; + +const CERTIFICATE = "eyJhbGciOiJEUzI1NiJ9.eyJsYXN0QXV0aEF0IjoxNDA0NDY5NzkyODc3LCJ2ZXJpZmllZE1TSVNETiI6IiszMTYxNzgxNTc1OCIsInB1YmxpYy1rZXkiOnsiYWxnb3JpdGhtIjoiRFMiLCJ5IjoiNGE5YzkzNDY3MWZhNzQ3YmM2ZjMyNjE0YTg1MzUyZjY5NDcwMDdhNTRkMDAxMDY4OWU5ZjJjZjc0ZGUwYTEwZTRlYjlmNDk1ZGFmZTA0NGVjZmVlNDlkN2YwOGU4ODQyMDJiOTE5OGRhNWZhZWE5MGUzZjRmNzE1YzZjNGY4Yjc3MGYxZTU4YWZhNDM0NzVhYmFiN2VlZGE1MmUyNjk2YzFmNTljNzMzYjFlYzBhNGNkOTM1YWIxYzkyNzAxYjNiYTA5ZDRhM2E2MzNjNTJmZjE2NGYxMWY3OTg1YzlmZjY3ZThmZDFlYzA2NDU3MTdkMjBiNDE4YmM5M2YzYzVkNCIsInAiOiJmZjYwMDQ4M2RiNmFiZmM1YjQ1ZWFiNzg1OTRiMzUzM2Q1NTBkOWYxYmYyYTk5MmE3YThkYWE2ZGMzNGY4MDQ1YWQ0ZTZlMGM0MjlkMzM0ZWVlYWFlZmQ3ZTIzZDQ4MTBiZTAwZTRjYzE0OTJjYmEzMjViYTgxZmYyZDVhNWIzMDVhOGQxN2ViM2JmNGEwNmEzNDlkMzkyZTAwZDMyOTc0NGE1MTc5MzgwMzQ0ZTgyYTE4YzQ3OTMzNDM4Zjg5MWUyMmFlZWY4MTJkNjljOGY3NWUzMjZjYjcwZWEwMDBjM2Y3NzZkZmRiZDYwNDYzOGMyZWY3MTdmYzI2ZDAyZTE3IiwicSI6ImUyMWUwNGY5MTFkMWVkNzk5MTAwOGVjYWFiM2JmNzc1OTg0MzA5YzMiLCJnIjoiYzUyYTRhMGZmM2I3ZTYxZmRmMTg2N2NlODQxMzgzNjlhNjE1NGY0YWZhOTI5NjZlM2M4MjdlMjVjZmE2Y2Y1MDhiOTBlNWRlNDE5ZTEzMzdlMDdhMmU5ZTJhM2NkNWRlYTcwNGQxNzVmOGViZjZhZjM5N2Q2OWUxMTBiOTZhZmIxN2M3YTAzMjU5MzI5ZTQ4MjliMGQwM2JiYzc4OTZiMTViNGFkZTUzZTEzMDg1OGNjMzRkOTYyNjlhYTg5MDQxZjQwOTEzNmM3MjQyYTM4ODk1YzlkNWJjY2FkNGYzODlhZjFkN2E0YmQxMzk4YmQwNzJkZmZhODk2MjMzMzk3YSJ9LCJwcmluY2lwYWwiOiIwMzgxOTgyYS0xZTgzLTI1NjYtNjgzZS05MDRmNDA0NGM1MGRAbXNpc2RuLWRldi5zdGFnZS5tb3phd3MubmV0IiwiaWF0IjoxNDA0NDY5NzgyODc3LCJleHAiOjE0MDQ0OTEzOTI4NzcsImlzcyI6Im1zaXNkbi1kZXYuc3RhZ2UubW96YXdzLm5ldCJ9." + +// === Helpers === + +function addPermission(aAction) { + let uri = Cc["@mozilla.org/network/io-service;1"] + .getService(Ci.nsIIOService) + .newURI(ORIGIN, null, null); + let _principal = Cc["@mozilla.org/scriptsecuritymanager;1"] + .getService(Ci.nsIScriptSecurityManager) + .getAppCodebasePrincipal(uri, APP_ID, false); + let pm = Cc["@mozilla.org/permissionmanager;1"] + .getService(Ci.nsIPermissionManager); + pm.addFromPrincipal(_principal, MOBILEID_PERM, aAction); +} + +function removePermission() { + let uri = Cc["@mozilla.org/network/io-service;1"] + .getService(Ci.nsIIOService) + .newURI(ORIGIN, null, null); + let _principal = Cc["@mozilla.org/scriptsecuritymanager;1"] + .getService(Ci.nsIScriptSecurityManager) + .getAppCodebasePrincipal(uri, APP_ID, false); + let pm = Cc["@mozilla.org/permissionmanager;1"] + .getService(Ci.nsIPermissionManager); + pm.removeFromPrincipal(_principal, MOBILEID_PERM); +} + +// === Mocks === + +let Mock = function(aOptions) { + if (!aOptions) { + aOptions = {}; + } + this._options = aOptions; + this._spied = {}; +}; + +Mock.prototype = { + _: function(aMethod) { + DEBUG && do_print("_ " + aMethod + JSON.stringify(this._spied)); + let self = this; + return { + callsLength: function(aNumberOfCalls) { + if (aNumberOfCalls == 0) { + do_check_eq(self._spied[aMethod], undefined); + return; + } + do_check_eq(self._spied[aMethod].length, aNumberOfCalls); + }, + call: function(aCallNumber) { + return { + arg: function(aArgNumber, aValue) { + let _arg = self._spied[aMethod][aCallNumber - 1][aArgNumber - 1]; + if (Array.isArray(aValue)) { + do_check_eq(_arg.length, aValue.length) + for (let i = 0; i < _arg.length; i++) { + do_check_eq(_arg[i], aValue[i]); + } + return; + } + + if (typeof aValue === 'object') { + do_check_eq(JSON.stringify(_arg), JSON.stringify(aValue)); + return; + } + + do_check_eq(_arg, aValue); + } + } + } + } + }, + + _spy: function(aMethod, aArgs) { + DEBUG && do_print(aMethod + " - " + JSON.stringify(aArgs)); + if (!this._spied[aMethod]) { + this._spied[aMethod] = []; + } + this._spied[aMethod].push(aArgs); + }, + + getSpiedCalls: function(aMethod) { + return this._spied[aMethod]; + } +}; + +// UI Glue mock up. +let MockUi = function(aOptions) { + Mock.call(this, aOptions); +}; + +MockUi.prototype = { + __proto__: Mock.prototype, + + _startFlowResult: { + phoneNumber: PHONE_NUMBER, + mcc: MNC + }, + + _verifyCodePromptResult: { + verificationCode: VERIFICATION_CODE + }, + + startFlow: function() { + this._spy("startFlow", arguments); + return Promise.resolve(this._options.startFlowResult || + this._startFlowResult); + }, + + verificationCodePrompt: function() { + this._spy("verifyCodePrompt", arguments); + return Promise.resolve(this._options.verificationCodePromptResult || + this._verifyCodePromptResult); + }, + + verify: function() { + this._spy("verify", arguments); + }, + + error: function() { + this._spy("error", arguments); + }, + + verified: function() { + this._spy("verified", arguments); + }, + + set oncancel(aCallback) { + }, + + set onresendcode(aCallback) { + } +}; + +// Credentials store mock up. +let MockCredStore = function(aOptions) { + Mock.call(this, aOptions); +}; + +MockCredStore.prototype = { + __proto__: Mock.prototype, + + _getByOriginResult: null, + + _getByMsisdnResult: null, + + _getByIccIdResult: null, + + getByOrigin: function() { + this._spy("getByOrigin", arguments); + let result = this._getByOriginResult; + if (this._options.getByOriginResult) { + if (Array.isArray(this._options.getByOriginResult)) { + result = this._options.getByOriginResult.length ? + this._options.getByOriginResult.shift() : null; + } else { + result = this._options.getByOriginResult; + } + } + return Promise.resolve(result); + }, + + getByMsisdn: function() { + this._spy("getByMsisdn", arguments); + return Promise.resolve(this._options.getByMsisdnResult || + this._getByMsisdnResult); + }, + + getByIccId: function() { + this._spy("getByIccId", arguments); + return Promise.resolve(this._options.getByIccIdResult || + this._getByIccIdResult); + }, + + add: function() { + this._spy("add", arguments); + return Promise.resolve(); + }, + + setDeviceIccIds: function() { + this._spy("setDeviceIccIds", arguments); + return Promise.resolve(); + }, + + removeOrigin: function() { + this._spy("removeOrigin", arguments); + return Promise.resolve(); + }, + + delete: function() { + this._spy("delete", arguments); + return Promise.resolve(); + } +}; + +// Client mock up. +let MockClient = function(aOptions) { + Mock.call(this, aOptions); +}; + +MockClient.prototype = { + + __proto__: Mock.prototype, + + _discoverResult: { + verificationMethods: ["sms/mt"], + verificationDetails: { + "sms/mt": { + mtSender: "123", + url: "https://msisdn.accounts.firefox.com/v1/msisdn/sms/mt/verify" + } + } + }, + + _registerResult: { + msisdnSessionToken: SESSION_TOKEN + }, + + _smsMtVerifyResult: {}, + + _verifyCodeResult: { + msisdn: PHONE_NUMBER + }, + + _signResult: { + cert: CERTIFICATE + }, + + hawk: { + now: function() { + return Date.now(); + } + }, + + discover: function() { + this._spy("discover", arguments); + return Promise.resolve(this._options.discoverResult || + this._discoverResult); + }, + + register: function() { + this._spy("register", arguments); + return Promise.resolve(this._options.registerResult || + this._registerResult); + }, + + smsMtVerify: function() { + this._spy("smsMtVerify", arguments); + return Promise.resolve(this._options.smsMtVerifyResult || + this._smsMtVerifyResult); + }, + + verifyCode: function() { + this._spy("verifyCode", arguments); + if (this._options.verifyCodeError) { + let error = Array.isArray(this._options.verifyCodeError) ? + this._options.verifyCodeError.shift() : + this._options.verifyCodeError; + if (!this._options.verifyCodeError.length) { + this._options.verifyCodeError = null; + } + return Promise.reject(error); + } + return Promise.resolve(this._options.verifyCodeResult || + this._verifyCodeResult); + }, + + sign: function() { + this._spy("sign", arguments); + if (this._options.signError) { + let error = Array.isArray(this._options.signError) ? + this._options.signError.shift() : + this._options.signError; + return Promise.reject(error); + } + return Promise.resolve(this._options.signResult || this._signResult); + } +}; + +// Override MobileIdentityUIGlue. +const kMobileIdentityUIGlueUUID = "{05df0566-ca8a-4ec7-bc76-78626ebfbe9a}"; +const kMobileIdentityUIGlueContractID = + "@mozilla.org/services/mobileid-ui-glue;1"; + +// Save original factory. +/*const kMobileIdentityUIGlueFactory = + Cm.getClassObject(Cc[kMobileIdentityUIGlueContractID], Ci.nsIFactory);*/ + +let fakeMobileIdentityUIGlueFactory = { + createInstance: function(aOuter, aIid) { + return MobileIdentityUIGlue.QueryInterface(aIid); + } +}; + +// MobileIdentityUIGlue fake component. +let MobileIdentityUIGlue = { + QueryInterface: XPCOMUtils.generateQI([Ci.nsIMobileIdentityUIGlue]), + +}; + +(function registerFakeMobileIdentityUIGlue() { + Cm.QueryInterface(Ci.nsIComponentRegistrar) + .registerFactory(Components.ID(kMobileIdentityUIGlueUUID), + "MobileIdentityUIGlue", + kMobileIdentityUIGlueContractID, + fakeMobileIdentityUIGlueFactory); +})(); + +// The tests rely on having an app registered. Otherwise, it will throw. +// Override XULAppInfo. +const XUL_APP_INFO_UUID = Components.ID("{84fdc459-d96d-421c-9bff-a8193233ae75}"); +const XUL_APP_INFO_CONTRACT_ID = "@mozilla.org/xre/app-info;1"; + +let (XULAppInfo = { + vendor: "Mozilla", + name: "MobileIdTest", + ID: "{230de50e-4cd1-11dc-8314-0800200b9a66}", + version: "1", + appBuildID: "2007010101", + platformVersion: "", + platformBuildID: "2007010101", + inSafeMode: false, + logConsoleErrors: true, + OS: "XPCShell", + XPCOMABI: "noarch-spidermonkey", + + QueryInterface: XPCOMUtils.generateQI([ + Ci.nsIXULAppInfo, + Ci.nsIXULRuntime, + ]) +}) { + let XULAppInfoFactory = { + createInstance: function (outer, iid) { + if (outer != null) { + throw Cr.NS_ERROR_NO_AGGREGATION; + } + return XULAppInfo.QueryInterface(iid); + } + }; + Cm.QueryInterface(Ci.nsIComponentRegistrar) + .registerFactory(XUL_APP_INFO_UUID, + "XULAppInfo", + XUL_APP_INFO_CONTRACT_ID, + XULAppInfoFactory); +} diff --git a/services/mobileid/tests/xpcshell/test_mobileid_manager.js b/services/mobileid/tests/xpcshell/test_mobileid_manager.js index e778e93ab563..cbd8e0a9bb50 100644 --- a/services/mobileid/tests/xpcshell/test_mobileid_manager.js +++ b/services/mobileid/tests/xpcshell/test_mobileid_manager.js @@ -3,424 +3,16 @@ "use strict"; -const Cm = Components.manager; - Cu.import("resource://gre/modules/Promise.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); Cu.import("resource://gre/modules/MobileIdentityManager.jsm"); Cu.import("resource://gre/modules/MobileIdentityCommon.jsm"); -const DEBUG = false; - -const GET_ASSERTION_IPC_MSG = "MobileId:GetAssertion"; -const GET_ASSERTION_RETURN_OK = "MobileId:GetAssertion:Return:OK"; -const GET_ASSERTION_RETURN_KO = "MobileId:GetAssertion:Return:KO"; - -// === Globals === - -const ORIGIN = "app://afakeorigin"; -const APP_ID = 1; -const PRINCIPAL = { - origin: ORIGIN, - appId: APP_ID -}; -const PHONE_NUMBER = "+34666555444"; -const ANOTHER_PHONE_NUMBER = "+44123123123"; -const VERIFICATION_CODE = "123456"; -const SESSION_TOKEN = "aSessionToken"; -const ICC_ID = "aIccId"; -const ANOTHER_ICC_ID = "anotherIccId"; -const MNC = "aMnc"; -const ANOTHER_MNC = "anotherMnc"; -const MCC = "aMcc"; -const ANOTHER_MCC = "anotherMcc"; -const OPERATOR = "aOperator"; -const ANOTHER_OPERATOR = "anotherOperator"; -const RADIO_INTERFACE = { - rilContext: { - iccInfo: { - iccid: ICC_ID, - mcc: MCC, - mnc: MNC, - msisdn: PHONE_NUMBER, - operator: OPERATOR - } - }, - voice: { - network: { - shortName: OPERATOR - }, - roaming: false - }, - data: { - network: { - shortName: OPERATOR - } - } -}; -const ANOTHER_RADIO_INTERFACE = { - rilContext: { - iccInfo: { - iccid: ANOTHER_ICC_ID, - mcc: ANOTHER_MCC, - mnc: ANOTHER_MNC, - msisdn: ANOTHER_PHONE_NUMBER, - operator: ANOTHER_OPERATOR - } - }, - voice: { - network: { - shortName: ANOTHER_OPERATOR - }, - roaming: false - }, - data: { - network: { - shortName: ANOTHER_OPERATOR - } - } -}; - -const INVALID_RADIO_INTERFACE = { - rilContext: { - iccInfo: { - iccid: null, - mcc: "", - mnc: "", - msisdn: "", - operator: "" - } - }, - voice: { - network: { - shortName: "" - }, - roaming: undefined - }, - data: { - network: { - shortName: "" - } - } -}; - -const CERTIFICATE = "eyJhbGciOiJEUzI1NiJ9.eyJsYXN0QXV0aEF0IjoxNDA0NDY5NzkyODc3LCJ2ZXJpZmllZE1TSVNETiI6IiszMTYxNzgxNTc1OCIsInB1YmxpYy1rZXkiOnsiYWxnb3JpdGhtIjoiRFMiLCJ5IjoiNGE5YzkzNDY3MWZhNzQ3YmM2ZjMyNjE0YTg1MzUyZjY5NDcwMDdhNTRkMDAxMDY4OWU5ZjJjZjc0ZGUwYTEwZTRlYjlmNDk1ZGFmZTA0NGVjZmVlNDlkN2YwOGU4ODQyMDJiOTE5OGRhNWZhZWE5MGUzZjRmNzE1YzZjNGY4Yjc3MGYxZTU4YWZhNDM0NzVhYmFiN2VlZGE1MmUyNjk2YzFmNTljNzMzYjFlYzBhNGNkOTM1YWIxYzkyNzAxYjNiYTA5ZDRhM2E2MzNjNTJmZjE2NGYxMWY3OTg1YzlmZjY3ZThmZDFlYzA2NDU3MTdkMjBiNDE4YmM5M2YzYzVkNCIsInAiOiJmZjYwMDQ4M2RiNmFiZmM1YjQ1ZWFiNzg1OTRiMzUzM2Q1NTBkOWYxYmYyYTk5MmE3YThkYWE2ZGMzNGY4MDQ1YWQ0ZTZlMGM0MjlkMzM0ZWVlYWFlZmQ3ZTIzZDQ4MTBiZTAwZTRjYzE0OTJjYmEzMjViYTgxZmYyZDVhNWIzMDVhOGQxN2ViM2JmNGEwNmEzNDlkMzkyZTAwZDMyOTc0NGE1MTc5MzgwMzQ0ZTgyYTE4YzQ3OTMzNDM4Zjg5MWUyMmFlZWY4MTJkNjljOGY3NWUzMjZjYjcwZWEwMDBjM2Y3NzZkZmRiZDYwNDYzOGMyZWY3MTdmYzI2ZDAyZTE3IiwicSI6ImUyMWUwNGY5MTFkMWVkNzk5MTAwOGVjYWFiM2JmNzc1OTg0MzA5YzMiLCJnIjoiYzUyYTRhMGZmM2I3ZTYxZmRmMTg2N2NlODQxMzgzNjlhNjE1NGY0YWZhOTI5NjZlM2M4MjdlMjVjZmE2Y2Y1MDhiOTBlNWRlNDE5ZTEzMzdlMDdhMmU5ZTJhM2NkNWRlYTcwNGQxNzVmOGViZjZhZjM5N2Q2OWUxMTBiOTZhZmIxN2M3YTAzMjU5MzI5ZTQ4MjliMGQwM2JiYzc4OTZiMTViNGFkZTUzZTEzMDg1OGNjMzRkOTYyNjlhYTg5MDQxZjQwOTEzNmM3MjQyYTM4ODk1YzlkNWJjY2FkNGYzODlhZjFkN2E0YmQxMzk4YmQwNzJkZmZhODk2MjMzMzk3YSJ9LCJwcmluY2lwYWwiOiIwMzgxOTgyYS0xZTgzLTI1NjYtNjgzZS05MDRmNDA0NGM1MGRAbXNpc2RuLWRldi5zdGFnZS5tb3phd3MubmV0IiwiaWF0IjoxNDA0NDY5NzgyODc3LCJleHAiOjE0MDQ0OTEzOTI4NzcsImlzcyI6Im1zaXNkbi1kZXYuc3RhZ2UubW96YXdzLm5ldCJ9." - -// === Helpers === - -function addPermission(aAction) { - let uri = Cc["@mozilla.org/network/io-service;1"] - .getService(Ci.nsIIOService) - .newURI(ORIGIN, null, null); - let _principal = Cc["@mozilla.org/scriptsecuritymanager;1"] - .getService(Ci.nsIScriptSecurityManager) - .getAppCodebasePrincipal(uri, APP_ID, false); - let pm = Cc["@mozilla.org/permissionmanager;1"] - .getService(Ci.nsIPermissionManager); - pm.addFromPrincipal(_principal, MOBILEID_PERM, aAction); -} - -function removePermission() { - let uri = Cc["@mozilla.org/network/io-service;1"] - .getService(Ci.nsIIOService) - .newURI(ORIGIN, null, null); - let _principal = Cc["@mozilla.org/scriptsecuritymanager;1"] - .getService(Ci.nsIScriptSecurityManager) - .getAppCodebasePrincipal(uri, APP_ID, false); - let pm = Cc["@mozilla.org/permissionmanager;1"] - .getService(Ci.nsIPermissionManager); - pm.removeFromPrincipal(_principal, MOBILEID_PERM); -} - -// === Mocks === - -let Mock = function(aOptions) { - if (!aOptions) { - aOptions = {}; - } - this._options = aOptions; - this._spied = {}; -}; - -Mock.prototype = { - _: function(aMethod) { - DEBUG && do_print("_ " + aMethod + JSON.stringify(this._spied)); - let self = this; - return { - callsLength: function(aNumberOfCalls) { - if (aNumberOfCalls == 0) { - do_check_eq(self._spied[aMethod], undefined); - return; - } - do_check_eq(self._spied[aMethod].length, aNumberOfCalls); - }, - call: function(aCallNumber) { - return { - arg: function(aArgNumber, aValue) { - let _arg = self._spied[aMethod][aCallNumber - 1][aArgNumber - 1]; - if (Array.isArray(aValue)) { - do_check_eq(_arg.length, aValue.length) - for (let i = 0; i < _arg.length; i++) { - do_check_eq(_arg[i], aValue[i]); - } - return; - } - - if (typeof aValue === 'object') { - do_check_eq(JSON.stringify(_arg), JSON.stringify(aValue)); - return; - } - - do_check_eq(_arg, aValue); - } - } - } - } - }, - - _spy: function(aMethod, aArgs) { - DEBUG && do_print(aMethod + " - " + JSON.stringify(aArgs)); - if (!this._spied[aMethod]) { - this._spied[aMethod] = []; - } - this._spied[aMethod].push(aArgs); - }, - - getSpiedCalls: function(aMethod) { - return this._spied[aMethod]; - } -}; - -// UI Glue mock up. -let MockUi = function(aOptions) { - Mock.call(this, aOptions); -}; - -MockUi.prototype = { - __proto__: Mock.prototype, - - _startFlowResult: { - phoneNumber: PHONE_NUMBER, - mcc: MNC - }, - - _verifyCodePromptResult: { - verificationCode: VERIFICATION_CODE - }, - - startFlow: function() { - this._spy("startFlow", arguments); - return Promise.resolve(this._options.startFlowResult || - this._startFlowResult); - }, - - verificationCodePrompt: function() { - this._spy("verifyCodePrompt", arguments); - return Promise.resolve(this._options.verificationCodePromptResult || - this._verifyCodePromptResult); - }, - - verify: function() { - this._spy("verify", arguments); - }, - - error: function() { - this._spy("error", arguments); - }, - - verified: function() { - this._spy("verified", arguments); - }, - - set oncancel(aCallback) { - }, - - set onresendcode(aCallback) { - } -}; - // Save original credential store instance. const kMobileIdentityCredStore = MobileIdentityManager.credStore; - -// Credentials store mock up. -let MockCredStore = function(aOptions) { - Mock.call(this, aOptions); -}; - -MockCredStore.prototype = { - __proto__: Mock.prototype, - - _getByOriginResult: null, - - _getByMsisdnResult: null, - - _getByIccIdResult: null, - - getByOrigin: function() { - this._spy("getByOrigin", arguments); - let result = this._getByOriginResult; - if (this._options.getByOriginResult) { - if (Array.isArray(this._options.getByOriginResult)) { - result = this._options.getByOriginResult.length ? - this._options.getByOriginResult.shift() : null; - } else { - result = this._options.getByOriginResult; - } - } - return Promise.resolve(result); - }, - - getByMsisdn: function() { - this._spy("getByMsisdn", arguments); - return Promise.resolve(this._options.getByMsisdnResult || - this._getByMsisdnResult); - }, - - getByIccId: function() { - this._spy("getByIccId", arguments); - return Promise.resolve(this._options.getByIccIdResult || - this._getByIccIdResult); - }, - - add: function() { - this._spy("add", arguments); - return Promise.resolve(); - }, - - setDeviceIccIds: function() { - this._spy("setDeviceIccIds", arguments); - return Promise.resolve(); - }, - - removeOrigin: function() { - this._spy("removeOrigin", arguments); - return Promise.resolve(); - }, - - delete: function() { - this._spy("delete", arguments); - return Promise.resolve(); - } -}; - // Save original client instance. const kMobileIdentityClient = MobileIdentityManager.client; -// Client mock up. -let MockClient = function(aOptions) { - Mock.call(this, aOptions); -}; - -MockClient.prototype = { - - __proto__: Mock.prototype, - - _discoverResult: { - verificationMethods: ["sms/mt"], - verificationDetails: { - "sms/mt": { - mtSender: "123", - url: "https://msisdn.accounts.firefox.com/v1/msisdn/sms/mt/verify" - } - } - }, - - _registerResult: { - msisdnSessionToken: SESSION_TOKEN - }, - - _smsMtVerifyResult: {}, - - _verifyCodeResult: { - msisdn: PHONE_NUMBER - }, - - _signResult: { - cert: CERTIFICATE - }, - - hawk: { - now: function() { - return Date.now(); - } - }, - - discover: function() { - this._spy("discover", arguments); - return Promise.resolve(this._options.discoverResult || - this._discoverResult); - }, - - register: function() { - this._spy("register", arguments); - return Promise.resolve(this._options.registerResult || - this._registerResult); - }, - - smsMtVerify: function() { - this._spy("smsMtVerify", arguments); - return Promise.resolve(this._options.smsMtVerifyResult || - this._smsMtVerifyResult); - }, - - verifyCode: function() { - this._spy("verifyCode", arguments); - return Promise.resolve(this._options.verifyCodeResult || - this._verifyCodeResult); - }, - - sign: function() { - this._spy("sign", arguments); - if (this._options.signError) { - let error = Array.isArray(this._options.signError) ? - this._options.signError.shift() : - this._options.signError; - return Promise.reject(error); - } - return Promise.resolve(this._options.signResult || this._signResult); - } -}; - -// The test rely on having an app registered. Otherwise, it will throw. -// Override XULAppInfo. -const XUL_APP_INFO_UUID = Components.ID("{84fdc459-d96d-421c-9bff-a8193233ae75}"); -const XUL_APP_INFO_CONTRACT_ID = "@mozilla.org/xre/app-info;1"; - -let (XULAppInfo = { - vendor: "Mozilla", - name: "MobileIdTest", - ID: "{230de50e-4cd1-11dc-8314-0800200b9a66}", - version: "1", - appBuildID: "2007010101", - platformVersion: "", - platformBuildID: "2007010101", - inSafeMode: false, - logConsoleErrors: true, - OS: "XPCShell", - XPCOMABI: "noarch-spidermonkey", - - QueryInterface: XPCOMUtils.generateQI([ - Ci.nsIXULAppInfo, - Ci.nsIXULRuntime, - ]) -}) { - let XULAppInfoFactory = { - createInstance: function (outer, iid) { - if (outer != null) { - throw Cr.NS_ERROR_NO_AGGREGATION; - } - return XULAppInfo.QueryInterface(iid); - } - }; - Cm.QueryInterface(Ci.nsIComponentRegistrar) - .registerFactory(XUL_APP_INFO_UUID, - "XULAppInfo", - XUL_APP_INFO_CONTRACT_ID, - XULAppInfoFactory); -} - // === Global cleanup === - function cleanup() { MobileIdentityManager.credStore = kMobileIdentityCredStore; MobileIdentityManager.client = kMobileIdentityClient; @@ -431,7 +23,6 @@ function cleanup() { // Unregister mocks and restore original code. do_register_cleanup(cleanup); - // === Tests === function run_test() { run_next_test(); diff --git a/services/mobileid/tests/xpcshell/test_mobileid_verification_flow.js b/services/mobileid/tests/xpcshell/test_mobileid_verification_flow.js new file mode 100644 index 000000000000..7f6938b69a56 --- /dev/null +++ b/services/mobileid/tests/xpcshell/test_mobileid_verification_flow.js @@ -0,0 +1,42 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +Cu.import("resource://gre/modules/MobileIdentityVerificationFlow.jsm"); + +function verifyStrategy() { + return Promise.resolve(); +} + +function cleanupStrategy() { +} + +function run_test() { + do_print("= Bug 1101444: Invalid verification code shouldn't restart " + + "verification flow ="); + + let client = new MockClient({ + // This will emulate two invalid attempts. The third time it will work. + verifyCodeError: ["INVALID", "INVALID"] + }); + let ui = new MockUi(); + + let verificationFlow = new MobileIdentityVerificationFlow({ + external: true, + sessionToken: SESSION_TOKEN, + msisdn: PHONE_NUMBER + }, ui, client, verifyStrategy, cleanupStrategy); + + verificationFlow.doVerification().then(() => { + // We should only do the registration process once. We only try registering + // again when the timeout fires, but not when we enter an invalid + // verification code. + client._("register").callsLength(1); + client._("verifyCode").callsLength(3); + // Because we do two invalid attempts, we should show the invalid code error twice. + ui._("error").callsLength(2); + }); + + do_test_finished(); +}; diff --git a/services/mobileid/tests/xpcshell/xpcshell.ini b/services/mobileid/tests/xpcshell/xpcshell.ini index 49ee9e8526d1..b221062ebb5f 100644 --- a/services/mobileid/tests/xpcshell/xpcshell.ini +++ b/services/mobileid/tests/xpcshell/xpcshell.ini @@ -1,7 +1,8 @@ [DEFAULT] head = head.js tail = -skip-if = toolkit == 'gonk' [test_mobileid_manager.js] +skip-if = 1 [test_mobileid_client.js] +[test_mobileid_verification_flow.js] From 5a3eebd23d8472bdca98d460e093ad2f84553f4d Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 03:01:55 -0800 Subject: [PATCH 09/22] Bumping gaia.json for 4 gaia revision(s) a=gaia-bump MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ======== https://hg.mozilla.org/integration/gaia-central/rev/b71fce2e3494 Author: chirarobert Desc: Merge pull request #26484 from JohanLorenzo/bug-1098107 Bug 1098107 - Change the wait in AddNewNumber to avoid intermittent t… ======== https://hg.mozilla.org/integration/gaia-central/rev/f8db0e1f12c7 Author: Johan Lorenzo Desc: Bug 1098107 - Change the wait in AddNewNumber to avoid intermittent timeout with test_dialer_add_contact on b2gdesktop ======== https://hg.mozilla.org/integration/gaia-central/rev/8b49d7a47f59 Author: Aleh Zasypkin Desc: Merge pull request #26372 from azasypkin/bug-1101619-rtl-status-icon Bug 1101619 - [Messages][RTL] Location of status (error, delivered, read) icon at Report panel seems wrong. r=schung ======== https://hg.mozilla.org/integration/gaia-central/rev/221c950766aa Author: Aleh Zasypkin Desc: Bug 1101619 - [Messages][RTL] Location of status (error, delivered, read) icon at Report panel seems wrong. r=schung --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 28f0dcd7e456..821a84809414 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "05fbb2da974fd480a8ccccf98b5f68ffe615a6c6", + "revision": "b71fce2e3494feef95b616780ddf26b521388c42", "repo_path": "integration/gaia-central" } From 11945e0f4e7b5e349d357719db66a83908293de7 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 03:06:59 -0800 Subject: [PATCH 10/22] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 120564b4d67e..1286c52d9036 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index b3690ffc8add..4e7893774b58 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 1cfbfadad269..849f94def7d1 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 0f7711053247..731fec484539 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index b3690ffc8add..4e7893774b58 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index a54c160e518e..ee77ba6f3e4e 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 89aa6dc3b2cd..b5b4291bc77d 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 97ff8ebd10fb..135fd6202856 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 95623f39e6fb..521fc9d77ad6 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 9556270ec084..eb9d7a3ff5a3 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index c7d51022c12d..748a1fe55804 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From 8c3b360b3b68a5e6aa315e9ba508c55e469d5250 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 03:17:04 -0800 Subject: [PATCH 11/22] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/6865fa79c92e Author: Aleh Zasypkin Desc: Merge pull request #26103 from azasypkin/bug-1096330-recipient-pills Bug 1096330 - [Messages][RTL] Correctly handle recipient pills. r=julien, arnau ======== https://hg.mozilla.org/integration/gaia-central/rev/ae9e8bce0dfc Author: Aleh Zasypkin Desc: Bug 1096330 - [Messages][RTL] Correctly handle recipient pills. r=julien, arnau --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 821a84809414..1fecae57b205 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "b71fce2e3494feef95b616780ddf26b521388c42", + "revision": "6865fa79c92efdd0b7dedd7b74cfecd9314d938f", "repo_path": "integration/gaia-central" } From 9cdc5693252333a3f6f3f443093e037ecbcf6809 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 03:21:40 -0800 Subject: [PATCH 12/22] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 1286c52d9036..051aa0ec6595 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 4e7893774b58..4f02107bfb75 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 849f94def7d1..839a08a563e1 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 731fec484539..4fa8d3b1fdf2 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 4e7893774b58..4f02107bfb75 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index ee77ba6f3e4e..9b4995c92d4c 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index b5b4291bc77d..bf865123499a 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 135fd6202856..0f3d89b0d6c7 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 521fc9d77ad6..e151314d6e65 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index eb9d7a3ff5a3..df2473dd991b 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 748a1fe55804..e8c0cc31a647 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From 907d43aef58cf7cd3aae523518c34276312230ee Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 03:31:52 -0800 Subject: [PATCH 13/22] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/bb58f268db66 Author: albertopq Desc: Merge pull request #26482 from albertopq/1102965-sim-race-no-screenlock Bug 1102965 - Reopening SIM PIN on device ready r=alive ======== https://hg.mozilla.org/integration/gaia-central/rev/e8909cc462c5 Author: albertopq Desc: Bug 1102965 - Reopening SIM PIN on device ready --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 1fecae57b205..7c01a8a2fb63 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "6865fa79c92efdd0b7dedd7b74cfecd9314d938f", + "revision": "bb58f268db66e8d172882863cc128755b13b46ba", "repo_path": "integration/gaia-central" } From 4f5336ec51570a4abb920819f4caf6cee0a42095 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 03:42:00 -0800 Subject: [PATCH 14/22] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 051aa0ec6595..a792d40e74e6 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 4f02107bfb75..dbc9cac9a59b 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 839a08a563e1..c03a9a8fa1fc 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 4fa8d3b1fdf2..38d84f046e5c 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 4f02107bfb75..dbc9cac9a59b 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 9b4995c92d4c..2867fb5ecab5 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index bf865123499a..84086776b531 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 0f3d89b0d6c7..9796d20c5f74 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index e151314d6e65..d0e0ce22f25c 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index df2473dd991b..2044f51e39ce 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index e8c0cc31a647..9a9738338cfb 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From af8f9503bddf29fb955658a3d182d9dbfef4b2ec Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 04:16:58 -0800 Subject: [PATCH 15/22] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/70e437e48867 Author: Florin Strugariu Desc: Merge pull request #26491 from davehunt/bug1074117-homescreen Bug 1074117 - Use expected conditions and optimise element lookups in homescreen app object ======== https://hg.mozilla.org/integration/gaia-central/rev/4659115ffddb Author: Dave Hunt Desc: Bug 1074117 - Use expected conditions and optimise element lookups in homescreen app object. r=fstrugariu --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 7c01a8a2fb63..ded1a2797476 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "bb58f268db66e8d172882863cc128755b13b46ba", + "revision": "70e437e48867155bebef813673235372ae5311a4", "repo_path": "integration/gaia-central" } From 483e403c675b8dd8d3d338d193bb7dbad211dff2 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 04:27:07 -0800 Subject: [PATCH 16/22] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index a792d40e74e6..e3eeb46da95e 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index dbc9cac9a59b..f4a682c2c0bc 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index c03a9a8fa1fc..180d00513d4f 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 38d84f046e5c..4a509c966802 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index dbc9cac9a59b..f4a682c2c0bc 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 2867fb5ecab5..53e9ff380ca6 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 84086776b531..6d53b410d6fd 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 9796d20c5f74..f269fbceab13 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index d0e0ce22f25c..cddcc1b4cbaf 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 2044f51e39ce..4889a652bf7d 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 9a9738338cfb..92746b473b41 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From 01a7c8ce89100996f086f1f7e7ab2623266f694f Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 05:06:56 -0800 Subject: [PATCH 17/22] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/533ceccc1b85 Author: lissyx Desc: Merge pull request #26382 from lissyx/bug1103559 Bug 1103559 - Voicemail, Captive Portal and Roaming notifications should not be resent r=mherentty ======== https://hg.mozilla.org/integration/gaia-central/rev/ee5b53d54b6c Author: Alexandre Lissy Desc: Bug 1103559 - Voicemail, Captive Portal and Roaming notifications should not be resent r=etienne We do not want those notifications to be resent, since they depend on external conditions: - Voicemail will be anyway retriggered by RIL code when connecting to network, - Captive Portal will be redetected when reconnecting to the network, which may have changed in-between, - Roaming status will also be redetected when rebooting Gecko offers a mozbehavior object which can contain a noresend property. We set this for all those notifications. We need, however, to keep the cleanup code for migration/upgrade usecase: pre-existing sent notification will still need to be cleanup if we don't want them to be resent. --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index ded1a2797476..9289f3debc78 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "70e437e48867155bebef813673235372ae5311a4", + "revision": "533ceccc1b8586e5a382794eb733544d8e86d2b3", "repo_path": "integration/gaia-central" } From c417ced49abb7181c19ffe2c173478ddb2a05f23 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 05:08:32 -0800 Subject: [PATCH 18/22] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index e3eeb46da95e..87520908ae5a 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index f4a682c2c0bc..ee7969bf2a55 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 180d00513d4f..6b11f3f55bb6 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 4a509c966802..07b3b9911db6 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index f4a682c2c0bc..ee7969bf2a55 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 53e9ff380ca6..1cc45f5814c8 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 6d53b410d6fd..00cb53204b89 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index f269fbceab13..e45fd00cc773 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index cddcc1b4cbaf..ef95d5e6c6f1 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 4889a652bf7d..f08fb9177476 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index 92746b473b41..e6b24ccc915c 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From 8ced28fc35d36d0e709abb4e0e72d60a284f5df5 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 05:36:56 -0800 Subject: [PATCH 19/22] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/0f6e92a467af Author: Florin Strugariu Desc: Merge pull request #25843 from JohanLorenzo/bug-1093583 Bug 1093583 - [DSDS] Add test to make a phone call with default SIM ======== https://hg.mozilla.org/integration/gaia-central/rev/e3b7706e0c25 Author: Johan Lorenzo Desc: Bug 1093583 - [DSDS] Add test to make a phone call with default SIM --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 9289f3debc78..e9f875db026a 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "533ceccc1b8586e5a382794eb733544d8e86d2b3", + "revision": "0f6e92a467af5218ff684de069a83c4f44a2546e", "repo_path": "integration/gaia-central" } From 4da050958d650f747257cba8d231d14417dff1a2 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 05:38:31 -0800 Subject: [PATCH 20/22] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 87520908ae5a..2ab841d33cb0 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index ee7969bf2a55..b25225ceca88 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 6b11f3f55bb6..d7d8164db9ce 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 07b3b9911db6..ed3ff91010f7 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index ee7969bf2a55..b25225ceca88 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 1cc45f5814c8..2f72f316db28 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 00cb53204b89..4346f6dd830b 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index e45fd00cc773..4a5fc4426210 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index ef95d5e6c6f1..fdb2dd6cff65 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index f08fb9177476..18af12294170 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index e6b24ccc915c..ecdb818db43d 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - + From 184976c7e12be8f0a22e580ef39d8fc0b087c209 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 06:06:57 -0800 Subject: [PATCH 21/22] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ======== https://hg.mozilla.org/integration/gaia-central/rev/415520315b04 Author: Hubert Figuière Desc: Merge pull request #25941 from hfiguiere/bug1093219-m3u Bug 1093219 - m3u parsing. r=djf ======== https://hg.mozilla.org/integration/gaia-central/rev/491d7b51b14c Author: Hubert Figuière Desc: Bug 1093219 - m3u parsing. r=djf --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index e9f875db026a..3ad52a6bc845 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -4,6 +4,6 @@ "remote": "", "branch": "" }, - "revision": "0f6e92a467af5218ff684de069a83c4f44a2546e", + "revision": "415520315b048f40979e9bac344bec99e18df901", "repo_path": "integration/gaia-central" } From 406d09b35e588484091922994da42bdf2803dc4b Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Thu, 27 Nov 2014 06:17:09 -0800 Subject: [PATCH 22/22] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/hamachi/sources.xml | 2 +- b2g/config/helix/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/wasabi/sources.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 2ab841d33cb0..2f41131b69eb 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index b25225ceca88..d5c10342a5fa 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index d7d8164db9ce..2cb835eddff6 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index ed3ff91010f7..208c86e57e91 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index b25225ceca88..d5c10342a5fa 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 2f72f316db28..6a26bfc7ddc6 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 4346f6dd830b..b4d13b136b47 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 4a5fc4426210..9867c1f46ee6 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index fdb2dd6cff65..0afeb9b55134 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 18af12294170..89177860d172 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index ecdb818db43d..7b20ab3841ac 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -17,7 +17,7 @@ - +