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
videos recorded via youtube-dl path may attempt to be replayed as default html5
for vimeo path, add a placeholder <embed> to trigger old lookup path if no videos are loaded.
fixes#126
cookie rewrite: properly escape ',' in expires before splitting by comma, use reaplce function
to correctly replace path and domain
form override: add explicit overrides to all form.actions, add override to createElement()
as form.action override is not always prototype-overridable
textContent: add style element textContent override
add registerProtocolHandler override
wombat: use Document.prototpe for cookie getter and setter if not found on
document object, add no-op setter for document.domain
tests: fix test to avoid including line ending
document.write: override text content of <style> elements, and newly appended Text content added as children
rules: disable special cases rules no longer needed due to improved css rewriting