From 7cf5828cdb14262a2d5102b325938814a86a6a82 Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Sat, 22 Jun 2019 09:47:55 -0700 Subject: [PATCH] Wombat Improvements for extractOriginalUrl and hash change (#481) * wombat fixes: - extractOriginalUrl() now takes into account the abs or rel prefix, if available, in determining the original url - receive_hash_change() for 'outer_hashchange' message handling is now before MessageEvent override, fix to get the original message and check .from_top directly to determine if it originated with top frame. --- wombat/src/wombat.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/wombat/src/wombat.js b/wombat/src/wombat.js index ea33feaf..5942a4b6 100755 --- a/wombat/src/wombat.js +++ b/wombat/src/wombat.js @@ -906,8 +906,16 @@ Wombat.prototype.extractOriginalURL = function(rewrittenUrl) { return url; } - // if no coll, start from beginning, otherwise could be part of coll.. - var start = this.wb_rel_prefix ? 1 : 0; + var start; + + if (this.startsWith(url, this.wb_abs_prefix)) { + start = this.wb_abs_prefix.length; + } else if (this.wb_rel_prefix && this.startsWith(url, this.wb_rel_prefix)) { + start = this.wb_rel_prefix.length; + } else { + // if no coll, start from beginning, otherwise could be part of coll.. + start = this.wb_rel_prefix ? 1 : 0; + } var index = url.indexOf('/http', start); if (index < 0) { @@ -4774,13 +4782,12 @@ Wombat.prototype.initHashChange = function() { var wombat = this; var receive_hash_change = function receive_hash_change(event) { - var source = wombat.proxyToObj(event.source); - if (!event.data || source !== wombat.$wbwindow.__WB_top_frame) { + if (!event.data || !event.data.from_top) { return; } - var message = event.data; + var message = event.data.message; if (!message.wb_type) return;