1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-15 08:04:49 +01:00

regex_rewrite: add 'parent' rewrite in addition to 'top' for frames, add

WB_wombat_parent to wombat, add test for WB_wombat_parent
This commit is contained in:
Ilya Kreymer 2015-01-27 19:57:56 -08:00
parent 976decb3f1
commit ccedb2d60e
3 changed files with 19 additions and 3 deletions

View File

@ -136,11 +136,16 @@ class JSLocationRewriterMixin(object):
(r'(?<=document\.)cookie', RegexRewriter.add_prefix(prefix), 0),
#todo: move to mixin?
(r'(?:[\s=(){]|^)(top)\s*(?:[!}()]|==|$)',
(r'(?<=[\s=(){])(parent|top)\s*(?:[!}()]|==|$)',
RegexRewriter.add_prefix(prefix), 1),
(r'(?<=window\.)top',
RegexRewriter.add_prefix(prefix), 0),
(r'^(parent|top)\s*(?:[!}()]|==|$)',
RegexRewriter.add_prefix(prefix), 1),
(r'(?<=window\.)(parent|top)',
RegexRewriter.add_prefix(prefix), 1),
# (r'\b(top)\b[!=\W]+(?:self|window)',
# RegexRewriter.add_prefix(prefix), 1),

View File

@ -49,6 +49,9 @@ r"""
>>> _test_js('window.top != window')
'window.WB_wombat_top != window'
>>> _test_js('if(parent!=top)')
'if(WB_wombat_parent!=WB_wombat_top)'
>>> _test_js('top != window')
'WB_wombat_top != window'

View File

@ -940,12 +940,20 @@ _WBWombat = (function() {
window.WB_wombat_top = find_next_top(window.self);
if (window.parent == window.top) {
window.WB_wombat_parent = window;
} else {
window.WB_wombat_parent = window.parent;
}
} else {
window.top.WB_wombat_location = new WombatLocation(window.top.location);
window.WB_wombat_top = window.top;
window.WB_wombat_parent = window.parent;
}
} else {
window.WB_wombat_top = window.top;
window.WB_wombat_parent = window.parent;
}
//if (window.opener) {