- make hashchange functions use postMessage(), support setting top->replay and replay->top
- special postMessage() option for sending message from top frame -> replay frame
- fix history navigation, mimic top frame history same as replay frame as much as possible
- remove iframe_loaded() callback, using postMessage() notifications only
- include document title in 'load' message
- ensure back, go, forward also propagated to top frame
- ensure pushState propagated as pushState and replaceState as replaceState to top frame
- security: prevent pushState or replaceState from changing to different domain
add WB_wombat_frameElement Object prototype property to support frameElement rewriting
document.domain: allow changing to higher-level domain
rewrite_elem: also rewrite <form> action and <input> value, if they are absolute urls
The values returned by getting the 'href' and 'toString'
properties of an anchor element should be the same.
This inconsistency broke the URL polyfill in
https://github.com/inexorabletash/polyfill under Microsoft Edge
Wombat overrides document.baseURI and <base>.href in order
to return the original URL rather than the proxied URL.
The <base>.href override however ended up making a writable
attribute read-only, which could trigger script errors
in strict-mode JS.
Fix this by avoiding replacing the setter for a DOM property
if no replacement setter is provided.
Fixes an error loading Hypothesis under Microsoft Edge.
In Safari 9, Object.getOwnPropertyDescriptor(domObject.prototype, prop)
returns descriptors which have the correct structure but undefined
getters and are marked as unconfigurable.
See https://bugs.webkit.org/show_bug.cgi?id=49739#c19
for details. The getters cannot be retrieved via obj.__lookupGetter__()
either.
* Resolve the issue by skipping overrides for DOM properties
where the property is not configurable, or the original getter for
a property could not be retrieved.
* Lookup the 'baseURI' property on the correct prototype (Node,
not document)
This fix also resolves the problem where accesses to document.baseURI
on Edge would fail.
use proxy_magic path to get video info to ensure video info, addresses #106
video info: ensure vi_ replay has CORS support to support serving from magic path
proxy & wombat improvements: set replay_top to window.top and avoid causing cross-domain errors
* detect if anything actually rewritten in rewrite_html(), skip write()/writeln() override if no changes
* for relative ./ or ../ rewrite, find trailing slash
* better window detection instead of instanceof Window (using constructor and window prop check)
* bump to wombat 2.9