2020/lib/manual/cookie.js (89 lines of code) (raw):
/**
* @license
* Copyright 2018 Google Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var getCookieObject = function() {
var arr = document.cookie.split('; ');
var result = {};
for (var i = 0; i < arr.length; i++) {
var kv = arr[i].split('=');
if (kv.length > 1) {
result[kv[0]] = kv[1];
}
}
return result;
};
var displayCookies = function() {
var cookies = getCookieObject();
for (var cookie_name in cookies) {
var cdiv = document.createElement('div');
var cname = document.createElement('span');
var cval = document.createElement('span');
var cequals = document.createElement('span');
cequals.textContent = ' = ';
cname.textContent = cookie_name;
cname.className = 'cookie-name';
cval.textContent = cookies[cookie_name];
cval.className = 'cookie-value';
cdiv.appendChild(cname);
cdiv.appendChild(cequals);
cdiv.appendChild(cval);
cdiv.className += 'cookie expected-cookie';
document.getElementById('display').appendChild(cdiv);
}
};
var setPersistCookie = function(key, value, expires) {
var payload = key + '=' + value + '; path=/';
payload += '; domain=.ytlr-cert.appspot.com';
payload += '; expires=' + expires;
document.cookie = payload;
};
var setPersistCookies = function() {
var now = new Date();
var three_days_from_now = new Date(now.getTime() + 3 * 24 * 60 * 60 * 1000);
var one_year_from_now = new Date(now.getTime() + 365 * 24 * 60 * 60 * 1000);
setPersistCookie(
'PERSIST_THREE_DAYS',
now.toGMTString(),
three_days_from_now.toGMTString());
setPersistCookie(
'PERSIST_ONE_YEAR', now.toGMTString(), one_year_from_now.toGMTString());
};
var hitting_key = '';
document.addEventListener('keyup', function(event) {
pushBackKeyToReturnManualPage(event);
if (getKeyName(event.keyCode) == hitting_key) {
switch (getKeyName(event.keyCode)) {
case 'Up':
setPersistCookies();
break;
case 'Left':
var now = new Date();
var three_days_from_now =
new Date(now.getTime() + 3 * 24 * 60 * 60 * 1000);
setPersistCookie(
'PERSIST_THREE_DAYS',
now.toGMTString(),
three_days_from_now.toGMTString());
break;
case 'Right':
var now = new Date();
var one_year_from_now =
new Date(now.getTime() + 365 * 24 * 60 * 60 * 1000);
setPersistCookie(
'PERSIST_ONE_YEAR',
now.toGMTString(),
one_year_from_now.toGMTString());
break;
}
document.location.reload(true);
} else if (['Up', 'Left', 'Right'].includes(getKeyName(event.keyCode))) {
hitting_key = getKeyName(event.keyCode);
var messages = document.getElementById('message');
messages.className = 'warning-message';
messages.textContent = '****WARNING**** Press ' + hitting_key +
' to refresh cookies ****WARNING****';
} else {
hitting_key = getKeyName(event.keyCode);
var messages = document.getElementById('message');
messages.className = '';
document.getElementById('message').textContent = '';
}
}, false);
displayCookies();