Add SSL user options so the page can be plain HTTP

This commit is contained in:
calzoneman 2013-09-10 22:43:43 -05:00
parent beae68d1c2
commit 020ceecd40
11 changed files with 63 additions and 71 deletions

View file

@ -407,28 +407,3 @@ $("#login").click(function() {
loggedin = false;
}
});
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(";");
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==" ") c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}

View file

@ -600,30 +600,3 @@ function setupCallbacks() {
}
});
}
/* cookie util */
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(";");
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==" ") c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}

View file

@ -44,7 +44,6 @@ if($("#videowidth").length > 0) {
VWIDTH = $("#videowidth").css("width").replace("px", "");
VHEIGHT = ""+parseInt(parseInt(VWIDTH) * 9 / 16);
}
var MEDIA = { hash: "" };
var PL_MOVING = false;
var PL_ADDING = false;
var PL_DELETING = false;
@ -71,6 +70,7 @@ var SESSION = readCookie("cytube_session");
var LEADTMR = false;
var PL_FROM = "";
var PL_AFTER = "";
var PL_CURRENT = -1;
var PL_WAIT_SCROLL = false;
var FILTER_FROM = 0;
var FILTER_TO = 0;
@ -121,7 +121,8 @@ var USEROPTS = {
sort_rank : getOrDefault("sort_rank", false),
sort_afk : getOrDefault("sort_afk", false),
default_quality : getOrDefault("default_quality", "#quality_auto"),
boop : getOrDefault("boop", false)
boop : getOrDefault("boop", false),
secure_connection : getOrDefault("secure_connection", false)
};
var NO_WEBSOCKETS = USEROPTS.altsocket;

View file

@ -12,7 +12,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
var IO_URL = "http://localhost:1337";
var WEB_URL = "http://localhost:8080";
var SSL_URL = "https://localhost:443";
var ALLOW_SSL = false;
if (location.protocol === "https:") {
IO_URL = WEB_URL = SSL_URL;
if (ALLOW_SSL) {
if (location.protocol === "https:" || USEROPTS.secure_connection) {
IO_URL = WEB_URL = SSL_URL;
}
}

View file

@ -485,7 +485,9 @@ var TwitchTVPlayer = function (data) {
);
};
self.init();
waitUntilDefined(window, "swfobject", function () {
self.init();
});
self.load = function (data) {
self.videoId = data.id;
@ -528,7 +530,9 @@ var JustinTVPlayer = function (data) {
);
};
self.init();
waitUntilDefined(window, "swfobject", function () {
self.init();
});
self.load = function (data) {
self.videoId = data.id;
@ -572,7 +576,9 @@ var RTMPPlayer = function (data) {
);
};
self.init();
waitUntilDefined(window, "swfobject", function () {
self.init();
});
self.load = function (data) {
self.videoId = data.id;

View file

@ -454,3 +454,16 @@ $("#sitefooter").load("footer.html");
$(":input:not(textarea)").keypress(function(ev) {
return ev.keyCode != 13;
});
if (location.protocol === "https:") {
var title = "Warning";
var text = "You connected to this page via HTTPS. Due to browser "+
"security policy, certain media players may throw warnings,"+
" while others may not work at all due to only being "+
"available over plain HTTP.<br>To encrypt your websocket "+
"traffic and API calls (logins, account management, etc) "+
"while loading this page over plain HTTP, enable the SSL "+
"option from the Options menu.";
makeAlert(title, text, "alert-warning")
.appendTo($("#announcements"));
}

View file

@ -610,6 +610,21 @@ function showOptionsMenu() {
"does not work.");
addOption(general, "", gen_altsocketinfo);
var gen_secure = addCheckbox(general, "SSL",
"Encrypt connections with SSL");
gen_secure.prop("checked", USEROPTS.secure_connection);
gen_secure.attr("disabled", !ALLOW_SSL);
var gen_secureinfo = $("<p/>")
.addClass("text-error")
.text("If enabled, websocket traffic and API calls (logins, "+
"account management) will be sent over a secure "+
"connection. Changes take effect after a refresh.");
addOption(general, "", gen_secureinfo);
if (!ALLOW_SSL) {
gen_secureinfo.text("This server does not support SSL.");
}
// playback options
var playback = initForm("#uopt-panel-playback");
@ -706,6 +721,7 @@ function showOptionsMenu() {
USEROPTS.blink_title = chat_all.prop("checked");
USEROPTS.boop = chat_boop.prop("checked");
USEROPTS.chatbtn = chat_sendbtn.prop("checked");
USEROPTS.secure_connection = gen_secure.prop("checked");
if (CLIENT.rank >= 2) {
USEROPTS.modhat = mod_flair.prop("checked");
USEROPTS.joinmessage = mod_joinmsg.prop("checked");