mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-24 06:59:52 +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:
parent
976decb3f1
commit
ccedb2d60e
@ -136,11 +136,16 @@ class JSLocationRewriterMixin(object):
|
|||||||
(r'(?<=document\.)cookie', 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=(){])(parent|top)\s*(?:[!}()]|==|$)',
|
||||||
RegexRewriter.add_prefix(prefix), 1),
|
RegexRewriter.add_prefix(prefix), 1),
|
||||||
|
|
||||||
(r'(?<=window\.)top',
|
(r'^(parent|top)\s*(?:[!}()]|==|$)',
|
||||||
RegexRewriter.add_prefix(prefix), 0),
|
RegexRewriter.add_prefix(prefix), 1),
|
||||||
|
|
||||||
|
(r'(?<=window\.)(parent|top)',
|
||||||
|
RegexRewriter.add_prefix(prefix), 1),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# (r'\b(top)\b[!=\W]+(?:self|window)',
|
# (r'\b(top)\b[!=\W]+(?:self|window)',
|
||||||
# RegexRewriter.add_prefix(prefix), 1),
|
# RegexRewriter.add_prefix(prefix), 1),
|
||||||
|
@ -49,6 +49,9 @@ r"""
|
|||||||
>>> _test_js('window.top != window')
|
>>> _test_js('window.top != window')
|
||||||
'window.WB_wombat_top != window'
|
'window.WB_wombat_top != window'
|
||||||
|
|
||||||
|
>>> _test_js('if(parent!=top)')
|
||||||
|
'if(WB_wombat_parent!=WB_wombat_top)'
|
||||||
|
|
||||||
>>> _test_js('top != window')
|
>>> _test_js('top != window')
|
||||||
'WB_wombat_top != window'
|
'WB_wombat_top != window'
|
||||||
|
|
||||||
|
@ -940,12 +940,20 @@ _WBWombat = (function() {
|
|||||||
|
|
||||||
window.WB_wombat_top = find_next_top(window.self);
|
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 {
|
} else {
|
||||||
window.top.WB_wombat_location = new WombatLocation(window.top.location);
|
window.top.WB_wombat_location = new WombatLocation(window.top.location);
|
||||||
window.WB_wombat_top = window.top;
|
window.WB_wombat_top = window.top;
|
||||||
|
window.WB_wombat_parent = window.parent;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
window.WB_wombat_top = window.top;
|
window.WB_wombat_top = window.top;
|
||||||
|
window.WB_wombat_parent = window.parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (window.opener) {
|
//if (window.opener) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user