diff --git a/pywb/static/wombat.js b/pywb/static/wombat.js index ee4780eb..4af33bd8 100644 --- a/pywb/static/wombat.js +++ b/pywb/static/wombat.js @@ -2138,15 +2138,15 @@ var _WBWombat = function($wbwindow, wbinfo) { } //============================================ - function init_mo_from_proxy() { - var orig_observe = $wbwindow.MutationObserver.prototype.observe; + function override_func_first_arg_proxy_to_obj(prototype, method) { + var orig = prototype[method]; - function observe_deproxy(target, options) { - target = proxy_to_obj(target); - return orig_observe.call(this, target, options); + function deproxy() { + arguments[0] = proxy_to_obj(arguments[0]); + orig.apply(this, arguments); } - $wbwindow.MutationObserver.prototype.observe = observe_deproxy; + prototype[method] = deproxy; } //============================================ @@ -2817,6 +2817,10 @@ var _WBWombat = function($wbwindow, wbinfo) { override_iframe_content_access("contentWindow"); override_iframe_content_access("contentDocument"); + // override funcs to convert first arg proxy->obj + override_func_first_arg_proxy_to_obj($wbwindow.MutationObserver.prototype, "observe"); + override_func_first_arg_proxy_to_obj($wbwindow.Node.prototype, "compareDocumentPosition"); + override_frames_access($wbwindow); // setAttribute @@ -2880,8 +2884,6 @@ var _WBWombat = function($wbwindow, wbinfo) { init_window_obj_proxy($wbwindow); init_document_obj_proxy($wbwindow.document); - init_mo_from_proxy(); - // expose functions var obj = {} obj.extract_orig = extract_orig;