diff --git a/pywb/framework/wbrequestresponse.py b/pywb/framework/wbrequestresponse.py index e5c9fbaa..cee6b332 100644 --- a/pywb/framework/wbrequestresponse.py +++ b/pywb/framework/wbrequestresponse.py @@ -99,6 +99,7 @@ class WbRequest(object): self.query_filter = [] self.custom_params = {} self.user_metadata = user_metadata + self.rewrite_opts = rewrite_opts # PERF env['X_PERF'] = {} diff --git a/pywb/static/wombat.js b/pywb/static/wombat.js index 5535b91c..5d783587 100644 --- a/pywb/static/wombat.js +++ b/pywb/static/wombat.js @@ -31,6 +31,9 @@ _WBWombat = (function() { var wb_wombat_updating = false; + // custom options + var wb_opts; + //============================================ function is_host_url(str) { // Good guess that's its a hostname @@ -152,6 +155,13 @@ _WBWombat = (function() { return url; } + // OPTS: additional ignore prefixes + if (wb_opts.norewrite_prefixes) { + if (starts_with(url, wb_opts.no_rewrite_prefixes)) { + return url; + } + } + // If starts with prefix, no rewriting needed // Only check replay prefix (no date) as date may be different for each // capture @@ -927,6 +937,8 @@ _WBWombat = (function() { function wombat_init(wbinfo) { wb_replay_prefix = wbinfo.prefix; + wb_opts = wbinfo.wombat_opts || {}; + if (wb_replay_prefix) { wb_replay_date_prefix = wb_replay_prefix + wbinfo.wombat_ts + wbinfo.mod + "/"; @@ -1019,7 +1031,10 @@ _WBWombat = (function() { init_open_override(); // postMessage - init_postmessage_override(); + // OPT skip + if (!wb_opts.skip_postmessage) { + init_postmessage_override(); + } // write init_write_override(); @@ -1032,8 +1047,9 @@ _WBWombat = (function() { init_mutation_obs(); // setAttribute - init_setAttribute_override(); - + if (!wb_opts.skip_setAttribute) { + init_setAttribute_override(); + } // ensure namespace urls are NOT rewritten init_createElementNS_fix(); @@ -1044,7 +1060,10 @@ _WBWombat = (function() { init_cookies_override(); // DOM - init_dom_override(); + // OPT skip + if (!wb_opts.skip_dom) { + init_dom_override(); + } // Random init_seeded_random(wbinfo.wombat_sec); diff --git a/pywb/templates/head_insert.html b/pywb/templates/head_insert.html index 028d104b..2e7acb03 100644 --- a/pywb/templates/head_insert.html +++ b/pywb/templates/head_insert.html @@ -23,7 +23,7 @@ wbinfo.wombat_host = "{{ urlsplit.netloc }}"; wbinfo.wombat_sec = "{{ cdx.timestamp | format_ts('%s') }}"; - wbinfo.wombat_opts = {{ wbrequest.rewrite_opts.client | tojson if wbrequest.rewrite_opts.client else 'undefined' }}; + wbinfo.wombat_opts = {{ wbrequest.rewrite_opts.client | tojson if wbrequest.rewrite_opts.client else '{}' }}; if (window && window._WBWombat && !window._wb_js_inited) { var _wb_wombat = new _WBWombat(wbinfo);