mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-24 06:59:52 +01:00
cookies: support client side rewriting of document.cooke -> WB_wombat_cookie to rewrite cookie path, if present
This commit is contained in:
parent
e858b8faae
commit
fa52e0126d
@ -126,6 +126,7 @@ class JSLinkAndLocationRewriter(JSLinkOnlyRewriter):
|
|||||||
(r'(?<!/)\blocation\b', RegexRewriter.add_prefix(prefix), 0),
|
(r'(?<!/)\blocation\b', RegexRewriter.add_prefix(prefix), 0),
|
||||||
(r'(?<=document\.)domain', RegexRewriter.add_prefix(prefix), 0),
|
(r'(?<=document\.)domain', RegexRewriter.add_prefix(prefix), 0),
|
||||||
(r'(?<=document\.)referrer', RegexRewriter.add_prefix(prefix), 0),
|
(r'(?<=document\.)referrer', RegexRewriter.add_prefix(prefix), 0),
|
||||||
|
(r'(?<=document\.)cookie', RegexRewriter.add_prefix(prefix), 0),
|
||||||
|
|
||||||
#todo: move to mixin?
|
#todo: move to mixin?
|
||||||
(r'(?:[\s=(){]|^)(top)(?:[\s!=}()]|$)',
|
(r'(?:[\s=(){]|^)(top)(?:[\s!=}()]|$)',
|
||||||
|
@ -639,6 +639,31 @@ WB_wombat_init = (function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function init_cookies_override()
|
||||||
|
{
|
||||||
|
var cookie_path_regex = /\bPath=\'?\"?([^;'"\s]+)/i;
|
||||||
|
|
||||||
|
var get_cookie = function() {
|
||||||
|
return document.cookie;
|
||||||
|
}
|
||||||
|
|
||||||
|
var set_cookie = function(value) {
|
||||||
|
var matched = value.match(cookie_path_regex);
|
||||||
|
|
||||||
|
// if has cookie path, rewrite and replace
|
||||||
|
if (matched) {
|
||||||
|
var rewritten = rewrite_url(matched[1]);
|
||||||
|
value = value.replace(matched[1], rewritten);
|
||||||
|
}
|
||||||
|
|
||||||
|
document.cookie = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
def_prop(document, "WB_wombat_cookie", document.cookie,
|
||||||
|
set_cookie,
|
||||||
|
get_cookie);
|
||||||
|
}
|
||||||
|
|
||||||
//============================================
|
//============================================
|
||||||
function init_write_override()
|
function init_write_override()
|
||||||
{
|
{
|
||||||
@ -747,6 +772,9 @@ WB_wombat_init = (function() {
|
|||||||
// Ajax
|
// Ajax
|
||||||
init_ajax_rewrite();
|
init_ajax_rewrite();
|
||||||
init_worker_override();
|
init_worker_override();
|
||||||
|
|
||||||
|
// Cookies
|
||||||
|
init_cookies_override();
|
||||||
|
|
||||||
// DOM
|
// DOM
|
||||||
init_dom_override();
|
init_dom_override();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user