summaryrefslogtreecommitdiffstats
path: root/comm/mail/components/im/content/verify.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/components/im/content/verify.js')
-rw-r--r--comm/mail/components/im/content/verify.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/comm/mail/components/im/content/verify.js b/comm/mail/components/im/content/verify.js
new file mode 100644
index 0000000000..fbe39d6a50
--- /dev/null
+++ b/comm/mail/components/im/content/verify.js
@@ -0,0 +1,53 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+var verifySession = {
+ onload() {
+ this.sessionVerification =
+ window.arguments[0].wrappedJSObject || window.arguments[0];
+ if (
+ this.sessionVerification.challengeType !==
+ Ci.imISessionVerification.CHALLENGE_TEXT
+ ) {
+ throw new Error("Unsupported challenge type");
+ }
+ document.l10n.setAttributes(
+ document.querySelector("title"),
+ "verify-window-subject-title",
+ {
+ subject: this.sessionVerification.subject,
+ }
+ );
+ document.getElementById("challenge").textContent =
+ this.sessionVerification.challenge;
+ if (this.sessionVerification.challengeDescription) {
+ let description = document.getElementById("challengeDescription");
+ description.hidden = false;
+ description.textContent = this.sessionVerification.challengeDescription;
+ }
+ document.addEventListener("dialogaccept", () => {
+ this.sessionVerification.submitResponse(true);
+ });
+ document.addEventListener("dialogextra2", () => {
+ this.sessionVerification.submitResponse(false);
+ document
+ .getElementById("verifySessionDialog")
+ .querySelector("dialog")
+ .acceptDialog();
+ });
+ document.addEventListener("dialogcancel", () => {
+ this.sessionVerification.cancel();
+ });
+ this.sessionVerification.completePromise.catch(() => {
+ document
+ .getElementById("verifySessionDialog")
+ .querySelector("dialog")
+ .cancelDialog();
+ });
+ },
+};
+
+window.addEventListener("load", event => {
+ verifySession.onload();
+});