Hack to hide the URL in local storage
This commit is contained in:
parent
168ffd5123
commit
9b8d86db25
|
|
@ -188,7 +188,7 @@
|
||||||
var xvpbuttons;
|
var xvpbuttons;
|
||||||
xvpbuttons = $D('noVNC_xvp_buttons');
|
xvpbuttons = $D('noVNC_xvp_buttons');
|
||||||
if (ver >= 1) {
|
if (ver >= 1) {
|
||||||
xvpbuttons.style.display = 'inline';yakpal.setClipboard
|
xvpbuttons.style.display = 'inline';
|
||||||
} else {
|
} else {
|
||||||
xvpbuttons.style.display = 'none';
|
xvpbuttons.style.display = 'none';
|
||||||
}
|
}
|
||||||
|
|
@ -196,7 +196,7 @@
|
||||||
|
|
||||||
function onClipboard(rfb, text){
|
function onClipboard(rfb, text){
|
||||||
$D('copyBox').value = text
|
$D('copyBox').value = text
|
||||||
if(window.yakpal && window.yakpal.setClipboard){
|
if(window['yakpal'] && window.yakpal.setClipboard){
|
||||||
yakpal.setClipboard(text);
|
yakpal.setClipboard(text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -204,6 +204,19 @@
|
||||||
window.onscriptsload = function () {
|
window.onscriptsload = function () {
|
||||||
var host, port, password, path, token, lastClipboard;
|
var host, port, password, path, token, lastClipboard;
|
||||||
|
|
||||||
|
// Expire any old (>4h) entries from localStorage
|
||||||
|
Object.keys(localStorage)
|
||||||
|
.filter((x)=>x.indexOf('coyote-url-') === 0)
|
||||||
|
.map((x)=>[x, JSON.parse(localStorage.getItem(x))])
|
||||||
|
.filter((x)=>!x[1].timestamp || (new Date() - new Date(x[1].timestamp)) > 1000 * 3600 * 4)
|
||||||
|
.map((x)=>localStorage.removeItem(x[0]));
|
||||||
|
|
||||||
|
// If we have an RID, try to load the real URL from session storage
|
||||||
|
var rid = WebUtil.getConfigVar('rid', '');
|
||||||
|
var url = localStorage.getItem('coyote-url-' + rid);
|
||||||
|
if (rid && url)
|
||||||
|
window.history.replaceState({}, document.title, url.url);
|
||||||
|
|
||||||
//$D('sendCtrlAltDelButton').style.display = "inline";
|
//$D('sendCtrlAltDelButton').style.display = "inline";
|
||||||
//$D('sendCtrlAltDelButton').onclick = sendCtrlAltDel;
|
//$D('sendCtrlAltDelButton').onclick = sendCtrlAltDel;
|
||||||
//$D('xvpShutdownButton').onclick = xvpShutdown;
|
//$D('xvpShutdownButton').onclick = xvpShutdown;
|
||||||
|
|
@ -220,7 +233,7 @@
|
||||||
$D('copyBox').addEventListener('paste', updateClipboard);
|
$D('copyBox').addEventListener('paste', updateClipboard);
|
||||||
|
|
||||||
setInterval(function(){
|
setInterval(function(){
|
||||||
if(!window.yakpal || !window.yakpal.getClipboard) return;
|
if(!window['yakpal'] || !window.yakpal.getClipboard) return;
|
||||||
//hide use-yakpal if they have it
|
//hide use-yakpal if they have it
|
||||||
try{
|
try{
|
||||||
document.getElementById('use-yakpal').style.display = 'none';
|
document.getElementById('use-yakpal').style.display = 'none';
|
||||||
|
|
@ -296,8 +309,15 @@
|
||||||
elm.style.display = '';
|
elm.style.display = '';
|
||||||
|
|
||||||
// Scrub the query params from the URL so that it can be safely copy/pasted
|
// Scrub the query params from the URL so that it can be safely copy/pasted
|
||||||
|
// However, to support F5 or Ctrl-Shift-T, save the real URL in localstorage
|
||||||
|
// under a magic ID. The credentials are only valid for ~30 minutes after
|
||||||
|
// the user disconnects anyway, so this isn't a huge security issue.
|
||||||
console.log("Pushing new URL. Original: " + window.location.href);
|
console.log("Pushing new URL. Original: " + window.location.href);
|
||||||
window.history.replaceState({}, document.title, window.location.pathname);
|
if (!rid) {
|
||||||
|
rid = ("" + Math.random()).replace("0.", "");
|
||||||
|
}
|
||||||
|
localStorage.setItem("coyote-url-" + rid, JSON.stringify({url: window.location.href, timestamp: new Date()}));
|
||||||
|
window.history.replaceState({}, document.title, window.location.pathname + "?rid=" + rid);
|
||||||
|
|
||||||
rfb.connect(host, port, password, path);
|
rfb.connect(host, port, password, path);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue