From 57eba8fcdeead8d83f87c0db5b0b87d20903161e Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Sun, 12 Mar 2017 09:47:29 -0700 Subject: [PATCH] client side rewrite: add override for window.frames access --- pywb/static/wombat.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pywb/static/wombat.js b/pywb/static/wombat.js index cfdd4fc0..e0be0010 100644 --- a/pywb/static/wombat.js +++ b/pywb/static/wombat.js @@ -1658,6 +1658,24 @@ var wombat_internal = function($wbwindow) { obj["_get_" + prop] = orig_getter; } + //============================================ + function override_frames_access($wbwindow) + { + $wbwindow.__wb_frames = $wbwindow.frames; + + var getter = function() { + for (var i = 0; i < this.__wb_frames.length; i++) { + if (!this.__wb_frames[i]._wb_wombat) { + init_new_window_wombat(this.__wb_frames[i]); + } + } + return this.__wb_frames; + }; + + def_prop($wbwindow, "frames", undefined, getter); + def_prop($wbwindow.Window.prototype, "frames", undefined, getter); + } + //============================================ function init_insertAdjacentHTML_override() { @@ -2540,6 +2558,8 @@ var wombat_internal = function($wbwindow) { override_iframe_content_access("contentWindow"); override_iframe_content_access("contentDocument"); + override_frames_access($wbwindow); + // base override init_base_override();