blob: 371df84a9737b88fa6843540aec93fdb4faca9d0 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
var domready = require('domready');
var url = require('url');
var params = url.parse(document.URL, true).query;
domready(function() {
document.getElementById('submit-caveats').addEventListener('click',
function() {
sendCaveats(false);
});
var originElems = document.getElementsByClassName('origin');
for (var i = 0; i < originElems.length; i++) {
originElems[i].innerText = params.origin;
}
// If the origin is not https, display a warning to the user.
if (params.origin.indexOf('https') !== 0) {
document.getElementById('warning').classList.remove('hidden');
}
// Setup the cancel button.
document.getElementById('cancel').addEventListener('click', function() {
sendCaveats(true);
});
if (process.env.TEST_CAVEATS) {
// Set the value of the expiry caveat and submit the form.
document.getElementById('ExpiryCaveat').value = process.env.TEST_CAVEATS;
sendCaveats();
}
});
// We only currently support Expiry because other caveats don't make sense to
// the end user and Revocation is not yet supported in WSPR.
var caveatNames = ['ExpiryCaveat'];
function sendCaveats(cancel) {
var caveats = [];
for (var i = 0; i < caveatNames.length; i++) {
var caveatArgs = document.getElementById(caveatNames[i]).value;
if (caveatNames[i] === 'ExpiryCaveat' && !caveatArgs) {
caveats.push({
type: 'ExpiryCaveat',
args: '240h'
});
} else if (caveatArgs) {
caveats.push({
type: caveatNames[i],
args: caveatArgs
});
}
}
var backgroundPort = chrome.runtime.connect();
backgroundPort.postMessage({
type: 'assocAccount:finish',
webappId: parseInt(params.webappId),
origin: params.origin,
caveats: caveats,
authState: params.authState,
cancel: cancel
});
backgroundPort.disconnect();
}