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

regex rewrite: loosen rules for top & location rewrite, add tests

.WB_wombat_location and .WB_wombat_top overrides should help with less strict rewriting
This commit is contained in:
Ilya Kreymer 2017-03-14 11:42:06 -07:00
parent 0f0c20a03a
commit a76dbefec2
2 changed files with 4 additions and 3 deletions

View File

@ -132,9 +132,7 @@ class JSLocationRewriterMixin(object):
def __init__(self, rewriter, rules=[], prefix='WB_wombat_'):
rules = rules + [
# (r'(?<![/$])\blocation\b(?!\":)', RegexRewriter.add_prefix(prefix), 0),
(r'(?<![/$\'"-])\b(?:location|top)\b(?!(?:\":|:|=\d|-))', RegexRewriter.add_prefix(prefix), 0),
(r'(?<=[?])location[:]', RegexRewriter.add_prefix(prefix), 0),
(r'(?<![$\'"])\b(?:location|top)\b(?![$\'"])', RegexRewriter.add_prefix(prefix), 0),
(r'(?<=\.)postMessage\b\(', RegexRewriter.add_prefix('__WB_pmw(window).'), 0),

View File

@ -55,6 +55,9 @@ r"""
>>> _test_js('cool_Location = "http://example.com/abc.html"')
'cool_Location = "/web/20131010/http://example.com/abc.html"'
>>> _test_js('$location = cond ? a.location: location; location$')
'$location = cond ? a.WB_wombat_location: WB_wombat_location; location$'
# not rewriting WB_wombat_domain
#>>> _test_js('window.location = "http://example.com/abc.html" document.domain = "anotherdomain.com"')
#'window.WB_wombat_location = "/web/20131010/http://example.com/abc.html" document.WB_wombat_domain = "anotherdomain.com"'