From 0f6ad300565063949f0bc9722a3b4a4357877b68 Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Fri, 16 Nov 2018 12:19:31 +1300 Subject: [PATCH] scheme-relative url rewrite compatbility: Make scheme-relative extraction change (#404) apply only to urls captured after 2018-11-11 (when changed was made) to avoid breaking older captures, which were likely captured scheme relative urls would be replayed with 'http:' --- pywb/static/wombat.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pywb/static/wombat.js b/pywb/static/wombat.js index 216058e9..c3790c06 100644 --- a/pywb/static/wombat.js +++ b/pywb/static/wombat.js @@ -75,6 +75,9 @@ var _WBWombat = function($wbwindow, wbinfo) { var wb_orig_origin; var wb_curr_host; + // scheme to use when resolving scheme-relative urls + var wb_rel_scheme_default; + var wb_setAttribute = $wbwindow.Element.prototype.setAttribute; var wb_getAttribute = $wbwindow.Element.prototype.getAttribute; var wb_funToString = Function.prototype.toString; @@ -505,7 +508,7 @@ var _WBWombat = function($wbwindow, wbinfo) { } if (href != orig_href && !starts_with(href, VALID_PREFIXES)) { - href = wb_orig_scheme + href; + href = wb_rel_scheme_default + "://" + href; } } @@ -514,7 +517,7 @@ var _WBWombat = function($wbwindow, wbinfo) { } if (starts_with(href, REL_PREFIX)) { - href = wb_info.wombat_scheme + ":" + href; + href = wb_rel_scheme_default + ":" + href; } return href; @@ -3491,6 +3494,15 @@ var _WBWombat = function($wbwindow, wbinfo) { wb_orig_scheme = wbinfo.wombat_scheme + '://'; wb_orig_origin = wb_orig_scheme + wbinfo.wombat_host; + var SCHEME_REL_CHANGE_TIMESTAMP = "20181101"; + + // if replaying ccontent from before this date, use http for replay + if (!wbinfo.is_live && wbinfo.timestamp < SCHEME_REL_CHANGE_TIMESTAMP) { + wb_rel_scheme_default = "http"; + } else { + wb_rel_scheme_default = wbinfo.wombat_scheme; + } + wb_abs_prefix = wb_replay_prefix; if (!wbinfo.is_live && wbinfo.wombat_ts) {