45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
/* 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/. */
|
|
|
|
"use strict";
|
|
|
|
var Cu = Components.utils;
|
|
const { require } =
|
|
Cu.import("resource://devtools/shared/Loader.jsm", {});
|
|
const Services = require("Services");
|
|
const QR = require("devtools/shared/qrcode/index");
|
|
|
|
window.addEventListener("load", function onLoad() {
|
|
window.removeEventListener("load", onLoad);
|
|
document.getElementById("close").onclick = () => window.close();
|
|
document.getElementById("no-scanner").onclick = showToken;
|
|
document.getElementById("yes-scanner").onclick = hideToken;
|
|
buildUI();
|
|
});
|
|
|
|
function buildUI() {
|
|
let { oob } = window.arguments[0];
|
|
createQR(oob);
|
|
createToken(oob);
|
|
}
|
|
|
|
function createQR(oob) {
|
|
let oobData = JSON.stringify(oob);
|
|
let imgData = QR.encodeToDataURI(oobData, "L" /* low quality */);
|
|
document.querySelector("#qr-code img").src = imgData.src;
|
|
}
|
|
|
|
function createToken(oob) {
|
|
let token = oob.sha256.replace(/:/g, "").toLowerCase() + oob.k;
|
|
document.querySelector("#token pre").textContent = token;
|
|
}
|
|
|
|
function showToken() {
|
|
document.querySelector("body").setAttribute("token", "true");
|
|
}
|
|
|
|
function hideToken() {
|
|
document.querySelector("body").removeAttribute("token");
|
|
}
|