This rebases and integrates #4209, removing the sniffer task (turns out it wasn't a great idea), and adds a `--sniff-mime-types` command line flag to enable sniffing for file:// and http:// resources. Tested against a random picture file on my harddrive. The actual MIME sniffing implementation can be extracted into a separate library separately.
Following tests are re-enabled:
* /XMLHttpRequest/send-network-error-async-events.sub.htm
* /XMLHttpRequest/send-network-error-sync-events.sub.htm
* /XMLHttpRequest/xmlhttprequest-timeout-worker-aborted.html
* /XMLHttpRequest/xmlhttprequest-timeout-worker-overrides.html
* /XMLHttpRequest/xmlhttprequest-timeout-worker-simple.html
* /XMLHttpRequest/xmlhttprequest-timeout-worker-twice.html
Following tests are disabled:
* /XMLHttpRequest/xmlhttprequest-timeout-worker-overridesexpires.html
The following tests are expected to timeout since window.postMessage is
not implemented yet:
* /XMLHttpRequest/xmlhttprequest-timeout-abortedonmain.html
* /XMLHttpRequest/xmlhttprequest-timeout-overrides.html
* /XMLHttpRequest/xmlhttprequest-timeout-overridesexpires.html
The hubbub bindings set document.characterSet but we don't use it for anything.
html5ever doesn't parse charsets from <meta> tags yet, and I'd rather add that
as part of adding actual support for other encodings (which Servo never had
with hubbub).
Switching to html5ever also changes attribute parsing slightly (bringing it in
line with the current spec) and this breaks some of the <img srcset> tests. We
don't support this feature at all.
Some other things change due to bugs in hubbub not present in html5ever.
The data is used later to set the Content-Type header. Current rustc
(4d2af3861) does not detect this use-after-move, but treats the later use as
if the data was None. It will, however, detect the bug in d2b30f7d3, which we
are upgrading to.