mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-15 00:03:28 +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'(?<=document\.)domain', 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?
|
||||
(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()
|
||||
{
|
||||
@ -747,6 +772,9 @@ WB_wombat_init = (function() {
|
||||
// Ajax
|
||||
init_ajax_rewrite();
|
||||
init_worker_override();
|
||||
|
||||
// Cookies
|
||||
init_cookies_override();
|
||||
|
||||
// DOM
|
||||
init_dom_override();
|
||||
|
Loading…
x
Reference in New Issue
Block a user