<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[213882] trunk/LayoutTests</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/213882">213882</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2017-03-13 17:38:18 -0700 (Mon, 13 Mar 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Sync web-platform-tests up to revision a5b95cb31914507088a4eda16f7674bbc6f3313f
https://bugs.webkit.org/show_bug.cgi?id=169523

Patch by Youenn Fablet &lt;youenn@apple.com&gt; on 2017-03-13
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* csswg-test/LICENSE.md: Added.
* csswg-test/README.md:
* csswg-test/build-css-testsuites.sh: Added.
* csswg-test/config.default.json: Added.
* csswg-test/css-grid-1/grid-items/w3c-import.log:
* csswg-test/css-grid-1/grid-model/w3c-import.log:
* csswg-test/css-scoping-1/OWNERS: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-slot-style-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-slot-style.html: Added.
* csswg-test/css-scoping-1/w3c-import.log:
* csswg-test/lint: Added.
* csswg-test/lint.whitelist: Added.
* csswg-test/manifest: Added.
* csswg-test/requirements.txt: Added.
* csswg-test/serve: Added.
* csswg-test/serve.py: Added.
(main):
* csswg-test/w3c-import.log:
* resources/TestRepositories:
* resources/import-expectations.json:
* resources/resource-files.json:
* web-platform-tests/IndexedDB/abort-in-initial-upgradeneeded.html:
* web-platform-tests/IndexedDB/close-in-upgradeneeded.html:
* web-platform-tests/IndexedDB/event-dispatch-active-flag-expected.txt: Added.
* web-platform-tests/IndexedDB/event-dispatch-active-flag.html: Added.
* web-platform-tests/IndexedDB/fire-error-event-exception-expected.txt: Added.
* web-platform-tests/IndexedDB/fire-error-event-exception.html: Added.
* web-platform-tests/IndexedDB/fire-success-event-exception-expected.txt: Added.
* web-platform-tests/IndexedDB/fire-success-event-exception.html: Added.
* web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception-expected.txt: Added.
* web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception.html: Added.
* web-platform-tests/IndexedDB/idb-binary-key-roundtrip.htm:
* web-platform-tests/IndexedDB/idbcursor_continue_objectstore.htm:
* web-platform-tests/IndexedDB/idbfactory-deleteDatabase-opaque-origin-expected.txt: Added.
* web-platform-tests/IndexedDB/idbfactory-deleteDatabase-opaque-origin.html: Added.
* web-platform-tests/IndexedDB/idbfactory-open-error-properties-expected.txt: Added.
* web-platform-tests/IndexedDB/idbfactory-open-error-properties.html: Added.
* web-platform-tests/IndexedDB/idbfactory-open-opaque-origin-expected.txt: Added.
* web-platform-tests/IndexedDB/idbfactory-open-opaque-origin.html: Added.
* web-platform-tests/IndexedDB/idbfactory_deleteDatabase4-expected.txt:
* web-platform-tests/IndexedDB/idbfactory_deleteDatabase4.htm:
* web-platform-tests/IndexedDB/idbindex_get.htm:
* web-platform-tests/IndexedDB/idbindex_get4.htm:
* web-platform-tests/IndexedDB/idbindex_getKey4.htm:
* web-platform-tests/IndexedDB/idbobjectstore_createIndex13.htm:
* web-platform-tests/IndexedDB/idbobjectstore_get4.htm:
* web-platform-tests/IndexedDB/idbobjectstore_getKey.html:
* web-platform-tests/IndexedDB/key-conversion-exceptions.htm:
* web-platform-tests/IndexedDB/keygenerator-explicit-expected.txt: Added.
* web-platform-tests/IndexedDB/keygenerator-explicit.html: Added.
* web-platform-tests/IndexedDB/keygenerator-inject-expected.txt: Added.
* web-platform-tests/IndexedDB/keygenerator-inject.html: Added.
* web-platform-tests/IndexedDB/keypath_invalid.htm:
* web-platform-tests/IndexedDB/support.js:
(auto_fail):
(createdb_for_multiple_tests):
(indexeddb_test):
(is_transaction_active):
(spin):
(keep_alive):
* web-platform-tests/IndexedDB/transaction-abort-request-error-expected.txt: Added.
* web-platform-tests/IndexedDB/transaction-abort-request-error.html: Added.
* web-platform-tests/IndexedDB/transaction-deactivation-timing-expected.txt: Added.
* web-platform-tests/IndexedDB/transaction-deactivation-timing.html: Added.
* web-platform-tests/IndexedDB/transaction-lifetime-blocked.htm:
* web-platform-tests/IndexedDB/transaction-lifetime.htm:
* web-platform-tests/IndexedDB/upgrade-transaction-deactivation-timing-expected.txt: Added.
* web-platform-tests/IndexedDB/upgrade-transaction-deactivation-timing.html: Added.
* web-platform-tests/IndexedDB/w3c-import.log:
* web-platform-tests/IndexedDB/writer-starvation.htm:
* web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.worker-expected.txt:
* web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2-expected.txt:
* web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker-expected.txt:
* web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt:
* web-platform-tests/XMLHttpRequest/OWNERS:
* web-platform-tests/XMLHttpRequest/README.md: Added.
* web-platform-tests/XMLHttpRequest/abort-after-receive.htm:
* web-platform-tests/XMLHttpRequest/abort-after-timeout.htm:
* web-platform-tests/XMLHttpRequest/anonymous-mode-unsupported-expected.txt:
* web-platform-tests/XMLHttpRequest/anonymous-mode-unsupported.htm:
* web-platform-tests/XMLHttpRequest/data-uri-expected.txt:
* web-platform-tests/XMLHttpRequest/data-uri.htm:
* web-platform-tests/XMLHttpRequest/event-abort.htm:
* web-platform-tests/XMLHttpRequest/event-load.htm:
* web-platform-tests/XMLHttpRequest/event-loadend.htm:
* web-platform-tests/XMLHttpRequest/event-loadstart-upload-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/event-loadstart-upload.htm: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-progress.htm.
* web-platform-tests/XMLHttpRequest/event-loadstart.htm:
* web-platform-tests/XMLHttpRequest/event-progress.htm:
* web-platform-tests/XMLHttpRequest/event-readystatechange-loaded.htm:
* web-platform-tests/XMLHttpRequest/event-timeout.htm:
* web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm:
* web-platform-tests/XMLHttpRequest/event-upload-progress.htm:
* web-platform-tests/XMLHttpRequest/getallresponseheaders-cl-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/getallresponseheaders-cl.htm: Added.
* web-platform-tests/XMLHttpRequest/getallresponseheaders-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/getallresponseheaders.htm: Added.
* web-platform-tests/XMLHttpRequest/getresponseheader-case-insensitive.htm:
* web-platform-tests/XMLHttpRequest/loadstart-and-state-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/loadstart-and-state.html: Added.
* web-platform-tests/XMLHttpRequest/open-after-setrequestheader-expected.txt:
* web-platform-tests/XMLHttpRequest/open-after-setrequestheader.htm:
* web-platform-tests/XMLHttpRequest/open-during-abort-event-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/open-during-abort-event.htm: Added.
* web-platform-tests/XMLHttpRequest/open-during-abort-processing-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/open-during-abort-processing.htm: Added.
* web-platform-tests/XMLHttpRequest/open-referer-expected.txt:
* web-platform-tests/XMLHttpRequest/open-referer.htm:
* web-platform-tests/XMLHttpRequest/open-send-during-abort-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/open-send-during-abort.htm: Added.
* web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin.htm: Added.
* web-platform-tests/XMLHttpRequest/overridemimetype-blob-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/overridemimetype-blob.html: Added.
* web-platform-tests/XMLHttpRequest/overridemimetype-invalid-mime-type-expected.txt:
* web-platform-tests/XMLHttpRequest/overridemimetype-invalid-mime-type.htm:
* web-platform-tests/XMLHttpRequest/resources/corsenabled.py:
(main):
* web-platform-tests/XMLHttpRequest/resources/delay.py:
(main):
* web-platform-tests/XMLHttpRequest/resources/echo-headers.py: Added.
(main):
* web-platform-tests/XMLHttpRequest/resources/header-content-length.asis: Added.
* web-platform-tests/XMLHttpRequest/resources/headers-basic.asis: Added.
* web-platform-tests/XMLHttpRequest/resources/headers.asis: Added.
* web-platform-tests/XMLHttpRequest/resources/inspect-headers.py:
(get_response):
(main):
* web-platform-tests/XMLHttpRequest/resources/redirect.py:
(main):
* web-platform-tests/XMLHttpRequest/resources/w3c-import.log:
* web-platform-tests/XMLHttpRequest/responsetext-decoding-expected.txt:
* web-platform-tests/XMLHttpRequest/responsetext-decoding.htm:
* web-platform-tests/XMLHttpRequest/send-accept-language-expected.txt:
* web-platform-tests/XMLHttpRequest/send-accept-language.htm:
* web-platform-tests/XMLHttpRequest/send-data-formdata-expected.txt:
* web-platform-tests/XMLHttpRequest/send-data-formdata.htm:
* web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt:
* web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub.htm:
* web-platform-tests/XMLHttpRequest/send-redirect-to-cors.htm:
* web-platform-tests/XMLHttpRequest/send-sync-blocks-async.htm:
* web-platform-tests/XMLHttpRequest/send-sync-timeout.htm:
* web-platform-tests/XMLHttpRequest/setrequestheader-allow-empty-value-expected.txt:
* web-platform-tests/XMLHttpRequest/setrequestheader-allow-empty-value.htm:
* web-platform-tests/XMLHttpRequest/setrequestheader-allow-whitespace-in-value-expected.txt:
* web-platform-tests/XMLHttpRequest/setrequestheader-allow-whitespace-in-value.htm:
* web-platform-tests/XMLHttpRequest/setrequestheader-case-insensitive-expected.txt:
* web-platform-tests/XMLHttpRequest/setrequestheader-case-insensitive.htm:
* web-platform-tests/XMLHttpRequest/setrequestheader-content-type.htm:
* web-platform-tests/XMLHttpRequest/setrequestheader-header-allowed-expected.txt:
* web-platform-tests/XMLHttpRequest/setrequestheader-header-allowed.htm:
* web-platform-tests/XMLHttpRequest/setrequestheader-header-forbidden-expected.txt:
* web-platform-tests/XMLHttpRequest/setrequestheader-header-forbidden.htm:
* web-platform-tests/XMLHttpRequest/setrequestheader-open-setrequestheader-expected.txt:
* web-platform-tests/XMLHttpRequest/setrequestheader-open-setrequestheader.htm:
* web-platform-tests/XMLHttpRequest/status-error.htm:
* web-platform-tests/XMLHttpRequest/template-element-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/template-element.html: Added.
* web-platform-tests/XMLHttpRequest/timeout-multiple-fetches-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/timeout-multiple-fetches.html: Added.
* web-platform-tests/XMLHttpRequest/w3c-import.log:
* web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused.html: Added.
* web-platform-tests/check_stability.py:
(replace_streams.on_write):
(replace_streams):
(Firefox.install):
(setup_log_handler.LogHandler.__init__):
(setup_log_handler.LogHandler):
(setup_log_handler.LogHandler.find_or_create_test):
(setup_log_handler.LogHandler.find_or_create_subtest):
(setup_log_handler.LogHandler.test_status):
(setup_log_handler.LogHandler.test_end):
(err_string):
(process_results):
(write_inconsistent):
(write_results):
* web-platform-tests/common/get-host-info.sub.js:
(get_host_info):
* web-platform-tests/dom/OWNERS:
* web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt:
* web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes.html:
* web-platform-tests/dom/nodes/Element-matches-expected.txt:
* web-platform-tests/dom/nodes/Element-matches.html:
* web-platform-tests/dom/nodes/Element-matches.js:
(interfaceCheckMatches):
(runSpecialMatchesTests):
(runInvalidSelectorTestMatches):
(runMatchesTest):
* web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt: Added.
* web-platform-tests/dom/nodes/Element-webkitMatchesSelector.html: Copied from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches.html.
* web-platform-tests/dom/nodes/Node-lookupNamespaceURI-expected.txt:
* web-platform-tests/dom/nodes/Node-lookupNamespaceURI.html:
* web-platform-tests/dom/nodes/w3c-import.log:
* web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_key1_dashinit.mp4: Added.
* web-platform-tests/fetch/OWNERS:
* web-platform-tests/fetch/README.md: Added.
* web-platform-tests/fetch/api/basic/request-referrer-expected.txt:
* web-platform-tests/fetch/api/basic/request-referrer-redirected-worker-expected.txt: Added.
* web-platform-tests/fetch/api/basic/request-referrer-redirected-worker.html: Added.
* web-platform-tests/fetch/api/basic/request-referrer-worker-expected.txt: Added.
* web-platform-tests/fetch/api/basic/request-referrer-worker.html: Added.
* web-platform-tests/fetch/api/basic/request-referrer.js:
(testReferrer):
* web-platform-tests/fetch/api/basic/request-upload-expected.txt:
* web-platform-tests/fetch/api/basic/request-upload-worker-expected.txt:
* web-platform-tests/fetch/api/basic/request-upload.js:
(testUpload):
* web-platform-tests/fetch/api/basic/w3c-import.log:
* web-platform-tests/fetch/api/cors/cors-expose-star-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-expose-star-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-expose-star-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-expose-star.html: Added.
* web-platform-tests/fetch/api/cors/cors-expose-star.js: Added.
(sharedHeaders.string_appeared_here.promise_test):
(string_appeared_here.promise_test):
* web-platform-tests/fetch/api/cors/cors-preflight-star-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-star-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-star-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-star.html: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-star.js: Added.
(origin.location.origin.preflightTest):
* web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
* web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:
* web-platform-tests/fetch/api/cors/cors-redirect-credentials.js:
(corsRedirectCredentials):
* web-platform-tests/fetch/api/cors/w3c-import.log:
* web-platform-tests/fetch/api/headers/headers-combine-expected.txt:
* web-platform-tests/fetch/api/headers/headers-combine.html:
* web-platform-tests/fetch/api/headers/headers-record-expected.txt: Added.
* web-platform-tests/fetch/api/headers/headers-record.html: Added.
* web-platform-tests/fetch/api/headers/w3c-import.log:
* web-platform-tests/fetch/api/policies/nested-policy.js: Added.
* web-platform-tests/fetch/api/policies/nested-policy.js.headers: Added.
* web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https-expected.txt: Added.
* web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html.
* web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https-expected.txt: Added.
* web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html.
* web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-expected.txt:
* web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https-expected.txt: Added.
* web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html.
* web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-worker-expected.txt:
* web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.js:
* web-platform-tests/fetch/api/policies/referrer-origin.html:
* web-platform-tests/fetch/api/policies/referrer-origin.js:
(promise_test):
* web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https-expected.txt: Added.
* web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html.
* web-platform-tests/fetch/api/policies/referrer-unsafe-url.js:
* web-platform-tests/fetch/api/policies/w3c-import.log:
* web-platform-tests/fetch/api/request/request-cache-default-conditional-expected.txt:
* web-platform-tests/fetch/api/request/request-cache-default-expected.txt:
* web-platform-tests/fetch/api/request/request-cache-force-cache-expected.txt:
* web-platform-tests/fetch/api/request/request-cache-no-cache-expected.txt:
* web-platform-tests/fetch/api/request/request-cache-no-store-expected.txt:
* web-platform-tests/fetch/api/request/request-cache-reload-expected.txt:
* web-platform-tests/fetch/api/request/request-cache.js:
* web-platform-tests/fetch/api/request/request-headers-expected.txt:
* web-platform-tests/fetch/api/request/request-headers.html:
* web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt: Added.
* web-platform-tests/fetch/api/request/request-keepalive-quota.html: Added.
* web-platform-tests/fetch/api/request/resources/cache.py:
(main):
* web-platform-tests/fetch/api/request/w3c-import.log:
* web-platform-tests/fetch/api/resources/preflight.py:
(main):
* web-platform-tests/fetch/api/response/response-idl-expected.txt:
* web-platform-tests/fetch/api/response/response-idl.html:
* web-platform-tests/fetch/api/response/response-trailer-expected.txt: Added.
* web-platform-tests/fetch/api/response/response-trailer.html: Added.
* web-platform-tests/fetch/api/response/w3c-import.log:
* web-platform-tests/fetch/w3c-import.log:
* web-platform-tests/html/OWNERS:
* web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-0.html: Added.
* web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-expected.txt:
* web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin.html:
* web-platform-tests/html/browsers/browsing-the-web/history-traversal/w3c-import.log:
* web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub-expected.txt: Added.
* web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub.html: Added.
* web-platform-tests/html/browsers/history/the-location-interface/location-stringifier-expected.txt:
* web-platform-tests/html/browsers/history/the-location-interface/location-stringifier.html:
* web-platform-tests/html/browsers/history/the-location-interface/location-tojson-expected.txt: Added.
* web-platform-tests/html/browsers/history/the-location-interface/location-tojson.html: Added.
* web-platform-tests/html/browsers/history/the-location-interface/resources/post-your-protocol.html: Added.
* web-platform-tests/html/browsers/history/the-location-interface/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/w3c-import.log.
* web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log:
* web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical-expected.txt: Added.
* web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.html: Added.
* web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.js: Added.
(test):
* web-platform-tests/html/browsers/offline/w3c-import.log:
* web-platform-tests/html/browsers/the-window-object/support/noopener-target.html:
* web-platform-tests/html/browsers/the-window-object/window-open-noopener-expected.txt:
* web-platform-tests/html/browsers/the-window-object/window-open-noopener.html:
* web-platform-tests/html/browsers/windows/browsing-context-expected.txt: Added.
* web-platform-tests/html/browsers/windows/browsing-context-window-expected.txt: Added.
* web-platform-tests/html/browsers/windows/browsing-context-window.html: Added.
* web-platform-tests/html/browsers/windows/browsing-context.html: Added.
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-nested-frame.html: Added.
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-window-post.html: Added.
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/post-to-opener.html: Added.
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log.
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log:
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-expected.txt: Added.
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null-expected.txt: Added.
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null.html: Added.
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent.html: Added.
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-expected.txt: Added.
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-null-expected.txt: Added.
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-null.html: Added.
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top.html: Added.
* web-platform-tests/html/browsers/windows/noreferrer-cross-origin-close-manual.sub.html:
* web-platform-tests/html/browsers/windows/noreferrer-cross-origin-window-name-manual.sub.html: Added.
* web-platform-tests/html/browsers/windows/noreferrer-null-opener-expected.txt: Added.
* web-platform-tests/html/browsers/windows/noreferrer-null-opener.html: Added.
* web-platform-tests/html/browsers/windows/noreferrer-window-name.html:
* web-platform-tests/html/browsers/windows/resources/browsing-context-window.html: Added.
* web-platform-tests/html/browsers/windows/resources/echo-window-name.html: Added.
* web-platform-tests/html/browsers/windows/resources/nested-post-to-opener.html: Added.
* web-platform-tests/html/browsers/windows/resources/noreferrer-window-name.html: Added.
* web-platform-tests/html/browsers/windows/resources/post-to-opener.html: Added.
* web-platform-tests/html/browsers/windows/resources/target-cross-origin.sub.html: Added.
* web-platform-tests/html/browsers/windows/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/w3c-import.log.
* web-platform-tests/html/browsers/windows/resources/window-close-button.html: Added.
* web-platform-tests/html/browsers/windows/resources/window-opener.html: Added.
* web-platform-tests/html/browsers/windows/targeting-multiple-cross-origin-manual.sub.html:
* web-platform-tests/html/browsers/windows/w3c-import.log:
* web-platform-tests/html/dom/elements/elements-in-the-dom/historical-expected.txt:
* web-platform-tests/html/dom/elements/elements-in-the-dom/historical.html:
* web-platform-tests/html/dom/interfaces.html:
* web-platform-tests/html/dom/interfaces.worker-expected.txt: Added.
* web-platform-tests/html/dom/interfaces.worker.html: Added.
* web-platform-tests/html/dom/interfaces.worker.js: Added.
(doTest):
(fetchData):
(promise_test):
* web-platform-tests/html/dom/reflection.js:
* web-platform-tests/html/dom/resources/self-origin-subframe.html: Added.
* web-platform-tests/html/dom/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log.
* web-platform-tests/html/dom/self-origin.any-expected.txt: Added.
* web-platform-tests/html/dom/self-origin.any.html: Added.
* web-platform-tests/html/dom/self-origin.any.js: Added.
(test):
* web-platform-tests/html/dom/self-origin.sub-expected.txt: Added.
* web-platform-tests/html/dom/self-origin.sub.html: Added.
* web-platform-tests/html/dom/self-origin.worker-expected.txt: Added.
* web-platform-tests/html/dom/self-origin.worker.html: Added.
* web-platform-tests/html/dom/w3c-import.log:
* web-platform-tests/html/semantics/document-metadata/styling/LinkStyle.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html: Added.
* web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/w3c-import.log.
* web-platform-tests/html/semantics/embedded-content/resources/should-load.html: Added.
* web-platform-tests/html/semantics/embedded-content/resources/should-not-load.html: Added.
* web-platform-tests/html/semantics/embedded-content/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log.
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.null-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.null.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html:
* web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-embed-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-without-user-gesture-failed.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor-expected.txt:
* web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html:
* web-platform-tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
* web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application.html:
* web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange-expected.txt:
* web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html:
* web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
* web-platform-tests/html/semantics/forms/the-input-element/valueMode.html:
* web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-expected.txt:
* web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection.html:
* web-platform-tests/html/semantics/forms/the-select-element/selected-index-expected.txt:
* web-platform-tests/html/semantics/forms/the-select-element/selected-index.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt:
* web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html:
* web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot-expected.txt:
* web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot.html:
* web-platform-tests/html/semantics/tabular-data/the-table-element/tHead-expected.txt:
* web-platform-tests/html/semantics/tabular-data/the-table-element/tHead.html:
* web-platform-tests/html/semantics/tabular-data/the-tr-element/insertCell-expected.txt:
* web-platform-tests/html/semantics/tabular-data/the-tr-element/insertCell.html:
* web-platform-tests/html/syntax/parsing-html-fragments/w3c-import.log:
* web-platform-tests/html/syntax/parsing/test.js:
(init_tests):
* web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers-expected.txt:
* web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers.html:
* web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects-expected.txt: Added.
* web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects.html: Added.
* web-platform-tests/html/webappapis/scripting/events/event-handler-onauxclick.html:
* web-platform-tests/html/webappapis/scripting/events/event-handler-processing-algorithm-expected.txt:
* web-platform-tests/html/webappapis/scripting/events/event-handler-processing-algorithm.html:
* web-platform-tests/html/webappapis/scripting/events/resources/compiled-event-handler-settings-objects-support.html: Added.
* web-platform-tests/html/webappapis/scripting/events/resources/open-window.html: Added.
* web-platform-tests/html/webappapis/scripting/events/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/w3c-import.log.
* web-platform-tests/html/webappapis/scripting/events/w3c-import.log:
* web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-cross-origin-setTimeout.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-setInterval.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-setTimeout.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-cross-origin-setTimeout.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-in-setInterval.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-in-setTimeout.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/support/syntax-error-in-setInterval.js:
(step_timeout):
* web-platform-tests/html/webappapis/scripting/processing-model-2/support/undefined-variable-in-setInterval.js:
(step_timeout):
* web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt:
* web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker-expected.txt:
* web-platform-tests/lint.whitelist:
* web-platform-tests/media/CanvasTest.ttf: Added.
* web-platform-tests/media/w3c-import.log:
* web-platform-tests/streams/piping/general.js:
(false.promise_test):
* web-platform-tests/streams/piping/pipe-through.js:
(promise_test):
(test):
* web-platform-tests/streams/readable-byte-streams/general-expected.txt:
* web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt:
* web-platform-tests/streams/readable-byte-streams/general.js:
(test):
* web-platform-tests/streams/readable-streams/bad-underlying-sources.js:
(promise_test):
* web-platform-tests/streams/readable-streams/brand-checks-expected.txt:
* web-platform-tests/streams/readable-streams/brand-checks.dedicatedworker-expected.txt:
* web-platform-tests/streams/readable-streams/brand-checks.js:
(test):
(fakeReadableStream):
* web-platform-tests/streams/readable-streams/cancel.js:
(promise_test):
* web-platform-tests/streams/readable-streams/default-reader-expected.txt: Added.
* web-platform-tests/streams/readable-streams/default-reader.dedicatedworker-expected.txt: Added.
* web-platform-tests/streams/readable-streams/default-reader.dedicatedworker.html: Added.
* web-platform-tests/streams/readable-streams/default-reader.html: Added.
* web-platform-tests/streams/readable-streams/default-reader.js: Added.
(test):
(promise_test):
(promise_test.t.const.rs.new.ReadableStream.start):
(promise_test.t.const.rs.new.ReadableStream.cancel):
* web-platform-tests/streams/readable-streams/default-reader.serviceworker.https-expected.txt: Added.
* web-platform-tests/streams/readable-streams/default-reader.serviceworker.https.html: Added.
* web-platform-tests/streams/readable-streams/default-reader.sharedworker-expected.txt: Added.
* web-platform-tests/streams/readable-streams/default-reader.sharedworker.html: Added.
* web-platform-tests/streams/readable-streams/floating-point-total-queue-size-expected.txt: Added.
* web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker-expected.txt: Added.
* web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker.html: Added.
* web-platform-tests/streams/readable-streams/floating-point-total-queue-size.html: Added.
* web-platform-tests/streams/readable-streams/floating-point-total-queue-size.js: Added.
(promise_test):
(setupTestStream):
* web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https-expected.txt: Added.
* web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https.html: Added.
* web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker-expected.txt: Added.
* web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker.html: Added.
* web-platform-tests/streams/readable-streams/garbage-collection-expected.txt:
* web-platform-tests/streams/readable-streams/garbage-collection.dedicatedworker-expected.txt:
* web-platform-tests/streams/readable-streams/garbage-collection.js:
(promise_test):
* web-platform-tests/streams/readable-streams/general-expected.txt:
* web-platform-tests/streams/readable-streams/general.dedicatedworker-expected.txt:
* web-platform-tests/streams/readable-streams/general.js:
(promise_test):
(test):
* web-platform-tests/streams/readable-streams/pipe-through.js:
(test):
* web-platform-tests/streams/readable-streams/w3c-import.log:
* web-platform-tests/url/OWNERS:
* web-platform-tests/url/a-element-expected.txt:
* web-platform-tests/url/a-element-origin-expected.txt:
* web-platform-tests/url/a-element-origin-xhtml-expected.txt:
* web-platform-tests/url/a-element-xhtml-expected.txt:
* web-platform-tests/url/failure-expected.txt: Added.
* web-platform-tests/url/failure.html: Added.
* web-platform-tests/url/setters_tests.json:
* web-platform-tests/url/url-constructor-expected.txt:
* web-platform-tests/url/url-origin-expected.txt:
* web-platform-tests/url/url-setters-expected.txt:
* web-platform-tests/url/urltestdata.json:
* web-platform-tests/url/w3c-import.log:
* web-platform-tests/w3c-import.log:
* web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt: Added.
* web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription.html: Added.
* web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log:

LayoutTests:

* platform/mac/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type-expected.txt:
* tests-options.json:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsTestExpectations">trunk/LayoutTests/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestREADMEmd">trunk/LayoutTests/imported/w3c/csswg-test/README.md</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestcssgrid1griditemsw3cimportlog">trunk/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestcssgrid1gridmodelw3cimportlog">trunk/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestcssscoping1w3cimportlog">trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestw3cimportlog">trunk/LayoutTests/imported/w3c/csswg-test/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cresourcesTestRepositories">trunk/LayoutTests/imported/w3c/resources/TestRepositories</a></li>
<li><a href="#trunkLayoutTestsimportedw3cresourcesimportexpectationsjson">trunk/LayoutTests/imported/w3c/resources/import-expectations.json</a></li>
<li><a href="#trunkLayoutTestsimportedw3cresourcesresourcefilesjson">trunk/LayoutTests/imported/w3c/resources/resource-files.json</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBabortininitialupgradeneededhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/abort-in-initial-upgradeneeded.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBcloseinupgradeneededhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/close-in-upgradeneeded.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbbinarykeyroundtriphtm">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idb-binary-key-roundtrip.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbcursor_continue_objectstorehtm">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor_continue_objectstore.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactory_deleteDatabase4expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory_deleteDatabase4-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactory_deleteDatabase4htm">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory_deleteDatabase4.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbindex_gethtm">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_get.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbindex_get4htm">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_get4.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbindex_getKey4htm">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_getKey4.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbobjectstore_createIndex13htm">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_createIndex13.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbobjectstore_get4htm">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_get4.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbobjectstore_getKeyhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_getKey.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBkeyconversionexceptionshtm">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/key-conversion-exceptions.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBkeypath_invalidhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath_invalid.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBsupportjs">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/support.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBtransactionlifetimeblockedhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-lifetime-blocked.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBtransactionlifetimehtm">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-lifetime.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBwriterstarvationhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/writer-starvation.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestOWNERS">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/OWNERS</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestabortafterreceivehtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-receive.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestabortaftertimeouthtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-timeout.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestanonymousmodeunsupportedexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/anonymous-mode-unsupported-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestanonymousmodeunsupportedhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/anonymous-mode-unsupported.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestdatauriexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/data-uri-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestdataurihtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/data-uri.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventaborthtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-abort.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventloadhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-load.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventloadendhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadend.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventloadstarthtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventprogresshtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-progress.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventreadystatechangeloadedhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-readystatechange-loaded.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventtimeouthtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-timeout.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventuploadprogresscrossoriginhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventuploadprogresshtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestgetresponseheadercaseinsensitivehtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getresponseheader-case-insensitive.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenaftersetrequestheaderexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-after-setrequestheader-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenaftersetrequestheaderhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-after-setrequestheader.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenrefererexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-referer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenrefererhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-referer.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestoverridemimetypeinvalidmimetypeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-invalid-mime-type-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestoverridemimetypeinvalidmimetypehtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-invalid-mime-type.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcescorsenabledpy">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/corsenabled.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesdelaypy">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/delay.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesinspectheaderspy">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesredirectpy">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/redirect.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresponsetextdecodingexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responsetext-decoding-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresponsetextdecodinghtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responsetext-decoding.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendacceptlanguageexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-accept-language-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendacceptlanguagehtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-accept-language.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsenddataformdataexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-formdata-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsenddataformdatahtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-formdata.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendnetworkerrorsynceventssubexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendnetworkerrorsynceventssubhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendredirecttocorshtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-to-cors.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendsyncblocksasynchtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-sync-blocks-async.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendsynctimeouthtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-sync-timeout.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderallowemptyvalueexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-empty-value-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderallowemptyvaluehtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-empty-value.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderallowwhitespaceinvalueexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-whitespace-in-value-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderallowwhitespaceinvaluehtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-whitespace-in-value.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheadercaseinsensitiveexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-case-insensitive-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheadercaseinsensitivehtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-case-insensitive.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheadercontenttypehtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderheaderallowedexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-allowed-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderheaderallowedhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-allowed.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderheaderforbiddenexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-forbidden-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderheaderforbiddenhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-forbidden.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderopensetrequestheaderexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-open-setrequestheader-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderopensetrequestheaderhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-open-setrequestheader.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequeststatuserrorhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/status-error.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscheck_stabilitypy">trunk/LayoutTests/imported/w3c/web-platform-tests/check_stability.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommongethostinfosubjs">trunk/LayoutTests/imported/w3c/web-platform-tests/common/get-host-info.sub.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomOWNERS">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/OWNERS</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomlistsDOMTokenListcoverageforattributesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomlistsDOMTokenListcoverageforattributeshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementmatchesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementmatcheshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementmatchesjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodelookupNamespaceURIexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-lookupNamespaceURI-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodelookupNamespaceURIhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-lookupNamespaceURI.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchOWNERS">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/OWNERS</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestreferrerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestreferrerjs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestuploadexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestuploadworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestuploadjs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsredirectcredentialsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsredirectcredentialsworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsredirectcredentialsjs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-credentials.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiheadersheaderscombinehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-combine.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiheadersw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginwhencrossoriginexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginwhencrossoriginworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginwhencrossoriginjs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginjs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferrerunsafeurljs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcachedefaultconditionalexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-default-conditional-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcachedefaultexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-default-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcacheforcecacheexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-force-cache-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcachenocacheexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-cache-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcachenostoreexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-store-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcacheonlyifcachedexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcachereloadexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcachejs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestheadersexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-headers-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestheadershtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-headers.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestresourcescachepy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/resources/cache.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcespreflightpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/preflight.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponseidlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-idl-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponseidlhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-idl.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlOWNERS">trunk/LayoutTests/imported/w3c/web-platform-tests/html/OWNERS</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersbrowsingthewebhistorytraversalbrowsing_context_name_cross_originexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersbrowsingthewebhistorytraversalbrowsing_context_name_cross_originhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersbrowsingthewebhistorytraversalw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacelocationstringifierexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-stringifier-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacelocationstringifierhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-stringifier.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersofflinew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsupportnoopenertargethtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/support/noopener-target.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectwindowopennoopenerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/window-open-noopener-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectwindowopennoopenerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnoreferrercrossoriginclosemanualsubhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-cross-origin-close-manual.sub.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnoreferrerwindownamehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowstargetingmultiplecrossoriginmanualsubhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/targeting-multiple-cross-origin-manual.sub.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomelementselementsinthedomhistoricalexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/elements-in-the-dom/historical-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomelementselementsinthedomhistoricalhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/elements-in-the-dom/historical.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfaceshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomreflectionjs">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsdocumentmetadatastylingLinkStylehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/styling/LinkStyle.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentthecanvaselementw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheembedelementembedignoredinmediaelementhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheembedelementw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementsupportw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementImageconstructorexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementImageconstructorhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstextfieldselectionselectionnotapplicationexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstextfieldselectionselectionnotapplicationhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstextfieldselectiontextfieldselectionsetSelectionRangeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstextfieldselectiontextfieldselectionsetSelectionRangehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheinputelementvalueModeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheinputelementvalueModehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheselectelementcommonHTMLOptionsCollectionexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheselectelementcommonHTMLOptionsCollectionhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheselectelementselectedindexexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/selected-index-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheselectelementselectedindexhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/selected-index.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsscripting1thescriptelementdataurlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsscripting1thescriptelementdataurlhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticstabulardatathetableelementtFootexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticstabulardatathetableelementtFoothtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticstabulardatathetableelementtHeadexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tHead-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticstabulardatathetableelementtHeadhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tHead.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticstabulardatathetrelementinsertCellexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-tr-element/insertCell-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticstabulardatathetrelementinsertCellhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-tr-element/insertCell.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsyntaxparsingtestjs">trunk/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/test.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsyntaxparsinghtmlfragmentsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsbodyexposedwindoweventhandlersexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsbodyexposedwindoweventhandlershtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventseventhandleronauxclickhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-onauxclick.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventseventhandlerprocessingalgorithmexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-processing-algorithm-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventseventhandlerprocessingalgorithmhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-processing-algorithm.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2compileerrorcrossoriginsetTimeouthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-cross-origin-setTimeout.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2compileerrorinsetIntervalhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-setInterval.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2compileerrorinsetTimeouthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-setTimeout.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2runtimeerrorcrossoriginsetTimeouthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-cross-origin-setTimeout.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2runtimeerrorinsetIntervalhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-in-setInterval.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2runtimeerrorinsetTimeouthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-in-setTimeout.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2supportsyntaxerrorinsetIntervaljs">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/support/syntax-error-in-setInterval.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2supportundefinedvariableinsetIntervaljs">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/support/undefined-variable-in-setInterval.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapissystemstateandcapabilitiesthenavigatorobjectNavigatorIDexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapissystemstateandcapabilitiesthenavigatorobjectNavigatorIDworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestslintwhitelist">trunk/LayoutTests/imported/w3c/web-platform-tests/lint.whitelist</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsmediaw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/media/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamspipinggeneraljs">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/general.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamspipingpipethroughjs">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/pipe-through.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablebytestreamsgeneralexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablebytestreamsgeneraldedicatedworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablebytestreamsgeneraljs">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsbadunderlyingsourcesjs">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/bad-underlying-sources.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsbrandchecksexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/brand-checks-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsbrandchecksdedicatedworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/brand-checks.dedicatedworker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsbrandchecksjs">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/brand-checks.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamscanceljs">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/cancel.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsgarbagecollectionexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsgarbagecollectiondedicatedworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection.dedicatedworker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsgarbagecollectionjs">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsgeneralexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/general-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsgeneraldedicatedworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/general.dedicatedworker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsgeneraljs">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/general.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamspipethroughjs">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/pipe-through.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlOWNERS">trunk/LayoutTests/imported/w3c/web-platform-tests/url/OWNERS</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlaelementexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlaelementoriginexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlaelementoriginxhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlaelementxhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlsetters_testsjson">trunk/LayoutTests/imported/w3c/web-platform-tests/url/setters_tests.json</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurlconstructorexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurloriginexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-origin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurlsettersexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurltestdatajson">trunk/LayoutTests/imported/w3c/web-platform-tests/url/urltestdata.json</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/url/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorwk2TestExpectations">trunk/LayoutTests/platform/ios-simulator-wk2/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorwk2importedw3cwebplatformtestshtmlsemanticsformstextfieldselectionselectionnotapplicationexpectedtxt">trunk/LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorwk2importedw3cwebplatformtestshtmlsemanticsformstheinputelementvalueModeexpectedtxt">trunk/LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk1TestExpectations">trunk/LayoutTests/platform/mac-wk1/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk1importedw3cwebplatformtestsXMLHttpRequestsendnetworkerrorsynceventssubexpectedtxt">trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk1importedw3cwebplatformtestsfetchapirequestrequestcachereloadexpectedtxt">trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload-expected.txt</a></li>
<li><a href="#trunkLayoutTeststestsoptionsjson">trunk/LayoutTests/tests-options.json</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsTestExpectationsorig">trunk/LayoutTests/TestExpectations.orig</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestLICENSEmd">trunk/LayoutTests/imported/w3c/csswg-test/LICENSE.md</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestbuildcsstestsuitessh">trunk/LayoutTests/imported/w3c/csswg-test/build-css-testsuites.sh</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestconfigdefaultjson">trunk/LayoutTests/imported/w3c/csswg-test/config.default.json</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestcssscoping1OWNERS">trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/OWNERS</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestcssscoping1cssscopingshadowslotstyleexpectedhtml">trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-style-expected.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestcssscoping1cssscopingshadowslotstylehtml">trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-style.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestlint">trunk/LayoutTests/imported/w3c/csswg-test/lint</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestlintwhitelist">trunk/LayoutTests/imported/w3c/csswg-test/lint.whitelist</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestmanifest">trunk/LayoutTests/imported/w3c/csswg-test/manifest</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestrequirementstxt">trunk/LayoutTests/imported/w3c/csswg-test/requirements.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestserve">trunk/LayoutTests/imported/w3c/csswg-test/serve</a></li>
<li><a href="#trunkLayoutTestsimportedw3ccsswgtestservepy">trunk/LayoutTests/imported/w3c/csswg-test/serve.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBeventdispatchactiveflagexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/event-dispatch-active-flag-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBeventdispatchactiveflaghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/event-dispatch-active-flag.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBfireerroreventexceptionexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBfireerroreventexceptionhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBfiresuccesseventexceptionexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBfiresuccesseventexceptionhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBfireupgradeneededeventexceptionexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBfireupgradeneededeventexceptionhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactorydeleteDatabaseopaqueoriginexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-deleteDatabase-opaque-origin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactorydeleteDatabaseopaqueoriginhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-deleteDatabase-opaque-origin.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactoryopenerrorpropertiesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-error-properties-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactoryopenerrorpropertieshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-error-properties.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactoryopenopaqueoriginexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-opaque-origin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactoryopenopaqueoriginhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-opaque-origin.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBkeygeneratorexplicitexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-explicit-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBkeygeneratorexplicithtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-explicit.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBkeygeneratorinjectexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-inject-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBkeygeneratorinjecthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-inject.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBtransactionabortrequesterrorexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-abort-request-error-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBtransactionabortrequesterrorhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-abort-request-error.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBtransactiondeactivationtimingexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-deactivation-timing-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBtransactiondeactivationtiminghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-deactivation-timing.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBupgradetransactiondeactivationtimingexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/upgrade-transaction-deactivation-timing-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBupgradetransactiondeactivationtiminghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/upgrade-transaction-deactivation-timing.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestREADMEmd">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/README.md</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventloadstartuploadexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart-upload-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventloadstartuploadhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart-upload.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestgetallresponseheadersclexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-cl-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestgetallresponseheadersclhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-cl.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestgetallresponseheadersexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestgetallresponseheadershtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestloadstartandstateexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/loadstart-and-state-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestloadstartandstatehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/loadstart-and-state.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenduringaborteventexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-event-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenduringaborteventhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-event.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenduringabortprocessingexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-processing-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenduringabortprocessinghtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-processing.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopensendduringabortexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-send-during-abort-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopensendduringaborthtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-send-during-abort.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenurlredirectedworkeroriginexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenurlredirectedworkeroriginhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestoverridemimetypeblobexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-blob-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestoverridemimetypeblobhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-blob.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesechoheaderspy">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/echo-headers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesheadercontentlengthasis">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/header-content-length.asis</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesheadersbasicasis">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/headers-basic.asis</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesheadersasis">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/headers.asis</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesttemplateelementexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/template-element-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesttemplateelementhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/template-element.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesttimeoutmultiplefetchesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/timeout-multiple-fetches-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesttimeoutmultiplefetcheshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/timeout-multiple-fetches.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestxmlhttprequesttimeoutreusedexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestxmlhttprequesttimeoutreusedhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementwebkitMatchesSelectorexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementwebkitMatchesSelectorhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchREADMEmd">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/README.md</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestreferrerredirectedworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-redirected-worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestreferrerredirectedworkerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-redirected-worker.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestreferrerworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestreferrerworkerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-worker.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsexposestarexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsexposestarworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsexposestarworkerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-worker.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsexposestarhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsexposestarjs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorspreflightstarexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorspreflightstarworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star-worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorspreflightstarworkerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star-worker.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorspreflightstarhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorspreflightstarjs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiheadersheadersrecordexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-record-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiheadersheadersrecordhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-record.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesnestedpolicyjs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/nested-policy.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesnestedpolicyjsheaders">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/nested-policy.js.headers</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferrernoreferrerserviceworkerhttpsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferrernoreferrerserviceworkerhttpshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginserviceworkerhttpsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginserviceworkerhttpshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginwhencrossoriginserviceworkerhttpsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginwhencrossoriginserviceworkerhttpshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferrerunsafeurlserviceworkerhttpsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferrerunsafeurlserviceworkerhttpshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestkeepalivequotaexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestkeepalivequotahtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponsetrailerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-trailer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponsetrailerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-trailer.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersbrowsingthewebhistorytraversalbrowsing_context_name_cross_origin0html">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-0.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacelocationprotocolsetterwithcolonsubexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacelocationprotocolsetterwithcolonsubhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacelocationtojsonexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-tojson-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacelocationtojsonhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-tojson.html</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/resources/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfaceresourcespostyourprotocolhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/resources/post-your-protocol.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfaceresourcesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/resources/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersofflinenoappcacheinsharedworkershistoricalexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersofflinenoappcacheinsharedworkershistoricalhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersofflinenoappcacheinsharedworkershistoricaljs">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsbrowsingcontextexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsbrowsingcontextwindowexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-window-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsbrowsingcontextwindowhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-window.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsbrowsingcontexthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextsresourcesframeElementnestedframehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-nested-frame.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextsresourcesframeElementwindowposthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-window-post.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextsresourcesposttoopenerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/post-to-opener.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextsresourcesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowparentexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowparentnullexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowparentnullhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowparenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowtopexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowtopnullexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-null-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowtopnullhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-null.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowtophtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnoreferrercrossoriginwindownamemanualsubhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-cross-origin-window-name-manual.sub.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnoreferrernullopenerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-null-opener-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnoreferrernullopenerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-null-opener.html</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcesbrowsingcontextwindowhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/browsing-context-window.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcesechowindownamehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/echo-window-name.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcesnestedposttoopenerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/nested-post-to-opener.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcesnoreferrerwindownamehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/noreferrer-window-name.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcesposttoopenerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/post-to-opener.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcestargetcrossoriginsubhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/target-cross-origin.sub.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourceswindowclosebuttonhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/window-close-button.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourceswindowopenerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/window-opener.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfacesworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfacesworkerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.worker.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfacesworkerjs">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.worker.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomresourcesselforiginsubframehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/resources/self-origin-subframe.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomresourcesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/resources/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginanyhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.any.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginanyjs">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.any.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginsubexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.sub-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginsubhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.sub.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginworkerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.worker.html</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentmediaelementsreadystatesautoplaywithslowtexttracksexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentmediaelementsreadystatesautoplaywithslowtexttrackshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentmediaelementsreadystatesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentresourcesshouldloadhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/should-load.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentresourcesshouldnotloadhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/should-not-load.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentresourcesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentthecanvaselementtoBlobnullexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.null-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentthecanvaselementtoBlobnullhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.null.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheembedelementembedinobjectfallback2expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheembedelementembedinobjectfallback2html">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementiframe_sandbox_allow_top_navigation_by_user_activation_without_user_gestureexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementiframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesturehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementsupportiframethatperformstopnavigationwithoutusergesturefailedhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-without-user-gesture-failed.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementsupportiframethatperformstopnavigationhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementsupportnavigationchangediframehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementobjectignoredinmediaelementexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementobjectignoredinmediaelementhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementobjectinobjectfallback2expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementobjectinobjectfallback2html">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventscompileeventhandlersettingsobjectsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventscompileeventhandlersettingsobjectshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects.html</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsresourcescompiledeventhandlersettingsobjectssupporthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/compiled-event-handler-settings-objects-support.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsresourcesopenwindowhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/open-window.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsresourcesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsmediaCanvasTestttf">trunk/LayoutTests/imported/w3c/web-platform-tests/media/CanvasTest.ttf</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderdedicatedworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.dedicatedworker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderdedicatedworkerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.dedicatedworker.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderjs">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderserviceworkerhttpsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.serviceworker.https-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderserviceworkerhttpshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.serviceworker.https.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreadersharedworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.sharedworker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreadersharedworkerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.sharedworker.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizededicatedworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizededicatedworkerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizejs">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizeserviceworkerhttpsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizeserviceworkerhttpshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizesharedworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizesharedworkerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlfailureexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/failure-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlfailurehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/url/failure.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionsetRemoteDescriptionexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionsetRemoteDescriptionhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorwk2importedw3cwebplatformtestshtmldominterfacesworkerexpectedtxt">trunk/LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/dom/interfaces.worker-expected.txt</a></li>
<li>trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/fetch/</li>
<li>trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/fetch/api/</li>
<li>trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/fetch/api/request/</li>
<li><a href="#trunkLayoutTestsplatformmacimportedw3cwebplatformtestsfetchapirequestrequestcacheonlyifcachedexpectedtxt">trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsplatformmacimportedw3cwebplatformtestsXMLHttpRequestsetrequestheadercontenttypeexpectedtxt">trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk1importedw3cwebplatformtestsfetchapirequestrequestcacheonlyifcachedexpectedtxt">trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/ChangeLog        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2017-03-13  Youenn Fablet  &lt;youenn@apple.com&gt;
+
+        Sync web-platform-tests up to revision a5b95cb31914507088a4eda16f7674bbc6f3313f
+        https://bugs.webkit.org/show_bug.cgi?id=169523
+
+        Reviewed by Alex Christensen.
+
+        * platform/mac/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type-expected.txt:
+        * tests-options.json:
+
</ins><span class="cx"> 2017-03-13  Eric Carlson  &lt;eric.carlson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [MediaStream] Move paintCurrentFrameInContext from RealtimeMediaSources to MediaPlayer
</span></span></pre></div>
<a id="trunkLayoutTestsTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/TestExpectations (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/TestExpectations        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/TestExpectations        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -711,6 +711,12 @@
</span><span class="cx"> imported/w3c/web-platform-tests/webrtc/no-media-call.html [ Failure  ]
</span><span class="cx"> imported/w3c/web-platform-tests/webrtc/promises-call.html [ Failure  ]
</span><span class="cx"> 
</span><ins>+# Need updating wptserve
+imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type.htm [ Skip ]
+imported/w3c/web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin.htm [ Skip ]
+imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.html [ Skip ]
+imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker.html [ Skip ]
+
</ins><span class="cx"> # Only iOS WK1 has testRunner.setPagePaused.
</span><span class="cx"> fast/dom/timer-fire-after-page-pause.html [ Skip ]
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsTestExpectationsorigfromrev213880trunkLayoutTestsTestExpectations"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/TestExpectations.orig (from rev 213880, trunk/LayoutTests/TestExpectations) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/TestExpectations.orig                                (rev 0)
+++ trunk/LayoutTests/TestExpectations.orig        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,1207 @@
</span><ins>+# This file contains generic test expectations that apply to all ports of WebKit.
+#
+# See http://trac.webkit.org/wiki/TestExpectations for more information on this file.
+
+#//////////////////////////////////////////////////////////////////////////////////////////
+# Platform-specific tests. Skipped here, then re-enabled on the appropriate platform.
+#//////////////////////////////////////////////////////////////////////////////////////////
+
+compositing/ios [ Skip ]
+css3/touch-action [ Skip ]
+accessibility/ios-simulator [ Skip ]
+accessibility/gtk [ Skip ]
+accessibility/mac [ Skip ]
+accessibility/win [ Skip ]
+displaylists [ Skip ]
+editing/mac [ Skip ]
+editing/caret/ios [ Skip ]
+editing/pasteboard/gtk [ Skip ]
+editing/selection/ios [ Skip ]
+tiled-drawing [ Skip ]
+fast/visual-viewport/tiled-drawing [ Skip ]
+swipe [ Skip ]
+fast/zooming/ios [ Skip ]
+fast/forms/ios [ Skip ]
+fast/viewport/ios [ Skip ]
+fast/visual-viewport/ios/ [ Skip ]
+fast/events/ios [ Skip ]
+fast/events/touch/ios [ Skip ]
+fast/history/ios [ Skip ]
+fast/scrolling/ios [ Skip ]
+scrollingcoordinator/ios [ Skip ]
+fast/content-observation [ Skip ]
+media/mac [ Skip ]
+media/ios [ Skip ]
+media/controls/ipad [ Skip ]
+fast/text-autosizing [ Skip ]
+
+fast/shadow-dom/touch-event-on-text-assigned-to-slot.html [ Skip ]
+
+fast/forms/attributed-strings.html [ Skip ]
+fast/scrolling/latching [ Skip ]
+
+fast/forms/search/search-padding-cancel-results-buttons.html [ Skip ]
+fast/forms/search/search-results-hidden-crash.html [ Skip ]
+
+# This doesn't have to be platform-specific, but it's only implemented on Mac now.
+fast/url/user-visible [ Skip ]
+
+# Only Mac supports force tests.
+fast/events/cancelled-force-click-link-navigation.html [ Skip ]
+fast/events/force-click-link-selection-behavior.html [ Skip ]
+fast/events/force-click-on-link-navigation.html [ Skip ]
+fast/events/force-click-text-selection-behavior.html [ Skip ]
+fast/events/mouse-force-changed.html [ Skip ]
+fast/events/mouse-force-down.html [ Skip ]
+fast/events/mouse-force-up.html [ Skip ]
+
+# Document autoscroll tests only work on Mac WK2
+fast/events/autoscroll-when-zoomed.html [ Skip ]
+fast/events/autoscroll-main-document.html [ Skip ]
+
+# Only iOS supports QuickLook
+quicklook [ Skip ]
+http/tests/quicklook [ Skip ]
+
+# These tests are WebKit2-only
+http/tests/appcache/decide-navigation-policy-after-delay.html [ Skip ]
+http/tests/misc/will-send-request-with-client-provided-http-body.html [ Skip ]
+http/tests/loading/resourceLoadStatistics/ [ Skip ]
+
+# Only Mac and iOS have an implementation of UIScriptController::doAsyncTask().
+fast/harness/uiscriptcontroller [ Skip ]
+
+# This test only makes sense on Mac
+fast/attachment/attachment-subtitle-resize.html
+
+# This test only makes sense on iOS
+fast/attachment/attachment-wrapping-action.html
+
+# Only iOS has selection UI drawn by UIKit
+editing/selection/character-granularity-rect.html [ Skip ]
+
+# This test is for ios-simulator-wk1
+editing/input/focus-change-with-marked-text.html [ Skip ]
+
+# These only run on Mac and iOS WK2
+fast/media/mq-inverted-colors-live-update.html [ Skip ]
+fast/media/mq-inverted-colors-live-update-in-subframes.html [ Skip ]
+fast/media/mq-monochrome-live-update.html [ Skip ]
+fast/media/mq-prefers-reduced-motion-live-update.html [ Skip ]
+
+# ApplePay is only available on iOS (greater than iOS 10) and macOS (greater than macOS 10.12) and only for WebKit2.
+http/tests/ssl/applepay/ [ Skip ]
+
+# Only WK2 allows unconstrained scrolling
+fast/visual-viewport/rubberbanding-viewport-rects.html [ Skip ]
+fast/visual-viewport/rubberbanding-viewport-rects-header-footer.html  [ Skip ]
+
+#//////////////////////////////////////////////////////////////////////////////////////////
+# End platform-specific tests.
+#//////////////////////////////////////////////////////////////////////////////////////////
+
+# media/video-seek-after-end.html is flaky
+webkit.org/b/116293 media/video-seek-after-end.html [ Pass Failure ]
+
+webkit.org/b/116473 editing/selection/user-drag-element-and-user-select-none.html [ Failure ]
+
+webkit.org/b/139862 editing/spelling/editing-multiple-words-with-markers.html [ Timeout Pass ]
+webkit.org/b/139903 editing/spelling/grammar-paste.html [ Timeout Pass ]
+
+# media/W3C/video/networkState/networkState_during_progress.html is flaky
+webkit.org/b/76280 media/W3C/video/networkState/networkState_during_progress.html [ Pass Failure ]
+
+# This test will run slowly in debug mode, but is plenty fast in release.
+[ Debug ] js/slow-stress/emscripten-memops.html [ Skip ]
+
+webkit.org/b/112521 [ Release ] webaudio/javascriptaudionode.html [ Pass Failure ]
+webkit.org/b/112521 [ Debug ] webaudio/javascriptaudionode.html [ Skip ]
+webkit.org/b/112521 [ Release ] webaudio/javascriptaudionode-upmix2-8channel-input.html [ Pass Failure ]
+webkit.org/b/112521 [ Debug ] webaudio/javascriptaudionode-upmix2-8channel-input.html [ Skip ]
+webkit.org/b/112521 [ Release ] webaudio/javascriptaudionode-downmix8-2channel-input.html [ Pass Failure ]
+webkit.org/b/112521 [ Debug ] webaudio/javascriptaudionode-downmix8-2channel-input.html [ Skip ]
+webkit.org/b/112521 [ Release ] webaudio/audioprocessingevent.html [ Pass Failure ]
+webkit.org/b/112521 [ Debug ] webaudio/audioprocessingevent.html [ Skip ]
+webkit.org/b/137359 webaudio/distance-linear.html [ Pass Failure ]
+
+webkit.org/b/139590 animations/cross-fade-webkit-mask-image.html [ Pass Failure ]
+
+# The test frequently times out, and is just unsuccessful at detecting incorrect behavior when it passes.
+webkit.org/b/72698 media/audio-garbage-collect.html [ Skip ]
+
+webkit.org/b/53990 fast/forms/search-event-delay.html [ Pass Failure ]
+
+webkit.org/b/126142 css3/calc/transitions-dependent.html [ Pass Failure ]
+
+webkit.org/b/124932 media/video-size.html [ Pass Failure ]
+
+webkit.org/b/126166 [ Debug ] js/dfg-int32array.html [ Skip ]
+webkit.org/b/126166 [ Debug ] js/dfg-uint16array.html [ Skip ]
+webkit.org/b/126166 [ Debug ] js/dfg-float32array.html [ Skip ]
+webkit.org/b/126166 [ Debug ] js/dfg-uint8clampedarray.html [ Skip ]
+webkit.org/b/126166 [ Debug ] js/dfg-int8array.html [ Skip ]
+webkit.org/b/126166 [ Debug ] js/dfg-float64array.html [ Skip ]
+webkit.org/b/126166 [ Debug ] js/dfg-uint8array.html [ Skip ]
+webkit.org/b/126166 [ Debug ] js/dfg-int16array.html [ Skip ]
+webkit.org/b/126166 [ Debug ] js/dfg-int32array-overflow-values.html [ Skip ]
+webkit.org/b/126166 [ Debug ] js/dfg-uint32array.html [ Skip ]
+webkit.org/b/126166 [ Debug ] js/dfg-uint32array-overflow-values.html [ Skip ]
+
+# This test verifies that a mismatch reftest will fail as intended if both results are same. (introduced in r93187)
+fast/harness/sample-fail-mismatch-reftest.html [ WontFix ImageOnlyFailure ]
+
+webkit.org/b/127697 fast/writing-mode/ruby-text-logical-left.html [ Skip ]
+
+webkit.org/b/83618 fast/dom/inline-event-attributes-release.html [ Failure ]
+
+webkit.org/b/129057 media/controls-styling-strict.html [ Pass Failure ]
+
+# These tests will be rewritten, just skip them until that time.
+webkit.org/b/148036 http/tests/inspector/css/ [ Skip ]
+webkit.org/b/148036 http/tests/inspector/page/ [ Skip ]
+webkit.org/b/148036 http/tests/inspector/replay/ [ Skip ]
+
+# Debugger stepping tests can timeout if they run slowly due to a short timer scheduled in the frontend:
+webkit.org/b/161951 [ Debug ] inspector/debugger/stepping [ Skip ]
+webkit.org/b/161951 [ Release ] inspector/debugger/stepping [ Slow Pass Failure ]
+
+[ Debug ] inspector/debugger/breakpoints [ Skip ]
+[ Release ] inspector/debugger/breakpoints [ Slow ]
+
+webkit.org/b/129639 inspector/dom/dom-search-crash.html [ Skip ]
+
+webkit.org/b/128736 inspector/debugger/setBreakpoint-dfg.html [ Failure Pass ]
+webkit.org/b/134982 inspector/debugger/setBreakpoint-dfg-and-modify-local.html [ Failure Pass ]
+
+webkit.org/b/142208 inspector/timeline/debugger-paused-while-recording.html [ Skip ]
+webkit.org/b/142208 inspector/timeline/exception-in-injected-script-while-recording.html [ Skip ]
+
+webkit.org/b/137130 inspector/replay [ Skip ]
+
+# This test is fast enough in release but quite slow in debug builds.
+[ Debug ] inspector/debugger/debugger-stack-overflow.html [ Skip ]
+
+# Debugger stepping tests can timeout if they run slowly due to a short timer scheduled in the frontend.
+webkit.org/b/161951 [ Debug ] inspector/debugger/paused-scopes.html [ Skip ]
+
+# Doesn't work yet, relies on network replay functionality (webkit.org/b/130728, webkit.org/b/129391)
+webkit.org/b/131318 http/tests/inspector/replay/document-last-modified-fallback-value.html [ Skip ]
+
+# Collecting region's children in a named flow not supported yet
+webkit.org/b/74144 fast/regions/flow-body-in-html.html [ Skip ]
+webkit.org/b/74144 fast/regions/universal-selector-children-to-the-same-region.html [ Skip ]
+webkit.org/b/74144 fast/regions/region-content-flown-into-region.html [ Skip ]
+
+# These conformance tests are no longer in sync with the latest specification
+# and expect compareDocumentPosition() to return:
+# DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | DOCUMENT_POSITION_DISCONNECTED
+# for disconnected nodes (missing PRECEDING / FOLLOWING information).
+# We cannot check rebaseline them because their output is likely to change
+# between test runs as it decides PRECEDING / FOLLOWING using pointer
+# comparison.
+dom/xhtml/level3/core/nodecomparedocumentposition03.xhtml [ WontFix ]
+dom/xhtml/level3/core/nodecomparedocumentposition05.xhtml [ WontFix ]
+dom/xhtml/level3/core/nodecomparedocumentposition16.xhtml [ WontFix ]
+dom/xhtml/level3/core/nodecomparedocumentposition33.xhtml [ WontFix ]
+
+# Node::compareDocumentPosition() wrongly reports an attribute and its content as disconnected.
+webkit.org/b/119325 dom/xhtml/level3/core/nodecomparedocumentposition38.xhtml [ Failure ]
+
+# Expando properties on attribute nodes disappear
+webkit.org/b/88045 fast/dom/gc-attribute-node.html [ Failure Pass ]
+
+# These tests are incorrect in the CSS test suite and should be fixed there first.
+css2.1/20110323/replaced-intrinsic-001.htm [ Failure ]
+css2.1/20110323/replaced-intrinsic-002.htm [ Failure ]
+
+webkit.org/b/132791 svg/as-object/sizing/svg-in-object-placeholder-height-fixed.html [ Skip ]
+webkit.org/b/132791 svg/as-object/sizing/svg-in-object-placeholder-height-percentage.html [ Skip ]
+webkit.org/b/132791 svg/as-object/sizing/svg-in-object-placeholder-height-auto.html [ Skip ]
+
+webkit.org/b/133057 fast/table/border-collapsing/collapsed-borders-adjoining-sections.html [ ImageOnlyFailure ]
+
+webkit.org/b/169075 editing/selection/extend-by-character-007.html [ Failure ]
+
+# CSS Font Loading is not yet enabled on all platforms
+webkit.org/b/135390 fast/css/fontloader-download-error.html [ Skip ]
+webkit.org/b/135390 fast/css/fontloader-events.html [ Skip ]
+webkit.org/b/135390 fast/css/fontloader-loadingdone.html [ Skip ]
+webkit.org/b/135390 fast/css/fontloader-multiple-faces-download-error.html [ Skip ]
+webkit.org/b/135390 fast/css/fontloader-multiple-faces.html [ Skip ]
+webkit.org/b/135390 fast/css/fontloader-multiple-families.html [ Skip ]
+webkit.org/b/135390 fast/css/fontloader-page-cache.html [ Skip ]
+webkit.org/b/135390 fast/css/fontloader-svg-select.svg [ Skip ]
+webkit.org/b/135390 http/tests/webfont/fontloader-loading-attribute.html [ Skip ]
+
+# Various failures from the W3C CSS Shapes test suite import
+
+webkit.org/b/137788 css3/shapes/shape-outside/shape-image/shape-image-010.html [ ImageOnlyFailure ]
+webkit.org/b/137788 css3/shapes/shape-outside/shape-image/shape-image-024.html [ ImageOnlyFailure ]
+
+# border painting diff (Path vs. drawLine)
+webkit.org/b/136078 fast/borders/border-painting-dashed.html [ ImageOnlyFailure ]
+webkit.org/b/136078 fast/borders/border-painting-dotted.html [ ImageOnlyFailure ]
+webkit.org/b/136078 fast/borders/border-painting-double.html [ ImageOnlyFailure ]
+
+# official flexbox tests
+webkit.org/b/136754 css3/flexbox/csswg/css-box-justify-content.html [ ImageOnlyFailure ]
+webkit.org/b/143294 css3/flexbox/csswg/css-flexbox-height-animation-stretch.html [ Pass ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/css-flexbox-img-expand-evenly.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/flex-align-items-center.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/flex-flexitem-percentage-prescation.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/flex-items-flexibility.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/flex-lines/multi-line-wrap-reverse-column-reverse.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/flex-lines/multi-line-wrap-with-column-reverse.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/flexbox_flex-natural-mixed-basis-auto.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/flexbox_generated-container.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/flexbox_justifycontent-center-overflow.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/flexbox_min-height-auto.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/flexbox_min-width-auto.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/flexbox_stf-table-singleline.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/flexbox_visibility-collapse-line-wrapping.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/flexbox_visibility-collapse.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/order/order-with-column-reverse.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/ttwf-reftest-flex-direction-row-reverse.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/ttwf-reftest-flex-inline.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/ttwf-reftest-flex-order.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/ttwf-reftest-flex-wrap-reverse.html [ ImageOnlyFailure ]
+webkit.org/b/136754 css3/flexbox/csswg/ttwf-reftest-flex-wrap.html [ ImageOnlyFailure ]
+
+# grid layout tests
+webkit.org/b/165062 fast/css-grid-layout/grid-baseline.html [ ImageOnlyFailure ]
+webkit.org/b/165062 fast/css-grid-layout/grid-baseline-margins.html [ ImageOnlyFailure ]
+webkit.org/b/149891 imported/w3c/csswg-test/css-grid-1/grid-layout-properties.html [ Failure ]
+webkit.org/b/169271 imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-sizing-alignment-001.html [ ImageOnlyFailure ]
+
+# nth-child tests takes long time and Debug build sometimes timeouts because there are many test cases.
+webkit.org/b/137149 fast/selectors/nth-child-of-basics.html [ Slow ]
+
+# Promises/A+ 2.3.3 has many tests and it sometimes exceeds the time limit. 
+webkit.org/b/136878 js/promises-tests/promises-tests-2-3-3.html [ Slow ]
+
+# Skip W3C tests that are too slow in debug builds.
+webkit.org/b/148546 [ Debug ] imported/w3c/web-platform-tests/dom/interfaces.html [ Skip ]
+webkit.org/b/148546 [ Debug ] imported/w3c/web-platform-tests/dom/ranges/Range-compareBoundaryPoints.html [ Skip ]
+webkit.org/b/148546 [ Debug ] imported/w3c/web-platform-tests/dom/ranges/Range-comparePoint.html [ Skip ]
+webkit.org/b/148546 [ Debug ] imported/w3c/web-platform-tests/dom/ranges/Range-isPointInRange.html [ Skip ]
+webkit.org/b/148546 [ Debug ] imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html [ Skip ]
+webkit.org/b/148546 [ Debug ] imported/w3c/web-platform-tests/dom/ranges/Range-set.html [ Skip ]
+webkit.org/b/148736 [ Debug ] imported/w3c/web-platform-tests/html/dom/interfaces.html [ Skip ]
+webkit.org/b/148822 [ Debug ] imported/w3c/web-platform-tests/html/semantics/interfaces.html [ Skip ]
+webkit.org/b/154310 [ Debug ] imported/w3c/web-platform-tests/html/dom/reflection-embedded.html [ Skip ]
+webkit.org/b/154310 [ Debug ] imported/w3c/web-platform-tests/html/dom/reflection-forms.html [ Skip ]
+webkit.org/b/154310 [ Debug ] imported/w3c/web-platform-tests/html/dom/reflection-grouping.html [ Skip ]
+webkit.org/b/154310 [ Debug ] imported/w3c/web-platform-tests/html/dom/reflection-metadata.html [ Skip ]
+webkit.org/b/154310 [ Debug ] imported/w3c/web-platform-tests/html/dom/reflection-misc.html [ Skip ]
+webkit.org/b/154310 [ Debug ] imported/w3c/web-platform-tests/html/dom/reflection-obsolete.html [ Skip ]
+webkit.org/b/154310 [ Debug ] imported/w3c/web-platform-tests/html/dom/reflection-sections.html [ Skip ]
+webkit.org/b/154310 [ Debug ] imported/w3c/web-platform-tests/html/dom/reflection-tabular.html [ Skip ]
+webkit.org/b/154310 [ Debug ] imported/w3c/web-platform-tests/html/dom/reflection-text.html  [ Skip ]
+webkit.org/b/162517 [ Debug ] imported/w3c/web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm [ Skip ]
+
+# WPT tests that fail after doing full test repository reimport and need further investigation
+imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-document.htm [ Pass Failure Timeout ]
+imported/w3c/web-platform-tests/dom/nodes/Document-createElement-namespace.html [ Pass Failure ]
+imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html [ Pass Failure ]
+imported/w3c/web-platform-tests/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.sub.html [ Pass Failure ]
+
+# XMLHttpRequest tests requiring DTR/WTR to allow other URLs than localhost to not be blocked and be reachable (www2.localhost)
+imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-bogus.htm [ Skip ]
+imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-to-cors.htm [ Skip ]
+imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-to-non-cors.htm [ Skip ]
+# Failing assertion with dynamic message
+imported/w3c/web-platform-tests/XMLHttpRequest/responsexml-document-properties.htm [ Failure ]
+
+webkit.org/b/161088 imported/w3c/web-platform-tests/resource-timing/resource-timing.html [ Pass Failure ]
+webkit.org/b/168357 imported/w3c/web-platform-tests/resource-timing/rt-initiatorType-media.html [ Failure ]
+webkit.org/b/168448 imported/w3c/web-platform-tests/resource-timing/rt-shared-resource-in-frames.html [ Pass Failure ]
+webkit.org/b/168448 imported/w3c/web-platform-tests/resource-timing/rt-shared-resource-in-workers.html [ Pass Failure ]
+imported/w3c/web-platform-tests/resource-timing/test_resource_timing.html [ Pass Failure ]
+
+webkit.org/b/157068 imported/w3c/web-platform-tests/fetch/nosniff/importscripts.html [ Skip ]
+webkit.org/b/157145 imported/w3c/web-platform-tests/fetch/nosniff/stylesheet.html [ Failure Pass ]
+webkit.org/b/161312 imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context.html [ Failure Pass ]
+
+imported/w3c/web-platform-tests/fetch/api/cors/cors-origin.html [ DumpJSConsoleLogInStdErr ]
+imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.html [ DumpJSConsoleLogInStdErr ]
+imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-redirect.html [ DumpJSConsoleLogInStdErr ]
+imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-status.html [ DumpJSConsoleLogInStdErr ]
+imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-preflight.html [ DumpJSConsoleLogInStdErr ]
+
+webkit.org/b/159724 imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-post-upload.htm [ Failure Pass ]
+webkit.org/b/167380 imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html [ Failure Pass ]
+
+# Flaky tests due to always changing assertion error message
+imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/url-encoded.html [ Failure ]
+
+# New W3C ref tests that are failing.
+webkit.org/b/148856 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_initially_paused.html [ ImageOnlyFailure ]
+
+# @supports W3C Failures
+webkit.org/b/137568 css3/conditional/w3c/at-supports-014.html [ ImageOnlyFailure ]
+
+transitions/svg-text-shadow-transition.html [ Failure ]
+webkit.org/b/137883 transitions/background-transitions.html [ Failure Pass ]
+webkit.org/b/137883 transitions/border-radius-transition.html [ Failure Pass ]
+webkit.org/b/137883 transitions/change-values-during-transition.html [ Failure Pass ]
+webkit.org/b/137883 transitions/clip-transition.html [ Failure Pass ]
+webkit.org/b/137883 transitions/color-transition-all.html [ Failure Pass ]
+webkit.org/b/137883 transitions/color-transition-premultiplied.html [ Failure Pass ]
+webkit.org/b/137883 transitions/color-transition-rounding.html [ Failure Pass ]
+webkit.org/b/137883 transitions/created-while-suspended.html [ Failure Pass ]
+webkit.org/b/137883 transitions/cross-fade-background-image.html [ Pass Failure ]
+webkit.org/b/137883 transitions/cross-fade-border-image.html [ Pass Failure ]
+webkit.org/b/137883 transitions/cubic-bezier-overflow-color.html [ Pass Failure ]
+webkit.org/b/137883 transitions/cubic-bezier-overflow-length.html [ Pass Failure ]
+webkit.org/b/137883 transitions/cubic-bezier-overflow-shadow.html [ Pass Failure ]
+webkit.org/b/137883 transitions/cubic-bezier-overflow-svg-length.html [ Pass Failure ]
+webkit.org/b/137883 transitions/cubic-bezier-overflow-transform.html [ Pass Failure ]
+webkit.org/b/137883 transitions/delay.html [ Pass Failure ]
+webkit.org/b/137883 transitions/equivalent-background-image-no-transition.html [ Pass Failure ]
+webkit.org/b/137883 transitions/flex-transitions.html [ Pass Failure ]
+webkit.org/b/137883 transitions/interrupt-transform-transition.html [ Pass Failure ]
+webkit.org/b/137883 transitions/interrupt-zero-duration.html [ Pass Failure ]
+webkit.org/b/137883 transitions/interrupted-accelerated-transition.html [ Pass Failure ]
+webkit.org/b/137883 transitions/longhand-vs-shorthand-initial.html [ Pass Failure ]
+webkit.org/b/137883 transitions/mask-transitions.html [ Pass Failure ]
+webkit.org/b/137883 transitions/matched-transform-functions.html [ Pass Failure ]
+webkit.org/b/137883 transitions/mismatched-shadow-styles.html [ Pass Failure ]
+webkit.org/b/137883 transitions/mismatched-shadow-transitions.html [ Pass Failure ]
+webkit.org/b/137883 transitions/mixed-type.html [ Pass Failure ]
+webkit.org/b/137883 transitions/move-after-transition.html [ Pass Failure ]
+webkit.org/b/137883 transitions/multiple-background-size-transitions.html [ Pass Failure ]
+webkit.org/b/137883 transitions/multiple-background-transitions.html [ Pass Failure ]
+webkit.org/b/137883 transitions/multiple-mask-transitions.html [ Pass Failure ]
+webkit.org/b/137883 transitions/multiple-shadow-transitions.html [ Pass Failure ]
+webkit.org/b/137883 transitions/negative-delay.html [ Pass Failure ]
+webkit.org/b/137883 transitions/opacity-transition-zindex.html [ Pass Failure ]
+webkit.org/b/137883 transitions/repeated-firing-background-color.html [ Pass Failure ]
+webkit.org/b/137883 transitions/retargetted-transition.html [ Pass Failure ]
+webkit.org/b/137883 transitions/rounded-rect-becomes-non-renderable-while-transitioning.html [ Pass Failure ]
+webkit.org/b/137883 transitions/shorthand-border-transitions.html [ Pass Failure ]
+webkit.org/b/137883 transitions/shorthand-transitions.html [ Pass Failure ]
+webkit.org/b/137883 transitions/started-while-suspended.html [ Pass Failure ]
+webkit.org/b/137883 transitions/transition-shorthand-delay.html
+webkit.org/b/137883 transitions/transition-timing-function.html [ Pass Failure ]
+
+# W3C web platform tests infrastructure directories are skipped as they may contain html files
+imported/w3c/web-platform-tests/common [ Skip ]
+imported/w3c/web-platform-tests/fonts [ Skip ]
+imported/w3c/web-platform-tests/images [ Skip ]
+imported/w3c/web-platform-tests/tools [ Skip ]
+
+# Imported W3C canvas failed tests
+webkit.org/b/138676 imported/w3c/canvas/2d.pattern.image.null.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.pattern.image.incomplete.omitted.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.drawImage.null.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.path.rect.winding.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.drawImage.image.incomplete.omitted.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/security.pattern.canvas.fillStyle.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/security.reset.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/security.pattern.cross.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.pattern.image.incomplete.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.drawImage.animated.poster.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.imageData.put.null.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/security.pattern.image.strokeStyle.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.imageData.get.nonfinite.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.line.cap.round.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.gradient.object.invalidoffset.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/security.pattern.canvas.strokeStyle.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.gradient.radial.nonfinite.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.imageData.object.ctor.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.drawImage.incomplete.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.imageData.create2.nonfinite.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.composite.operation.clear.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.composite.operation.darker.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/security.drawImage.image.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.drawImage.broken.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.imageData.create1.zero.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.gradient.linear.nonfinite.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/security.drawImage.canvas.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/security.pattern.image.fillStyle.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.imageData.put.nonfinite.html [ Failure ]
+webkit.org/b/138676 imported/w3c/canvas/2d.pattern.image.incomplete.empty.html [ Failure ]
+
+# Imported W3C canvas tests need to be changed such that they can be automatically verified
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.fontface.repeat.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.fill.maxWidth.small.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.fill.rtl.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.stroke.basic.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.align.end.rtl.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.align.left.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.align.right.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/toDataURL.png.complexcolours.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.shadow.blur.high.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.space.collapse.nonspace.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.fontface.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.space.basic.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.scaled.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.measure.width.basic.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.fontface.notinpage.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.coordinatespace.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/toDataURL.jpeg.primarycolours.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.fill.maxWidth.fontface.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.fill.maxWidth.zero.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/security.dataURI.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.fill.maxWidth.bound.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.drawImage.animated.gif.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.pattern.animated.gif.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.pattern.modify.image1.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.pattern.modify.image2.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.align.center.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.fill.basic.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.baseline.alphabetic.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.kern.consistent.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.fill.maxWidth.large.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/toDataURL.jpeg.alpha.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/toDataURL.png.primarycolours.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.shadow.blur.low.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.align.start.ltr.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.drawImage.animated.apng.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.align.start.rtl.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/2d.text.draw.align.end.ltr.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/toDataURL.jpeg.quality.basic.html [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/canvas_colorsandstyles_createlineargradient_001.htm [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/canvas_compositing_globalcompositeoperation_001.htm [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/canvas_complexshapes_beziercurveto_001.htm [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/canvas_shadows_001.htm [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/canvas_state_restore_001.htm [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/canvas_text_font_001.htm [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/canvas_complexshapes_arcto_001.htm [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/canvas_linestyles_linecap_001.htm [ Skip ]
+webkit.org/b/138676 imported/w3c/canvas/canvas_transformations_scale_001.htm [ Skip ]
+
+webkit.org/b/139595 http/tests/xmlhttprequest/workers/abort-exception-assert.html [ Pass Failure Timeout ]
+
+# Debug assertions are tracked as &lt;rdar://problem/18216390&gt;.
+[ Debug ] fast/history/go-back-to-iframe-with-plugin.html [ Skip ]
+[ Debug ] fast/history/history-back-while-pdf-in-pagecache.html [ Skip ]
+webkit.org/b/121628 [ Release ] fast/history/history-back-while-pdf-in-pagecache.html [ Pass ImageOnlyFailure ]
+[ Debug ] fullscreen/full-screen-iframe-legacy.html [ Pass Crash ]
+webkit.org/b/151488 [ Debug ] imported/blink/editing/selection/deleteFromDocument-undo-crash.html [ Skip ]
+
+webkit.org/b/139634 [ Debug ] fast/selectors/matches-backtracking.html [ Slow ]
+webkit.org/b/139634 [ Debug ] fast/selectors/nth-child-of-register-requirement.html [ Slow ]
+webkit.org/b/139634 [ Debug ] fast/selectors/not-backtracking.html [ Slow ]
+
+webkit.org/b/61932 [ Debug ] jquery/manipulation.html [ Slow ]
+[ Debug ] jquery/core.html [ Slow ]
+[ Debug ] jquery/event.html [ Slow ]
+[ Debug ] jquery/offset.html [ Slow ]
+[ Debug ] jquery/traversing.html [ Slow ]
+
+webkit.org/b/139638 [ Debug ] svg/filters/svg-deeply-nested-crash.html [ Slow ]
+webkit.org/b/126420 svg/custom/resource-invalidation-crash.svg [ Failure Pass ]
+
+webkit.org/b/139639 [ Debug ] cssom/non-subpixel-scroll-top-left-values.html [ Slow ]
+
+webkit.org/b/139640 [ Debug ] webgl/1.0.2/conformance/glsl/misc/shader-uniform-packing-restrictions.html [ Slow ]
+
+[ Debug ] fast/workers/worker-cloneport.html [ Slow ]
+
+# Imported W3C HTML/DOM ref tests that are failing.
+imported/w3c/web-platform-tests/html/dom/elements/global-attributes/dir_auto-pre-N-between-Rs.html [ ImageOnlyFailure ]
+imported/w3c/web-platform-tests/html/dom/elements/global-attributes/dir_auto-textarea-N-between-Rs.html [ ImageOnlyFailure ]
+imported/w3c/web-platform-tests/html/dom/elements/global-attributes/dir_auto-textarea-script-N-between-Rs.html [ ImageOnlyFailure ]
+imported/w3c/web-platform-tests/html/dom/elements/global-attributes/style-01.html [ ImageOnlyFailure ]
+
+imported/w3c/web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/010.html [ Failure Timeout ]
+imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html [ Failure ]
+
+# Imported Mozilla SVG tests
+webkit.org/b/5968 imported/mozilla/svg/linearGradient-basic-03.svg [ ImageOnlyFailure ]
+webkit.org/b/32177 imported/mozilla/svg/as-image/background-image-rect-1png.html [ ImageOnlyFailure ]
+webkit.org/b/32177 imported/mozilla/svg/as-image/background-image-rect-2.html [ ImageOnlyFailure ]
+webkit.org/b/32177 imported/mozilla/svg/text-white-space-01.svg [ ImageOnlyFailure ]
+webkit.org/b/72401 imported/mozilla/svg/pathLength-01.svg [ ImageOnlyFailure ]
+webkit.org/b/112032 imported/mozilla/svg/text-layout-01.svg [ ImageOnlyFailure ]
+webkit.org/b/139107 imported/mozilla/svg/clip-02a.svg [ ImageOnlyFailure ]
+webkit.org/b/139107 imported/mozilla/svg/clip-02b.svg [ ImageOnlyFailure ]
+webkit.org/b/139115 imported/mozilla/svg/dynamic-conditions-03.svg [ ImageOnlyFailure ]
+webkit.org/b/139115 imported/mozilla/svg/svg-integration/dynamic-conditions-outer-svg-02.xhtml [ ImageOnlyFailure ]
+webkit.org/b/139116 imported/mozilla/svg/conditions-07.svg [ ImageOnlyFailure ]
+webkit.org/b/139117 imported/mozilla/svg/conditions-08.svg [ ImageOnlyFailure ]
+webkit.org/b/139118 imported/mozilla/svg/cssComment-in-attribute-01.svg [ ImageOnlyFailure ]
+imported/mozilla/svg/dynamic-conditions-08.svg [ Pass ImageOnlyFailure ]
+imported/mozilla/svg/dynamic-conditions-12.svg [ Pass ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-x-rtl.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-x-holes-rtl.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-x-multiple-dx-anchor-end-bidi.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-x-bidi.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-x-holes-bidi.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-x-holes-multiple-dx-rtl.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-x-multiple-dx-anchor-end-rtl.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-x-anchor-end-bidi.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-x-anchor-end-rtl.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-x-multiple-dx-bidi.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-x-multiple-dx-rtl.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/simple-multiple-dx-anchor-end-bidi.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/simple-multiple-dx-anchor-end-rtl.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/simple-multiple-dx-rtl.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/simple-multiple-dx-bidi.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/simple-multiple-dx-anchor-middle-rtl.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-chunks-multiple-dx-bidi.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-chunks-multiple-dx-different-anchor-bidi.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-chunks-multiple-dx-different-anchor-rtl.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-chunks-multiple-dx-rtl.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-chunks-rtl.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-chunks-different-anchor-rtl.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-chunks-different-anchor-bidi.svg [ ImageOnlyFailure ]
+webkit.org/b/139119 imported/mozilla/svg/text/multiple-chunks-bidi.svg [ ImageOnlyFailure ]
+webkit.org/b/139132 imported/mozilla/svg/dynamic-switch-01.svg [ ImageOnlyFailure ]
+webkit.org/b/139154 imported/mozilla/svg/dynamic-marker-01.svg [ ImageOnlyFailure ]
+webkit.org/b/139155 imported/mozilla/svg/dynamic-textPath-01.svg [ ImageOnlyFailure ]
+webkit.org/b/139155 imported/mozilla/svg/dynamic-textPath-02.svg [ ImageOnlyFailure ]
+webkit.org/b/139155 imported/mozilla/svg/dynamic-textPath-03.svg [ ImageOnlyFailure ]
+webkit.org/b/139155 imported/mozilla/svg/dynamic-pattern-01.svg [ ImageOnlyFailure ]
+webkit.org/b/139155 imported/mozilla/svg/dynamic-use-01.svg [ ImageOnlyFailure ]
+webkit.org/b/139155 imported/mozilla/svg/dynamic-use-03.svg [ ImageOnlyFailure ]
+webkit.org/b/139155 imported/mozilla/svg/dynamic-use-07.svg [ ImageOnlyFailure ]
+webkit.org/b/139183 imported/mozilla/svg/text/pseudo-first-letter.svg [ ImageOnlyFailure ]
+webkit.org/b/139184 imported/mozilla/svg/text/pseudo-first-line.svg [ ImageOnlyFailure ]
+webkit.org/b/139184 imported/mozilla/svg/text/simple-multiline-anchor-end.svg [ ImageOnlyFailure ]
+webkit.org/b/139184 imported/mozilla/svg/text/simple-multiline-number.svg [ ImageOnlyFailure ]
+webkit.org/b/139184 imported/mozilla/svg/text/simple-multiline-pc.svg [ ImageOnlyFailure ]
+webkit.org/b/139184 imported/mozilla/svg/text/simple-multiline.svg [ ImageOnlyFailure ]
+webkit.org/b/139186 imported/mozilla/svg/text/pseudo-first-line-2.svg [ ImageOnlyFailure ]
+webkit.org/b/139186 imported/mozilla/svg/text/textpath-multiline.svg [ ImageOnlyFailure ]
+webkit.org/b/139186 imported/mozilla/svg/text/textpath-multiline-2.svg [ ImageOnlyFailure ]
+webkit.org/b/139186 imported/mozilla/svg/text/ignore-text-align-2.svg [ ImageOnlyFailure ]
+webkit.org/b/139192 imported/mozilla/svg/smil/transform/rotate-angle-4.svg [ ImageOnlyFailure ]
+webkit.org/b/139192 imported/mozilla/svg/smil/transform/rotate-angle-5.svg [ ImageOnlyFailure ]
+webkit.org/b/139199 imported/mozilla/svg/as-image/img-content-outside-viewBox-1.html [ ImageOnlyFailure ]
+webkit.org/b/131354 imported/mozilla/svg/blend-color.svg [ ImageOnlyFailure ]
+webkit.org/b/131354 imported/mozilla/svg/blend-difference-stacking.html [ ImageOnlyFailure ]
+webkit.org/b/131354 imported/mozilla/svg/blend-hard-light.svg [ ImageOnlyFailure ]
+webkit.org/b/131354 imported/mozilla/svg/blend-hue.svg [ ImageOnlyFailure ]
+webkit.org/b/131354 imported/mozilla/svg/blend-luminosity.svg [ ImageOnlyFailure ]
+webkit.org/b/131354 imported/mozilla/svg/blend-saturation.svg [ ImageOnlyFailure ]
+webkit.org/b/139210 imported/mozilla/svg/text/textLength-5.svg [ ImageOnlyFailure ]
+webkit.org/b/139210 imported/mozilla/svg/text/textLength-6.svg [ ImageOnlyFailure ]
+webkit.org/b/139237 imported/mozilla/svg/filters/feComposite-1.svg [ ImageOnlyFailure ]
+webkit.org/b/139258 imported/mozilla/svg/text-layout-05.svg [ ImageOnlyFailure ]
+webkit.org/b/139266 imported/mozilla/svg/text/dynamic-multiple-x.svg [ ImageOnlyFailure ]
+webkit.org/b/139282 imported/mozilla/svg/image/image-filter-01.svg [ ImageOnlyFailure ]
+webkit.org/b/139322 imported/mozilla/svg/text/dynamic-non-scaling-stroke.svg [ ImageOnlyFailure ]
+webkit.org/b/139407 imported/mozilla/svg/as-image/border-image-simple-1.html [ ImageOnlyFailure ]
+webkit.org/b/139412 imported/mozilla/svg/filters/svg-filter-chains/clip-input.svg [ ImageOnlyFailure ]
+webkit.org/b/139412 imported/mozilla/svg/filters/svg-filter-chains/clip-output.svg [ ImageOnlyFailure ]
+webkit.org/b/139414 imported/mozilla/svg/filters/feColorMatrix-1.svg [ ImageOnlyFailure ]
+webkit.org/b/139414 imported/mozilla/svg/filters/feColorMatrix-2.svg [ ImageOnlyFailure ]
+webkit.org/b/139414 imported/mozilla/svg/filters/feConvolveMatrix-bias-01.svg [ ImageOnlyFailure ]
+webkit.org/b/139417 imported/mozilla/svg/filters/filter-marked-line-02.svg [ ImageOnlyFailure ]
+webkit.org/b/139417 imported/mozilla/svg/filters/filter-marked-line-03.svg [ ImageOnlyFailure ]
+webkit.org/b/139417 imported/mozilla/svg/filters/filter-marked-line-04.svg [ ImageOnlyFailure ]
+webkit.org/b/139417 imported/mozilla/svg/filters/filter-marked-line-05.svg [ ImageOnlyFailure ]
+webkit.org/b/139417 imported/mozilla/svg/filters/filter-marked-line-06.svg [ ImageOnlyFailure ]
+webkit.org/b/139417 imported/mozilla/svg/filters/filter-marked-line-07.svg [ ImageOnlyFailure ]
+webkit.org/b/139417 imported/mozilla/svg/filters/filter-marked-line-08.svg [ ImageOnlyFailure ]
+webkit.org/b/139417 imported/mozilla/svg/filters/filter-marked-line-09.svg [ ImageOnlyFailure ]
+
+[ Debug ] fast/loader/document-with-fragment-url-3.html [ Pass Timeout ]
+[ Debug ] fast/loader/document-with-fragment-url-4.html [ Pass Timeout ]
+
+webkit.org/b/110546 [ Debug ] fast/parser/document-write-fighting-eof.html [ Skip ]
+webkit.org/b/110546 [ Debug ] fast/parser/document-write-partial-entity-before-load.html [ Skip ]
+
+webkit.org/b/85902 [ Debug ] fast/overflow/lots-of-sibling-inline-boxes.html [ Slow ]
+webkit.org/b/121452 [ Debug ] fast/frames/lots-of-objects.html [ Slow ]
+webkit.org/b/121452 [ Debug ] fast/frames/lots-of-iframes.html [ Slow ]
+webkit.org/b/135053 [ Debug ] html5lib/webkit-resumer.html [ Slow ]
+[ Debug ] js/dfg-double-vote-fuzz.html [ Slow ]
+[ Debug ] js/dom/string-replacement-outofmemory.html [ Slow ]
+[ Debug ] webgl/1.0.2/conformance/uniforms/gl-uniform-arrays.html [ Slow ]
+[ Debug ] js/dfg-osr-entry-hoisted-clobbered-structure-check.html [ Slow ]
+[ Debug ] editing/selection/move-by-character-brute-force.html [ Slow ]
+[ Debug ] fast/workers/dedicated-worker-lifecycle.html [ Slow ]
+[ Debug ] js/dom/random-array-gc-stress.html [ Slow ]
+[ Debug ] editing/selection/move-by-word-visually-crash-test-5.html [ Slow ]
+[ Debug ] editing/selection/caret-at-bidi-boundary.html [ Slow ]
+[ Debug ] js/dom/line-column-numbers.html [ Slow ]
+[ Debug ] css3/flexbox/multiline-justify-content.html [ Slow ]
+[ Debug ] accessibility/table-sections.html [ Slow ]
+
+webkit.org/b/142175 js/promises-tests/promises-tests-2-1-2.html [ Pass Timeout ]
+
+webkit.org/b/139840 fast/xmlhttprequest/xmlhttprequest-recursive-sync-event.html [ Pass Failure ]
+
+webkit.org/b/140043 js/dom/Promise.html [ Pass Failure ]
+
+webkit.org/b/141267 http/tests/misc/detached-frame-console.html [ Pass Failure ]
+
+# Aborting application cache abort tests are intrinsically flaky.
+webkit.org/b/87633 http/tests/appcache/abort-cache-onchecking-manifest-404.html [ Pass Failure ]
+webkit.org/b/87633 http/tests/appcache/abort-cache-ondownloading-resource-404.html [ Pass Failure ]
+webkit.org/b/87633 http/tests/appcache/deferred-events-delete-while-raising-timer.html [ Pass Failure ]
+webkit.org/b/87633 http/tests/appcache/deferred-events-delete-while-raising.html [ Pass Failure ]
+webkit.org/b/87633 http/tests/appcache/deferred-events.html [ Pass Failure ]
+
+webkit.org/b/147520 http/tests/appcache/fail-on-update.html [ Pass Failure ]
+webkit.org/b/147520 http/tests/appcache/fail-on-update-2.html [ Pass Failure ]
+
+webkit.org/b/141370 http/tests/security/appcache-in-private-browsing.html [ Pass Failure ]
+
+# The current expectations for this test only make sense for WebKit on iOS; other platforms can have very different behaviors.
+webkit.org/b/141488 fast/replaced/pdf-as-object-and-embed.html [ Skip ]
+
+webkit.org/b/141695 [ Debug ] fast/selectors/nth-last-child-of-register-requirement.html [ Slow ]
+[ Debug ] fast/selectors/case-insensitive-attribute-register-requirement-1.html [ Slow ]
+
+# Content extensions are Mac-WK2-only for now
+http/tests/contentextensions [ Skip ]
+http/tests/websocket/tests/hybi/contentextensions [ Skip ]
+
+webkit.org/b/149072 svg/animations/svgboolean-animation-1.html [ Pass Failure ]
+
+webkit.org/b/143085 media/track/track-mode.html [ Pass Timeout ]
+
+# In ES6, Object type restrictions on a first parameter of several Object.* functions are relaxed.
+webkit.org/b/142937 ietestcenter/Javascript/15.2.3.2-1.html [ Failure ]
+webkit.org/b/142937 ietestcenter/Javascript/15.2.3.3-1.html [ Failure ]
+webkit.org/b/142937 ietestcenter/Javascript/15.2.3.4-1.html [ Failure ]
+webkit.org/b/142937 ietestcenter/Javascript/15.2.3.8-1.html [ Failure ]
+webkit.org/b/142937 ietestcenter/Javascript/15.2.3.9-1.html [ Failure ]
+webkit.org/b/142937 ietestcenter/Javascript/15.2.3.10-1.html [ Failure ]
+webkit.org/b/142937 ietestcenter/Javascript/15.2.3.11-1.html [ Failure ]
+webkit.org/b/142937 ietestcenter/Javascript/15.2.3.12-1.html [ Failure ]
+webkit.org/b/142937 ietestcenter/Javascript/15.2.3.13-1.html [ Failure ]
+webkit.org/b/142937 ietestcenter/Javascript/15.2.3.14-1-1.html [ Failure ]
+webkit.org/b/142937 ietestcenter/Javascript/15.2.3.14-1-2.html [ Failure ]
+webkit.org/b/142937 ietestcenter/Javascript/15.2.3.14-1-3.html [ Failure ]
+
+[ Debug ] js/regress-141098.html [ Slow ]
+
+# IDBVersionChangeEvent tests need to be rewritten to use event constructors instead of createEvent,
+# after we implement the IDBVersionChangeEvent constructor.
+webkit.org/b/145390 storage/indexeddb/events.html [ Failure ]
+webkit.org/b/145390 storage/indexeddb/events-private.html [ Failure ]
+webkit.org/b/145390 storage/indexeddb/removed.html [ Failure ]
+webkit.org/b/145390 storage/indexeddb/removed-private.html [ Failure ]
+
+webkit.org/b/145390 storage/indexeddb/deleteIndex-bug110792-private.html [ Pass Failure ]
+webkit.org/b/145390 storage/indexeddb/deleteIndex-bug110792.html [ Pass Failure ]
+
+# DumpRenderTree does not allow GIFs to animate, thus animated GIF tests don't work in WebKit1.
+fast/images/animated-gif-no-layout.html [ ImageOnlyFailure ]
+fast/images/gif-loop-count.html [ ImageOnlyFailure ]
+
+webkit.org/b/146182 editing/selection/leak-document-with-selection-inside.html [ Pass Failure ]
+
+# Media Sessions is not yet enabled by default: ENABLE(MEDIA_SESSION)
+media/session [ Skip ]
+
+# WebRTC backend not enabled by default on Mac/iOS release bots.
+# GTK enables some of this tests on their TestExpectations file.
+[ Release ] webrtc [ Skip ]
+
+[ Debug ] webrtc/audio-peer-connection-webaudio.html [ Failure ]
+fast/mediastream/getUserMedia-webaudio.html [ Skip ]
+fast/mediastream/RTCPeerConnection-AddRemoveStream.html [ Skip ]
+fast/mediastream/RTCPeerConnection-closed-state.html [ Skip ]
+fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html [ Skip ]
+fast/mediastream/RTCPeerConnection-more-media-to-negotiate.html [ Skip ]
+fast/mediastream/RTCPeerConnection-onnegotiationneeded.html [ Skip ]
+fast/mediastream/RTCPeerConnection-overloaded-operations-params.html [ Skip ]
+fast/mediastream/RTCRtpSender-replaceTrack.html [ Skip ]
+fast/mediastream/RTCPeerConnection-icecandidate-event.html [ Pass Failure ]
+
+# See webkit.org/b/168736
+fast/mediastream/RTCPeerConnection-addIceCandidate.html [ Failure  ]
+imported/w3c/web-platform-tests/webrtc/datachannel-emptystring.html [ Failure  ]
+imported/w3c/web-platform-tests/webrtc/no-media-call.html [ Failure  ]
+imported/w3c/web-platform-tests/webrtc/promises-call.html [ Failure  ]
+
+# Only iOS WK1 has testRunner.setPagePaused.
+fast/dom/timer-fire-after-page-pause.html [ Skip ]
+
+webkit.org/b/148026 [ Debug ] animations/restart-after-scroll.html [ Skip ]
+
+webkit.org/b/148650 fast/repaint/add-table-overpaint.html [ Pass Failure ]
+
+webkit.org/b/148801 imported/w3c/css/css-color-3/t422-rgba-onscreen-b.xht [ ImageOnlyFailure ]
+webkit.org/b/148801 imported/w3c/css/css-color-3/t422-rgba-onscreen-multiple-boxes-c.xht [ ImageOnlyFailure ]
+webkit.org/b/148801 imported/w3c/css/css-color-3/t425-hsla-onscreen-multiple-boxes-c.xht [ ImageOnlyFailure ]
+
+# Many CSS WG multicol-1 tests fail with 1px differences
+webkit.org/b/148806 imported/w3c/css/css-multicol-1/multicol-count-large-001.xht [ ImageOnlyFailure ]
+webkit.org/b/148806 imported/w3c/css/css-multicol-1/multicol-count-large-002.xht [ ImageOnlyFailure ]
+webkit.org/b/148806 imported/w3c/css/css-multicol-1/multicol-rule-fraction-003.xht [ ImageOnlyFailure ]
+webkit.org/b/148806 imported/w3c/css/css-multicol-1/multicol-count-computed-002.xht [ ImageOnlyFailure ]
+
+# http://www.w3.org/TR/css3-multicol/#column-span0
+# A spanning element takes up more space than the element would take up otherwise.
+# When space is limited, it may be impossible to find room for the spanning element.
+# In these cases, user agents may treat the element as if ‘none’ had been specified on this property.
+imported/w3c/css/css-multicol-1/multicol-span-all-child-002.xht [ WontFix ]
+
+webkit.org/b/148818 imported/w3c/css/css-multicol-1/multicol-fill-auto-block-children-002.xht [ ImageOnlyFailure ] # only scrollbar
+webkit.org/b/148818 imported/w3c/css/css-multicol-1/multicol-nested-column-rule-001.xht [ ImageOnlyFailure ] # only scrollbar
+
+webkit.org/b/148812 imported/w3c/css/css-multicol-1/multicol-width-small-001.xht [ ImageOnlyFailure ]
+webkit.org/b/148814 imported/w3c/css/css-multicol-1/multicol-break-001.xht [ ImageOnlyFailure ]
+webkit.org/b/148816 imported/w3c/css/css-multicol-1/multicol-rule-004.xht [ ImageOnlyFailure ]
+webkit.org/b/148823 imported/w3c/css/css-multicol-1/multicol-span-all-margin-nested-003.xht [ ImageOnlyFailure ]
+
+# Causes the following test to be flaky.
+webkit.org/b/148950 imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified.sub.html [ Skip ]
+
+# FIXME: The following failures need individual bugs.
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-inherit-003.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-inherit-004.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-span-all-margin-002.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-span-all-margin-bottom-001.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-span-all-margin-nested-002.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-table-cell-vertical-align-001.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-count-computed-001.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-width-ems-001.xht [ ImageOnlyFailure ] # Could be a bad test?
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-nested-margin-002.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-nested-margin-003.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-br-inside-avoidcolumn-001.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-nested-margin-004.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-nested-margin-005.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-span-all-margin-nested-001.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-fill-auto.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-zero-height-001.xht [ ImageOnlyFailure ]
+webkit.org/b/148805 imported/w3c/css/css-multicol-1/multicol-span-all-child-001.xht [ ImageOnlyFailure ]
+
+webkit.org/b/148884 imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection.html [ Pass Failure ]
+
+webkit.org/b/148922 svg/as-object/svg-in-object-dynamic-attribute-change.html [ Pass ImageOnlyFailure ]
+webkit.org/b/148925 svg/dom/svg-root-lengths.html [ Pass Failure ]
+
+webkit.org/b/150541 imported/blink/transitions/unprefixed-perspective.html [ Pass Failure Timeout ]
+
+# Subpixel table failures.
+# This test makes no sense (ceil on table and expect the same result)
+fast/text/hyphen-min-preferred-width.html [ ImageOnlyFailure ]
+# These fail the same way on FF.
+fast/css-intrinsic-dimensions/height-css-tables.html [ ImageOnlyFailure ]
+fast/sub-pixel/input-caret-on-subpixel-bound.html [ ImageOnlyFailure ]
+fast/css-intrinsic-dimensions/height-tables.html [ ImageOnlyFailure ]
+# integral hittest vs. subpixel table
+fast/table/hittest-tablecell-with-borders-right-edge.html [ Pass Failure ]
+fast/table/hittest-tablecell-right-edge.html [ Pass Failure ]
+fast/css/appearance-apple-pay-button.html [ ImageOnlyFailure ]
+
+webkit.org/b/150598 fast/repaint/table-hover-on-link.html [ Pass Failure ]
+
+webkit.org/b/151949 streams/reference-implementation/pipe-to.html [ Failure ]
+webkit.org/b/154687 streams/pipe-to.html [ Slow ]
+
+webkit.org/b/52185 fast/css/vertical-align-baseline-rowspan-010.html [ ImageOnlyFailure ]
+
+webkit.org/b/155634 http/tests/security/shape-image-cors-redirect-error-message-logging-1.html [ Pass Failure ]
+webkit.org/b/155634 http/tests/security/shape-image-cors-redirect-error-message-logging-2.html [ Pass Failure ]
+webkit.org/b/155634 http/tests/security/shape-image-cors-redirect-error-message-logging-3.html [ Pass Failure ]
+webkit.org/b/155634 http/tests/security/shape-image-cors-redirect-error-message-logging-4.html [ Pass Failure ]
+
+# Content Security Policy failures
+webkit.org/b/111869 http/tests/security/contentSecurityPolicy/eval-blocked-and-sends-report.html
+webkit.org/b/153148 http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode-and-sends-report.php
+webkit.org/b/153150 http/tests/security/contentSecurityPolicy/1.1/child-src/frame-fires-load-event-when-blocked.html
+webkit.org/b/153150 http/tests/security/contentSecurityPolicy/1.1/child-src/frame-fires-load-event-when-redirect-blocked.html
+webkit.org/b/153152 http/tests/security/contentSecurityPolicy/manifest-src-allowed.html # Needs testRunner.getManifestThen()
+webkit.org/b/153152 http/tests/security/contentSecurityPolicy/manifest-src-blocked.html # Needs testRunner.getManifestThen()
+webkit.org/b/153155 http/tests/security/contentSecurityPolicy/1.1/scripthash-basic-blocked-error-event.html
+webkit.org/b/153155 http/tests/security/contentSecurityPolicy/1.1/stylehash-basic-blocked-error-event.html
+webkit.org/b/153155 http/tests/security/contentSecurityPolicy/1.1/stylehash-svg-style-basic-blocked-error-event.html
+webkit.org/b/153155 http/tests/security/contentSecurityPolicy/1.1/stylenonce-basic-blocked-error-event.html
+webkit.org/b/153155 http/tests/security/contentSecurityPolicy/1.1/stylenonce-svg-style-basic-blocked-error-event.html
+webkit.org/b/153155 http/tests/security/contentSecurityPolicy/style-src-blocked-error-event.html
+webkit.org/b/153159 http/tests/security/contentSecurityPolicy/image-document-default-src-none.html [ Failure ]
+webkit.org/b/153160 http/tests/security/contentSecurityPolicy/object-src-does-not-affect-child.html [ Failure ]
+webkit.org/b/153160 http/tests/security/contentSecurityPolicy/plugin-in-iframe-with-csp.html [ Failure ]
+webkit.org/b/153161 http/tests/security/contentSecurityPolicy/register-bypassing-scheme-partial.html [ Failure ]
+webkit.org/b/153162 http/tests/security/contentSecurityPolicy/report-multiple-violations-01.php [ Failure ]
+webkit.org/b/153162 http/tests/security/contentSecurityPolicy/report-multiple-violations-02.php [ Failure ]
+webkit.org/b/154203 http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-overrides-xfo.html
+webkit.org/b/154522 http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-base-uri-deny.html
+webkit.org/b/155132 http/tests/security/contentSecurityPolicy/video-with-https-url-allowed-by-csp-media-src-star.html [ Failure ]
+http/tests/security/contentSecurityPolicy/script-src-blocked-error-event.html [ Pass Failure ]
+webkit.org/b/158480 http/tests/websocket/tests/hybi/upgrade-simple-ws.html [ Skip ]
+
+# These state object tests purposefully stress a resource limit, and take multiple seconds to run.
+loader/stateobjects/pushstate-size-iframe.html [ Slow ]
+loader/stateobjects/pushstate-size.html [ Slow ]
+loader/stateobjects/replacestate-size-iframe.html [ Slow ]
+loader/stateobjects/replacestate-size.html [ Slow ]
+
+# outline: auto -focusring.
+imported/blink/fast/multicol/outlines-at-column-boundaries.html [ ImageOnlyFailure ]
+fast/multicol/multicol-with-child-renderLayer-for-input.html [ ImageOnlyFailure ]
+
+# Assertion failure in MessagePort::contextDestroyed, usually attributed to later tests
+webkit.org/b/94458 http/tests/security/MessagePort/event-listener-context.html [ Skip ]
+
+########################################
+### START OF IndexedDB failures
+
+# Times out for unexplored reasons                                                             
+storage/indexeddb/database-quota.html [ Skip ]
+storage/indexeddb/database-quota-private.html [ Skip ]
+
+# Modern IDB page cache interaction not yet sorted out
+fast/history/page-cache-indexed-closed-db.html [ Failure ]
+
+# IDB is currently disabled in private browsing.
+# With Modern IDB and the in-memory backing store, that should change.
+storage/indexeddb/open-db-private-browsing.html [ Failure ]
+
+# Relies on internals.observeGC
+storage/indexeddb/connection-leak-private.html [ Skip ]
+storage/indexeddb/connection-leak.html [ Skip ]
+storage/indexeddb/cursor-leak-private.html [ Failure ]
+storage/indexeddb/cursor-leak.html [ Skip ]
+storage/indexeddb/cursor-request-cycle-private.html [ Failure ]
+storage/indexeddb/cursor-request-cycle.html [ Skip ]
+storage/indexeddb/delete-closed-database-object-private.html [ Skip ]
+storage/indexeddb/delete-closed-database-object.html [ Skip ]
+storage/indexeddb/request-leak-private.html [ Failure ]
+storage/indexeddb/request-leak.html [ Failure ]
+
+webkit.org/b/154619 storage/indexeddb/odd-strings.html [ Skip ]
+
+# IDB workers test fails - The worker's attempt to open the database creates a new UniqueIDBDatabase
+# Could be a SessionID difference? Something is giving the worker a different namespace.
+storage/indexeddb/dont-commit-on-blocked-private.html [ Failure ]
+
+# Test's behavior specific to Legacy IDB with LevelDB backend
+# Modern IDB is spec-compliant without supporting this behavior
+storage/indexeddb/transaction-starvation.html [ Skip ]
+
+# Times out because we only consider &quot;onblocked&quot;'ing one test at a time,
+# which is allowed by the spec and is what Firefox and Edge do.
+storage/indexeddb/deletedatabase-delayed-by-versionchange.html [ Skip ]
+
+# We allowed disabling IDB at runtime to support polyfills in WK1 before Modern IDB.
+# It's unclear if we need to continue supporting this.
+storage/indexeddb/properties-disabled-at-runtime.html [ Failure ]
+
+# In debug builds, runs too slowly for the test timeout.
+[ Debug ] imported/w3c/web-platform-tests/IndexedDB/idbindex-multientry-big.htm [ Failure ]
+
+# Test is crashing
+imported/w3c/web-platform-tests/IndexedDB/keypath-exceptions.htm [ Skip ]
+
+# SQLite backend tests that timeout
+storage/indexeddb/modern/transaction-scheduler-1.html [ Skip ]
+storage/indexeddb/modern/transaction-scheduler-2.html [ Skip ]
+storage/indexeddb/modern/transaction-scheduler-5.html [ Skip ]
+storage/indexeddb/modern/transaction-scheduler-6.html [ Skip ]
+storage/indexeddb/transaction-coordination-within-database.html [ Skip ]
+
+# These two IDB tests are, by their nature, very slow
+# Skip these until we have a fix for webkit.org/b/155041
+storage/indexeddb/modern/exceed-open-file-limit.html [ Skip ]
+webkit.org/b/155028 storage/indexeddb/modern/256-open-databases.html [ Skip ]
+
+### END OF IndexedDB failures
+########################################
+
+# RTL Scrollbars are only implemented for GTK+ and certain versions of OS X
+fast/scrolling/rtl-scrollbars.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-simple.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-contents.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-padding.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-simple.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-elementFromPoint.html [ Failure ]
+fast/scrolling/rtl-scrollbars-overflow-position-absolute.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-overflow-text-selection-scrolled.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-position-absolute.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-position-fixed.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-text-selection-scrolled.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-text-selection.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-iframe-offset.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-elementFromPoint-static.html [ Failure ]
+fast/scrolling/rtl-scrollbars-iframe-scrolled.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-positioning.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-listbox-scroll.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-listbox-select-left.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-listbox-select-right.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-listbox-simple.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-listbox.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-positioned-intersect-scrollbars.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement.html [ Skip ]
+fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement-2.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-alternate-iframe-body-dir-attr-does-not-update-scrollbar-placement.html [ ImageOnlyFailure ]
+fast/scrolling/rtl-scrollbars-animation-property.html [ Failure ]
+
+webkit.org/b/157849 fast/frames/crash-during-iframe-load-stop.html [ Pass Timeout ]
+
+webkit.org/b/158085 http/tests/css/shared-stylesheet-mutation.html [ Pass Failure ]
+
+# PiP tests are only relevant on macOS Sierra and newer.
+media/click-placeholder-not-pausing.html [ WontFix ]
+media/controls/picture-in-picture.html [ WontFix ]
+media/controls/pip-placeholder-without-video-controls.html [ WontFix ]
+media/element-containing-pip-video-going-into-fullscreen.html [ WontFix ]
+media/fullscreen-api-enabled-media-with-presentation-mode.html [ WontFix ]
+media/fullscreen-video-going-into-pip.html [ WontFix ]
+media/navigate-with-pip-should-not-crash.html [ WontFix ]
+media/pip-video-going-into-fullscreen.html [ WontFix ]
+media/video-contained-in-fullscreen-element-going-into-pip.html [ WontFix ]
+
+webkit.org/b/159370 [ Debug ] fast/history/page-cache-destroy-document.html [ Skip ]
+
+# This test is way too slow for debug.
+[ Debug ] workers/bomb.html [ Skip ]
+# This test is just way too slow.
+workers/bomb-with-v8.html [ Skip ]
+
+# WebCryptoAPI tests that take too long to complete
+imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.worker.html [ Skip ]
+imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.html [ Slow ]
+imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html [ Slow ]
+imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.html [ Skip ]
+imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.html [ Slow ]
+imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html [ Skip ]
+imported/w3c/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.worker.html [ Slow ]
+imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_rsa_importKey.html [ Slow ]
+
+# WebCryptoAPI tests that we haven't fully supported yet
+imported/w3c/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.html [ Skip ]
+
+# WebCryptoAPI superset tests
+imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.html [ Skip ]
+imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes.html [ Skip ]
+imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.worker.html [ Skip ]
+imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures.worker.html [ Skip ]
+
+editing/deleting/delete-emoji.html [ Slow ]
+
+# New emoji requires system support.
+webkit.org/b/159755 fast/text/emoji-num-glyphs.html [ Failure Timeout ]
+webkit.org/b/159755 fast/text/emoji-gender-2-3.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-2-4.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-2-5.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-2-6.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-2-7.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-2-8.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-2-9.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-3.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-4.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-5.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-6.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-8.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-9.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-fe0f-3.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-fe0f-4.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-fe0f-5.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-fe0f-6.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-fe0f-7.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-fe0f-8.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender-fe0f-9.html [ ImageOnlyFailure ]
+webkit.org/b/159755 fast/text/emoji-gender.html [ ImageOnlyFailure ]
+
+webkit.org/b/160017 js/regress-139548.html [ Slow ]
+
+# Only iOS has implemented lettepress.
+fast/text/letterpress-different.html [ ImageOnlyFailure ]
+
+# CSS Shapes tests
+webkit.org/b/163706 imported/w3c/csswg-test/css-shapes-1/shape-outside/shape-image/shape-image-010.html [ Skip ]
+webkit.org/b/163706 imported/w3c/csswg-test/css-shapes-1/shape-outside/shape-image/shape-image-024.html [ Skip ]
+imported/blink/http/tests/security/shape-image-cors-disallow-origin.html [ ImageOnlyFailure ]
+imported/blink/http/tests/security/shape-image-cors-port.html [ ImageOnlyFailure ]
+webkit.org/b/163887 svg/as-image/svg-image-with-data-uri-use-data-uri.svg [ Pass Crash ]
+
+# Temporary failure until we start using ANGLE as a WebGL backend
+webkit.org/b/163924 fast/canvas/webgl/bufferData-offset-length.html [ Pass Failure ]
+
+webkit.org/b/164080 http/tests/websocket/tests/hybi/closed-when-entering-page-cache.html [ Pass Failure ]
+webkit.org/b/164080 http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler.html [ Pass Failure ]
+
+webkit.org/b/164539 http/tests/security/module-crossorigin-error-event-information.html [ Failure ]
+webkit.org/b/164539 http/tests/security/module-crossorigin-onerror-information.html [ Failure ]
+
+webkit.org/b/165764 http/tests/misc/module-script-async.html [ Pass Timeout ]
+
+# Clean layout tree after FrameView::layout
+webkit.org/b/164856 [ Debug ] editing/execCommand/indent-block-in-list.html [ Skip ]
+webkit.org/b/162831 [ Debug ] imported/blink/css3/flexbox/relpos-with-scrollable-with-abspos-crash.html  [ Skip ]
+webkit.org/b/162828 [ Debug ] tables/table-section-overflow-clip-crash.html  [ Skip ]
+
+webkit.org/b/164797 js/dom/domjit-function-get-element-by-id-licm.html [ Pass Timeout ]
+webkit.org/b/164797 js/dom/domjit-function-get-element-by-id-changed.html [ Pass Timeout ]
+
+# The following tests match Blink/Chrome, but we're not sure yet what to do with them when the
+# new CSS parser is turned on. The tests may be right, and these may be bugs in Blink/Chrome, or
+# the tests may be wrong.
+webkit.org/b/165195 fast/css/parsing-css-allowed-string-characters.html [ Pass Failure ]
+
+# Visual viewports
+webkit.org/b/165460 compositing/repaint/scroll-fixed-layer-no-content.html [ Failure ]
+webkit.org/b/165460 compositing/repaint/scroll-fixed-layer-out-of-view.html [ Failure ]
+
+# iOS-specific test
+media/modern-media-controls/media-controller/media-controller-scale-factor.html [ Skip ]
+media/modern-media-controls/media-controller/media-controller-scale-factor-audio.html [ Skip ]
+
+webkit.org/b/166911 fast/dom/Window/window-properties-performance.html [ Pass Failure ]
+webkit.org/b/166911 fast/dom/Window/window-properties-performance-resource-timing.html [ Pass Failure ]
+
+webkit.org/b/167428 fast/backgrounds/background-repeat-x-y-parse.html [ Failure ]
+
+imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-details-element/toggleEvent.html [ Pass Failure ]
+webkit.org/b/168175 imported/w3c/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes.html [ ImageOnlyFailure ]
+webkit.org/b/168175 imported/w3c/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu.html [ ImageOnlyFailure ]
+webkit.org/b/168175 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-area-element/area-download-click.html [ Pass Failure ]
+webkit.org/b/168175 imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/same-url.html [ Pass Failure ]
+webkit.org/b/168175 imported/w3c/web-platform-tests/html/browsers/offline/browser-state/navigator_online_online.html [ Pass Failure ]
+webkit.org/b/168175 imported/w3c/web-platform-tests/html/semantics/text-level-semantics/the-a-element/a-download-click.html [ Timeout Pass ]
+webkit.org/b/169264 imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-samedoc.html [ Failure ]
+
+webkit.org/b/168066 performance-api/performance-now-api.html [ Pass Failure ]
+webkit.org/b/168005 performance-api/performance-now-time-origin-in-worker.html [ Pass Failure ]
+
+fast/history/page-cache-after-window-open.html [ Skip ]
+fast/history/page-cache-back-navigation-crash.html [ Skip ]
+fast/history/page-cache-with-opener.html [ Skip ]
+
+webkit.org/b/168238 imported/w3c/web-platform-tests/dom/events/EventListener-invoke-legacy.html [ Pass Failure ]
+
+########################################
+### START OF -disabled tests
+
+webkit.org/b/20871 js/garbage-collect-after-string-appends.html [ Skip ]
+webkit.org/b/58323 compositing/objects/composited-object-alignment.html [ Skip ]
+webkit.org/b/48454 compositing/tiling/huge-layer-resize.html [ Skip ]
+webkit.org/b/48454 compositing/tiling/huge-layer.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-increment-00-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-increment-01-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-increment-02-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-reset-00-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-reset-01-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-reset-02-c-o.html [ Skip ]
+webkit.org/b/19581 dom/xhtml/level2/html/HTMLFrameElement09.xhtml [ Skip ]
+webkit.org/b/65187 dom/xhtml/level3/core/documentsetdocumenturi01.xhtml [ Skip ]
+webkit.org/b/65187 dom/xhtml/level3/core/documentsetdocumenturi02.xhtml [ Skip ]
+webkit.org/b/10993 editing/execCommand/create-list-1.html [ Skip ]
+webkit.org/b/9640 editing/input/attributed-substring-from-range-lines.html [ Skip ]
+webkit.org/b/7899 editing/pasteboard/paste-empty-startcontainer.html [ Skip ]
+webkit.org/b/72503 fast/css/font-face-in-shadow-DOM.html [ Skip ]
+webkit.org/b/23650 fast/dom/Window/timeout-released-on-close.html [ Skip ]
+webkit.org/b/79333 fast/dynamic/crash-paint-no-documentElement-renderer.html [ Skip ]
+webkit.org/b/18057 fast/events/key-events-in-frame.html [ Skip ]
+webkit.org/b/17391 fast/frames/iframe-scroll-page-up-down.html [ Skip ]
+webkit.org/b/94130 fast/html/marquee-alternate.html [ Skip ]
+webkit.org/b/12930 fast/leaks/003.html [ Skip ]
+webkit.org/b/36425 fast/loader/api-test-go-to-current-back-forward-item.html [ Skip ]
+webkit.org/b/35594 fast/loader/api-test-new-window-data-load-base-url.html [ Skip ]
+webkit.org/b/67007 fast/ruby/after-block-doesnt-crash.html [ Skip ]
+webkit.org/b/67007 fast/ruby/after-table-doesnt-crash.html [ Skip ]
+webkit.org/b/67007 fast/ruby/generated-after-counter-doesnt-crash.html [ Skip ]
+webkit.org/b/67007 fast/ruby/generated-before-and-after-counter-doesnt-crash.html [ Skip ]
+webkit.org/b/164888 fast/shadow-dom/copy-shadow-tree.html [ Skip ]
+webkit.org/b/81826 fast/table/double-height-table-no-tbody.html [ Skip ]
+webkit.org/b/56140 fast/text/large-text-composed-char-dos.html [ Skip ]
+webkit.org/b/63268 http/tests/multipart/win-boundary-crash.html [ Skip ]
+webkit.org/b/35700 java/lc3/ArrayMethods/object-001.html [ Skip ]
+webkit.org/b/35700 java/lc3/forin/array-001.html [ Skip ]
+webkit.org/b/56080 jquery/effects.html [ Skip ]
+webkit.org/b/6547 js/kde/Date.html [ Skip ]
+webkit.org/b/15046 js/string-concatenate-outofmemory.html [ Skip ]
+webkit.org/b/24690 platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html [ Skip ]
+webkit.org/b/17392 svg/batik/text/textBiDi.svg [ Skip ]
+webkit.org/b/11662 svg/custom/js-font-test.svg [ Skip ]
+webkit.org/b/63186 svg/zoom/page/zoom-svg-through-object-with-text.xhtml [ Skip ]
+
+# Test disabled in r37513 for causing next test to hang
+animations/font-size-using-ems.html [ Skip ]
+
+# Tests disabled in r18642 due to font-dependent issue with Armenian numbering
+css2.1/t1202-counter-10-b.html [ Skip ]
+css2.1/t1202-counters-10-b.html [ Skip ]
+
+# Test disabled in r11286 since it removes entire document tree so is hard to show results
+dom/xhtml/level3/core/documentadoptnode22.xhtml [ Skip ]
+
+# Tests landed disabled in r10628 for webkit.org/b/4907
+dom/xhtml/level3/core/documentnormalizedocument06.xhtml [ Skip ]
+dom/xhtml/level3/core/domimplementationregistry12.xhtml [ Skip ]
+dom/xhtml/level3/core/domimplementationregistry23.xhtml [ Skip ]
+dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml [ Skip ]
+dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml [ Skip ]
+dom/xhtml/level3/core/noderemovechild03.xhtml [ Skip ]
+dom/xhtml/level3/core/nodereplacechild06.xhtml [ Skip ]
+dom/xhtml/level3/core/nodereplacechild07.xhtml [ Skip ]
+dom/xhtml/level3/core/nodereplacechild08.xhtml [ Skip ]
+
+# Test disabled in r30326
+editing/selection/inconsistent-in-removeChildNode.html [ Skip ]
+
+# Test disabled in r29882 after it mysteriously started passing
+editing/style/5091898.html [ Skip ]
+
+# Test disabled in r28820 since it has different results per hardware
+fast/css/css2-system-color.html [ Skip ]
+
+# Test disabled in r64074 after dropping -khtml prefix support
+fast/css/limited-vendor-prefix-behavior.html [ Skip ]
+
+# Test disabled in r42420 since it hits test-only release assert
+fast/dom/gc-8.html [ Skip ]
+
+# Test disabled in r27657
+fast/dom/Window/window-resize-nan.html [ Skip ]
+
+# Tests disabled in r38547 for webkit.org/b/22306
+fast/events/destroyed-atomic-string.html [ Skip ]
+
+# Test disabled in r12843
+fast/loader/form-events-back-forward.html [ Skip ]
+
+# Tests landed disabled in r47056 for webkit.org/b/25463; never enabled
+fast/notifications/notifications-event-stop-propagation.html [ Skip ]
+fast/notifications/notifications-multi-events.html [ Skip ]
+
+# Test disabled in r42628
+http/tests/navigation/post-goback-repost-policy.html [ Skip ]
+
+# Tests landed disabled in r15970; never enabled
+http/tests/navigation/success200-frames-goback.html [ Skip ]
+http/tests/navigation/success200-frames-reload.html [ Skip ]
+http/tests/navigation/success200-subframeload-goback.html [ Skip ]
+
+# Test disabled in r45078
+media/video-canvas.html [ Skip ]
+
+# Tests disabled in r59504 for taking over 10 seconds to run
+sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html [ Skip ]
+sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html [ Skip ]
+sputnik/Unicode/Unicode_218/S7.6_A3.1.html [ Skip ]
+sputnik/Unicode/Unicode_218/S7.6_A3.2.html [ Skip ]
+
+# Tests landed disabled in r58534; never enabled
+sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html [ Skip ]
+sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html [ Skip ]
+sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html [ Skip ]
+sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html [ Skip ]
+sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html [ Skip ]
+
+# Test disabled in r42921 for flaky failure
+svg/custom/filter-source-alpha.svg [ Skip ]
+
+# Test landed disabled in r26904; never enabled
+svg/custom/font-face-fallback.svg [ Skip ]
+
+# Test disabled until we can fix layout of orthogonal writing mode roots
+fast/table/colspanMinWidth-vertical.html [ Skip ]
+
+### END OF -disabled tests
+########################################
+
+webkit.org/b/168409 media/modern-media-controls/airplay-button/airplay-button.html [ Pass Failure ]
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,506 @@
</span><ins>+2017-03-13  Youenn Fablet  &lt;youenn@apple.com&gt;
+
+        Sync web-platform-tests up to revision a5b95cb31914507088a4eda16f7674bbc6f3313f
+        https://bugs.webkit.org/show_bug.cgi?id=169523
+
+        Reviewed by Alex Christensen.
+
+        * csswg-test/LICENSE.md: Added.
+        * csswg-test/README.md:
+        * csswg-test/build-css-testsuites.sh: Added.
+        * csswg-test/config.default.json: Added.
+        * csswg-test/css-grid-1/grid-items/w3c-import.log:
+        * csswg-test/css-grid-1/grid-model/w3c-import.log:
+        * csswg-test/css-scoping-1/OWNERS: Added.
+        * csswg-test/css-scoping-1/css-scoping-shadow-slot-style-expected.html: Added.
+        * csswg-test/css-scoping-1/css-scoping-shadow-slot-style.html: Added.
+        * csswg-test/css-scoping-1/w3c-import.log:
+        * csswg-test/lint: Added.
+        * csswg-test/lint.whitelist: Added.
+        * csswg-test/manifest: Added.
+        * csswg-test/requirements.txt: Added.
+        * csswg-test/serve: Added.
+        * csswg-test/serve.py: Added.
+        (main):
+        * csswg-test/w3c-import.log:
+        * resources/TestRepositories:
+        * resources/import-expectations.json:
+        * resources/resource-files.json:
+        * web-platform-tests/IndexedDB/abort-in-initial-upgradeneeded.html:
+        * web-platform-tests/IndexedDB/close-in-upgradeneeded.html:
+        * web-platform-tests/IndexedDB/event-dispatch-active-flag-expected.txt: Added.
+        * web-platform-tests/IndexedDB/event-dispatch-active-flag.html: Added.
+        * web-platform-tests/IndexedDB/fire-error-event-exception-expected.txt: Added.
+        * web-platform-tests/IndexedDB/fire-error-event-exception.html: Added.
+        * web-platform-tests/IndexedDB/fire-success-event-exception-expected.txt: Added.
+        * web-platform-tests/IndexedDB/fire-success-event-exception.html: Added.
+        * web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception-expected.txt: Added.
+        * web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception.html: Added.
+        * web-platform-tests/IndexedDB/idb-binary-key-roundtrip.htm:
+        * web-platform-tests/IndexedDB/idbcursor_continue_objectstore.htm:
+        * web-platform-tests/IndexedDB/idbfactory-deleteDatabase-opaque-origin-expected.txt: Added.
+        * web-platform-tests/IndexedDB/idbfactory-deleteDatabase-opaque-origin.html: Added.
+        * web-platform-tests/IndexedDB/idbfactory-open-error-properties-expected.txt: Added.
+        * web-platform-tests/IndexedDB/idbfactory-open-error-properties.html: Added.
+        * web-platform-tests/IndexedDB/idbfactory-open-opaque-origin-expected.txt: Added.
+        * web-platform-tests/IndexedDB/idbfactory-open-opaque-origin.html: Added.
+        * web-platform-tests/IndexedDB/idbfactory_deleteDatabase4-expected.txt:
+        * web-platform-tests/IndexedDB/idbfactory_deleteDatabase4.htm:
+        * web-platform-tests/IndexedDB/idbindex_get.htm:
+        * web-platform-tests/IndexedDB/idbindex_get4.htm:
+        * web-platform-tests/IndexedDB/idbindex_getKey4.htm:
+        * web-platform-tests/IndexedDB/idbobjectstore_createIndex13.htm:
+        * web-platform-tests/IndexedDB/idbobjectstore_get4.htm:
+        * web-platform-tests/IndexedDB/idbobjectstore_getKey.html:
+        * web-platform-tests/IndexedDB/key-conversion-exceptions.htm:
+        * web-platform-tests/IndexedDB/keygenerator-explicit-expected.txt: Added.
+        * web-platform-tests/IndexedDB/keygenerator-explicit.html: Added.
+        * web-platform-tests/IndexedDB/keygenerator-inject-expected.txt: Added.
+        * web-platform-tests/IndexedDB/keygenerator-inject.html: Added.
+        * web-platform-tests/IndexedDB/keypath_invalid.htm:
+        * web-platform-tests/IndexedDB/support.js:
+        (auto_fail):
+        (createdb_for_multiple_tests):
+        (indexeddb_test):
+        (is_transaction_active):
+        (spin):
+        (keep_alive):
+        * web-platform-tests/IndexedDB/transaction-abort-request-error-expected.txt: Added.
+        * web-platform-tests/IndexedDB/transaction-abort-request-error.html: Added.
+        * web-platform-tests/IndexedDB/transaction-deactivation-timing-expected.txt: Added.
+        * web-platform-tests/IndexedDB/transaction-deactivation-timing.html: Added.
+        * web-platform-tests/IndexedDB/transaction-lifetime-blocked.htm:
+        * web-platform-tests/IndexedDB/transaction-lifetime.htm:
+        * web-platform-tests/IndexedDB/upgrade-transaction-deactivation-timing-expected.txt: Added.
+        * web-platform-tests/IndexedDB/upgrade-transaction-deactivation-timing.html: Added.
+        * web-platform-tests/IndexedDB/w3c-import.log:
+        * web-platform-tests/IndexedDB/writer-starvation.htm:
+        * web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.worker-expected.txt:
+        * web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2-expected.txt:
+        * web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker-expected.txt:
+        * web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt:
+        * web-platform-tests/XMLHttpRequest/OWNERS:
+        * web-platform-tests/XMLHttpRequest/README.md: Added.
+        * web-platform-tests/XMLHttpRequest/abort-after-receive.htm:
+        * web-platform-tests/XMLHttpRequest/abort-after-timeout.htm:
+        * web-platform-tests/XMLHttpRequest/anonymous-mode-unsupported-expected.txt:
+        * web-platform-tests/XMLHttpRequest/anonymous-mode-unsupported.htm:
+        * web-platform-tests/XMLHttpRequest/data-uri-expected.txt:
+        * web-platform-tests/XMLHttpRequest/data-uri.htm:
+        * web-platform-tests/XMLHttpRequest/event-abort.htm:
+        * web-platform-tests/XMLHttpRequest/event-load.htm:
+        * web-platform-tests/XMLHttpRequest/event-loadend.htm:
+        * web-platform-tests/XMLHttpRequest/event-loadstart-upload-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/event-loadstart-upload.htm: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-progress.htm.
+        * web-platform-tests/XMLHttpRequest/event-loadstart.htm:
+        * web-platform-tests/XMLHttpRequest/event-progress.htm:
+        * web-platform-tests/XMLHttpRequest/event-readystatechange-loaded.htm:
+        * web-platform-tests/XMLHttpRequest/event-timeout.htm:
+        * web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm:
+        * web-platform-tests/XMLHttpRequest/event-upload-progress.htm:
+        * web-platform-tests/XMLHttpRequest/getallresponseheaders-cl-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/getallresponseheaders-cl.htm: Added.
+        * web-platform-tests/XMLHttpRequest/getallresponseheaders-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/getallresponseheaders.htm: Added.
+        * web-platform-tests/XMLHttpRequest/getresponseheader-case-insensitive.htm:
+        * web-platform-tests/XMLHttpRequest/loadstart-and-state-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/loadstart-and-state.html: Added.
+        * web-platform-tests/XMLHttpRequest/open-after-setrequestheader-expected.txt:
+        * web-platform-tests/XMLHttpRequest/open-after-setrequestheader.htm:
+        * web-platform-tests/XMLHttpRequest/open-during-abort-event-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/open-during-abort-event.htm: Added.
+        * web-platform-tests/XMLHttpRequest/open-during-abort-processing-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/open-during-abort-processing.htm: Added.
+        * web-platform-tests/XMLHttpRequest/open-referer-expected.txt:
+        * web-platform-tests/XMLHttpRequest/open-referer.htm:
+        * web-platform-tests/XMLHttpRequest/open-send-during-abort-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/open-send-during-abort.htm: Added.
+        * web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin.htm: Added.
+        * web-platform-tests/XMLHttpRequest/overridemimetype-blob-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/overridemimetype-blob.html: Added.
+        * web-platform-tests/XMLHttpRequest/overridemimetype-invalid-mime-type-expected.txt:
+        * web-platform-tests/XMLHttpRequest/overridemimetype-invalid-mime-type.htm:
+        * web-platform-tests/XMLHttpRequest/resources/corsenabled.py:
+        (main):
+        * web-platform-tests/XMLHttpRequest/resources/delay.py:
+        (main):
+        * web-platform-tests/XMLHttpRequest/resources/echo-headers.py: Added.
+        (main):
+        * web-platform-tests/XMLHttpRequest/resources/header-content-length.asis: Added.
+        * web-platform-tests/XMLHttpRequest/resources/headers-basic.asis: Added.
+        * web-platform-tests/XMLHttpRequest/resources/headers.asis: Added.
+        * web-platform-tests/XMLHttpRequest/resources/inspect-headers.py:
+        (get_response):
+        (main):
+        * web-platform-tests/XMLHttpRequest/resources/redirect.py:
+        (main):
+        * web-platform-tests/XMLHttpRequest/resources/w3c-import.log:
+        * web-platform-tests/XMLHttpRequest/responsetext-decoding-expected.txt:
+        * web-platform-tests/XMLHttpRequest/responsetext-decoding.htm:
+        * web-platform-tests/XMLHttpRequest/send-accept-language-expected.txt:
+        * web-platform-tests/XMLHttpRequest/send-accept-language.htm:
+        * web-platform-tests/XMLHttpRequest/send-data-formdata-expected.txt:
+        * web-platform-tests/XMLHttpRequest/send-data-formdata.htm:
+        * web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt:
+        * web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub.htm:
+        * web-platform-tests/XMLHttpRequest/send-redirect-to-cors.htm:
+        * web-platform-tests/XMLHttpRequest/send-sync-blocks-async.htm:
+        * web-platform-tests/XMLHttpRequest/send-sync-timeout.htm:
+        * web-platform-tests/XMLHttpRequest/setrequestheader-allow-empty-value-expected.txt:
+        * web-platform-tests/XMLHttpRequest/setrequestheader-allow-empty-value.htm:
+        * web-platform-tests/XMLHttpRequest/setrequestheader-allow-whitespace-in-value-expected.txt:
+        * web-platform-tests/XMLHttpRequest/setrequestheader-allow-whitespace-in-value.htm:
+        * web-platform-tests/XMLHttpRequest/setrequestheader-case-insensitive-expected.txt:
+        * web-platform-tests/XMLHttpRequest/setrequestheader-case-insensitive.htm:
+        * web-platform-tests/XMLHttpRequest/setrequestheader-content-type.htm:
+        * web-platform-tests/XMLHttpRequest/setrequestheader-header-allowed-expected.txt:
+        * web-platform-tests/XMLHttpRequest/setrequestheader-header-allowed.htm:
+        * web-platform-tests/XMLHttpRequest/setrequestheader-header-forbidden-expected.txt:
+        * web-platform-tests/XMLHttpRequest/setrequestheader-header-forbidden.htm:
+        * web-platform-tests/XMLHttpRequest/setrequestheader-open-setrequestheader-expected.txt:
+        * web-platform-tests/XMLHttpRequest/setrequestheader-open-setrequestheader.htm:
+        * web-platform-tests/XMLHttpRequest/status-error.htm:
+        * web-platform-tests/XMLHttpRequest/template-element-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/template-element.html: Added.
+        * web-platform-tests/XMLHttpRequest/timeout-multiple-fetches-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/timeout-multiple-fetches.html: Added.
+        * web-platform-tests/XMLHttpRequest/w3c-import.log:
+        * web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused.html: Added.
+        * web-platform-tests/check_stability.py:
+        (replace_streams.on_write):
+        (replace_streams):
+        (Firefox.install):
+        (setup_log_handler.LogHandler.__init__):
+        (setup_log_handler.LogHandler):
+        (setup_log_handler.LogHandler.find_or_create_test):
+        (setup_log_handler.LogHandler.find_or_create_subtest):
+        (setup_log_handler.LogHandler.test_status):
+        (setup_log_handler.LogHandler.test_end):
+        (err_string):
+        (process_results):
+        (write_inconsistent):
+        (write_results):
+        * web-platform-tests/common/get-host-info.sub.js:
+        (get_host_info):
+        * web-platform-tests/dom/OWNERS:
+        * web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt:
+        * web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes.html:
+        * web-platform-tests/dom/nodes/Element-matches-expected.txt:
+        * web-platform-tests/dom/nodes/Element-matches.html:
+        * web-platform-tests/dom/nodes/Element-matches.js:
+        (interfaceCheckMatches):
+        (runSpecialMatchesTests):
+        (runInvalidSelectorTestMatches):
+        (runMatchesTest):
+        * web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt: Added.
+        * web-platform-tests/dom/nodes/Element-webkitMatchesSelector.html: Copied from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches.html.
+        * web-platform-tests/dom/nodes/Node-lookupNamespaceURI-expected.txt:
+        * web-platform-tests/dom/nodes/Node-lookupNamespaceURI.html:
+        * web-platform-tests/dom/nodes/w3c-import.log:
+        * web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_key1_dashinit.mp4: Added.
+        * web-platform-tests/fetch/OWNERS:
+        * web-platform-tests/fetch/README.md: Added.
+        * web-platform-tests/fetch/api/basic/request-referrer-expected.txt:
+        * web-platform-tests/fetch/api/basic/request-referrer-redirected-worker-expected.txt: Added.
+        * web-platform-tests/fetch/api/basic/request-referrer-redirected-worker.html: Added.
+        * web-platform-tests/fetch/api/basic/request-referrer-worker-expected.txt: Added.
+        * web-platform-tests/fetch/api/basic/request-referrer-worker.html: Added.
+        * web-platform-tests/fetch/api/basic/request-referrer.js:
+        (testReferrer):
+        * web-platform-tests/fetch/api/basic/request-upload-expected.txt:
+        * web-platform-tests/fetch/api/basic/request-upload-worker-expected.txt:
+        * web-platform-tests/fetch/api/basic/request-upload.js:
+        (testUpload):
+        * web-platform-tests/fetch/api/basic/w3c-import.log:
+        * web-platform-tests/fetch/api/cors/cors-expose-star-expected.txt: Added.
+        * web-platform-tests/fetch/api/cors/cors-expose-star-worker-expected.txt: Added.
+        * web-platform-tests/fetch/api/cors/cors-expose-star-worker.html: Added.
+        * web-platform-tests/fetch/api/cors/cors-expose-star.html: Added.
+        * web-platform-tests/fetch/api/cors/cors-expose-star.js: Added.
+        (sharedHeaders.string_appeared_here.promise_test):
+        (string_appeared_here.promise_test):
+        * web-platform-tests/fetch/api/cors/cors-preflight-star-expected.txt: Added.
+        * web-platform-tests/fetch/api/cors/cors-preflight-star-worker-expected.txt: Added.
+        * web-platform-tests/fetch/api/cors/cors-preflight-star-worker.html: Added.
+        * web-platform-tests/fetch/api/cors/cors-preflight-star.html: Added.
+        * web-platform-tests/fetch/api/cors/cors-preflight-star.js: Added.
+        (origin.location.origin.preflightTest):
+        * web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
+        * web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:
+        * web-platform-tests/fetch/api/cors/cors-redirect-credentials.js:
+        (corsRedirectCredentials):
+        * web-platform-tests/fetch/api/cors/w3c-import.log:
+        * web-platform-tests/fetch/api/headers/headers-combine-expected.txt:
+        * web-platform-tests/fetch/api/headers/headers-combine.html:
+        * web-platform-tests/fetch/api/headers/headers-record-expected.txt: Added.
+        * web-platform-tests/fetch/api/headers/headers-record.html: Added.
+        * web-platform-tests/fetch/api/headers/w3c-import.log:
+        * web-platform-tests/fetch/api/policies/nested-policy.js: Added.
+        * web-platform-tests/fetch/api/policies/nested-policy.js.headers: Added.
+        * web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https-expected.txt: Added.
+        * web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html.
+        * web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https-expected.txt: Added.
+        * web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html.
+        * web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-expected.txt:
+        * web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https-expected.txt: Added.
+        * web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html.
+        * web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-worker-expected.txt:
+        * web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.js:
+        * web-platform-tests/fetch/api/policies/referrer-origin.html:
+        * web-platform-tests/fetch/api/policies/referrer-origin.js:
+        (promise_test):
+        * web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https-expected.txt: Added.
+        * web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html.
+        * web-platform-tests/fetch/api/policies/referrer-unsafe-url.js:
+        * web-platform-tests/fetch/api/policies/w3c-import.log:
+        * web-platform-tests/fetch/api/request/request-cache-default-conditional-expected.txt:
+        * web-platform-tests/fetch/api/request/request-cache-default-expected.txt:
+        * web-platform-tests/fetch/api/request/request-cache-force-cache-expected.txt:
+        * web-platform-tests/fetch/api/request/request-cache-no-cache-expected.txt:
+        * web-platform-tests/fetch/api/request/request-cache-no-store-expected.txt:
+        * web-platform-tests/fetch/api/request/request-cache-reload-expected.txt:
+        * web-platform-tests/fetch/api/request/request-cache.js:
+        * web-platform-tests/fetch/api/request/request-headers-expected.txt:
+        * web-platform-tests/fetch/api/request/request-headers.html:
+        * web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt: Added.
+        * web-platform-tests/fetch/api/request/request-keepalive-quota.html: Added.
+        * web-platform-tests/fetch/api/request/resources/cache.py:
+        (main):
+        * web-platform-tests/fetch/api/request/w3c-import.log:
+        * web-platform-tests/fetch/api/resources/preflight.py:
+        (main):
+        * web-platform-tests/fetch/api/response/response-idl-expected.txt:
+        * web-platform-tests/fetch/api/response/response-idl.html:
+        * web-platform-tests/fetch/api/response/response-trailer-expected.txt: Added.
+        * web-platform-tests/fetch/api/response/response-trailer.html: Added.
+        * web-platform-tests/fetch/api/response/w3c-import.log:
+        * web-platform-tests/fetch/w3c-import.log:
+        * web-platform-tests/html/OWNERS:
+        * web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-0.html: Added.
+        * web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-expected.txt:
+        * web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin.html:
+        * web-platform-tests/html/browsers/browsing-the-web/history-traversal/w3c-import.log:
+        * web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub-expected.txt: Added.
+        * web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub.html: Added.
+        * web-platform-tests/html/browsers/history/the-location-interface/location-stringifier-expected.txt:
+        * web-platform-tests/html/browsers/history/the-location-interface/location-stringifier.html:
+        * web-platform-tests/html/browsers/history/the-location-interface/location-tojson-expected.txt: Added.
+        * web-platform-tests/html/browsers/history/the-location-interface/location-tojson.html: Added.
+        * web-platform-tests/html/browsers/history/the-location-interface/resources/post-your-protocol.html: Added.
+        * web-platform-tests/html/browsers/history/the-location-interface/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/w3c-import.log.
+        * web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log:
+        * web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical-expected.txt: Added.
+        * web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.html: Added.
+        * web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.js: Added.
+        (test):
+        * web-platform-tests/html/browsers/offline/w3c-import.log:
+        * web-platform-tests/html/browsers/the-window-object/support/noopener-target.html:
+        * web-platform-tests/html/browsers/the-window-object/window-open-noopener-expected.txt:
+        * web-platform-tests/html/browsers/the-window-object/window-open-noopener.html:
+        * web-platform-tests/html/browsers/windows/browsing-context-expected.txt: Added.
+        * web-platform-tests/html/browsers/windows/browsing-context-window-expected.txt: Added.
+        * web-platform-tests/html/browsers/windows/browsing-context-window.html: Added.
+        * web-platform-tests/html/browsers/windows/browsing-context.html: Added.
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-nested-frame.html: Added.
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-window-post.html: Added.
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/post-to-opener.html: Added.
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log.
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log:
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-expected.txt: Added.
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null-expected.txt: Added.
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null.html: Added.
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent.html: Added.
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-expected.txt: Added.
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-null-expected.txt: Added.
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-null.html: Added.
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top.html: Added.
+        * web-platform-tests/html/browsers/windows/noreferrer-cross-origin-close-manual.sub.html:
+        * web-platform-tests/html/browsers/windows/noreferrer-cross-origin-window-name-manual.sub.html: Added.
+        * web-platform-tests/html/browsers/windows/noreferrer-null-opener-expected.txt: Added.
+        * web-platform-tests/html/browsers/windows/noreferrer-null-opener.html: Added.
+        * web-platform-tests/html/browsers/windows/noreferrer-window-name.html:
+        * web-platform-tests/html/browsers/windows/resources/browsing-context-window.html: Added.
+        * web-platform-tests/html/browsers/windows/resources/echo-window-name.html: Added.
+        * web-platform-tests/html/browsers/windows/resources/nested-post-to-opener.html: Added.
+        * web-platform-tests/html/browsers/windows/resources/noreferrer-window-name.html: Added.
+        * web-platform-tests/html/browsers/windows/resources/post-to-opener.html: Added.
+        * web-platform-tests/html/browsers/windows/resources/target-cross-origin.sub.html: Added.
+        * web-platform-tests/html/browsers/windows/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/w3c-import.log.
+        * web-platform-tests/html/browsers/windows/resources/window-close-button.html: Added.
+        * web-platform-tests/html/browsers/windows/resources/window-opener.html: Added.
+        * web-platform-tests/html/browsers/windows/targeting-multiple-cross-origin-manual.sub.html:
+        * web-platform-tests/html/browsers/windows/w3c-import.log:
+        * web-platform-tests/html/dom/elements/elements-in-the-dom/historical-expected.txt:
+        * web-platform-tests/html/dom/elements/elements-in-the-dom/historical.html:
+        * web-platform-tests/html/dom/interfaces.html:
+        * web-platform-tests/html/dom/interfaces.worker-expected.txt: Added.
+        * web-platform-tests/html/dom/interfaces.worker.html: Added.
+        * web-platform-tests/html/dom/interfaces.worker.js: Added.
+        (doTest):
+        (fetchData):
+        (promise_test):
+        * web-platform-tests/html/dom/reflection.js:
+        * web-platform-tests/html/dom/resources/self-origin-subframe.html: Added.
+        * web-platform-tests/html/dom/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log.
+        * web-platform-tests/html/dom/self-origin.any-expected.txt: Added.
+        * web-platform-tests/html/dom/self-origin.any.html: Added.
+        * web-platform-tests/html/dom/self-origin.any.js: Added.
+        (test):
+        * web-platform-tests/html/dom/self-origin.sub-expected.txt: Added.
+        * web-platform-tests/html/dom/self-origin.sub.html: Added.
+        * web-platform-tests/html/dom/self-origin.worker-expected.txt: Added.
+        * web-platform-tests/html/dom/self-origin.worker.html: Added.
+        * web-platform-tests/html/dom/w3c-import.log:
+        * web-platform-tests/html/semantics/document-metadata/styling/LinkStyle.html:
+        * web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks-expected.txt: Added.
+        * web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/w3c-import.log.
+        * web-platform-tests/html/semantics/embedded-content/resources/should-load.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/resources/should-not-load.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log.
+        * web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html:
+        * web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.null-expected.txt: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.null.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log:
+        * web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html:
+        * web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2-expected.txt: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-embed-element/w3c-import.log:
+        * web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture-expected.txt: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-without-user-gesture-failed.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log:
+        * web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
+        * web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor-expected.txt:
+        * web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html:
+        * web-platform-tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element-expected.txt: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2-expected.txt: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log:
+        * web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
+        * web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application.html:
+        * web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange-expected.txt:
+        * web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html:
+        * web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
+        * web-platform-tests/html/semantics/forms/the-input-element/valueMode.html:
+        * web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-expected.txt:
+        * web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection.html:
+        * web-platform-tests/html/semantics/forms/the-select-element/selected-index-expected.txt:
+        * web-platform-tests/html/semantics/forms/the-select-element/selected-index.html:
+        * web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt:
+        * web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html:
+        * web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot-expected.txt:
+        * web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot.html:
+        * web-platform-tests/html/semantics/tabular-data/the-table-element/tHead-expected.txt:
+        * web-platform-tests/html/semantics/tabular-data/the-table-element/tHead.html:
+        * web-platform-tests/html/semantics/tabular-data/the-tr-element/insertCell-expected.txt:
+        * web-platform-tests/html/semantics/tabular-data/the-tr-element/insertCell.html:
+        * web-platform-tests/html/syntax/parsing-html-fragments/w3c-import.log:
+        * web-platform-tests/html/syntax/parsing/test.js:
+        (init_tests):
+        * web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers-expected.txt:
+        * web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers.html:
+        * web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects-expected.txt: Added.
+        * web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects.html: Added.
+        * web-platform-tests/html/webappapis/scripting/events/event-handler-onauxclick.html:
+        * web-platform-tests/html/webappapis/scripting/events/event-handler-processing-algorithm-expected.txt:
+        * web-platform-tests/html/webappapis/scripting/events/event-handler-processing-algorithm.html:
+        * web-platform-tests/html/webappapis/scripting/events/resources/compiled-event-handler-settings-objects-support.html: Added.
+        * web-platform-tests/html/webappapis/scripting/events/resources/open-window.html: Added.
+        * web-platform-tests/html/webappapis/scripting/events/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/w3c-import.log.
+        * web-platform-tests/html/webappapis/scripting/events/w3c-import.log:
+        * web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-cross-origin-setTimeout.html:
+        * web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-setInterval.html:
+        * web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-setTimeout.html:
+        * web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-cross-origin-setTimeout.html:
+        * web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-in-setInterval.html:
+        * web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-in-setTimeout.html:
+        * web-platform-tests/html/webappapis/scripting/processing-model-2/support/syntax-error-in-setInterval.js:
+        (step_timeout):
+        * web-platform-tests/html/webappapis/scripting/processing-model-2/support/undefined-variable-in-setInterval.js:
+        (step_timeout):
+        * web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt:
+        * web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker-expected.txt:
+        * web-platform-tests/lint.whitelist:
+        * web-platform-tests/media/CanvasTest.ttf: Added.
+        * web-platform-tests/media/w3c-import.log:
+        * web-platform-tests/streams/piping/general.js:
+        (false.promise_test):
+        * web-platform-tests/streams/piping/pipe-through.js:
+        (promise_test):
+        (test):
+        * web-platform-tests/streams/readable-byte-streams/general-expected.txt:
+        * web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt:
+        * web-platform-tests/streams/readable-byte-streams/general.js:
+        (test):
+        * web-platform-tests/streams/readable-streams/bad-underlying-sources.js:
+        (promise_test):
+        * web-platform-tests/streams/readable-streams/brand-checks-expected.txt:
+        * web-platform-tests/streams/readable-streams/brand-checks.dedicatedworker-expected.txt:
+        * web-platform-tests/streams/readable-streams/brand-checks.js:
+        (test):
+        (fakeReadableStream):
+        * web-platform-tests/streams/readable-streams/cancel.js:
+        (promise_test):
+        * web-platform-tests/streams/readable-streams/default-reader-expected.txt: Added.
+        * web-platform-tests/streams/readable-streams/default-reader.dedicatedworker-expected.txt: Added.
+        * web-platform-tests/streams/readable-streams/default-reader.dedicatedworker.html: Added.
+        * web-platform-tests/streams/readable-streams/default-reader.html: Added.
+        * web-platform-tests/streams/readable-streams/default-reader.js: Added.
+        (test):
+        (promise_test):
+        (promise_test.t.const.rs.new.ReadableStream.start):
+        (promise_test.t.const.rs.new.ReadableStream.cancel):
+        * web-platform-tests/streams/readable-streams/default-reader.serviceworker.https-expected.txt: Added.
+        * web-platform-tests/streams/readable-streams/default-reader.serviceworker.https.html: Added.
+        * web-platform-tests/streams/readable-streams/default-reader.sharedworker-expected.txt: Added.
+        * web-platform-tests/streams/readable-streams/default-reader.sharedworker.html: Added.
+        * web-platform-tests/streams/readable-streams/floating-point-total-queue-size-expected.txt: Added.
+        * web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker-expected.txt: Added.
+        * web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker.html: Added.
+        * web-platform-tests/streams/readable-streams/floating-point-total-queue-size.html: Added.
+        * web-platform-tests/streams/readable-streams/floating-point-total-queue-size.js: Added.
+        (promise_test):
+        (setupTestStream):
+        * web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https-expected.txt: Added.
+        * web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https.html: Added.
+        * web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker-expected.txt: Added.
+        * web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker.html: Added.
+        * web-platform-tests/streams/readable-streams/garbage-collection-expected.txt:
+        * web-platform-tests/streams/readable-streams/garbage-collection.dedicatedworker-expected.txt:
+        * web-platform-tests/streams/readable-streams/garbage-collection.js:
+        (promise_test):
+        * web-platform-tests/streams/readable-streams/general-expected.txt:
+        * web-platform-tests/streams/readable-streams/general.dedicatedworker-expected.txt:
+        * web-platform-tests/streams/readable-streams/general.js:
+        (promise_test):
+        (test):
+        * web-platform-tests/streams/readable-streams/pipe-through.js:
+        (test):
+        * web-platform-tests/streams/readable-streams/w3c-import.log:
+        * web-platform-tests/url/OWNERS:
+        * web-platform-tests/url/a-element-expected.txt:
+        * web-platform-tests/url/a-element-origin-expected.txt:
+        * web-platform-tests/url/a-element-origin-xhtml-expected.txt:
+        * web-platform-tests/url/a-element-xhtml-expected.txt:
+        * web-platform-tests/url/failure-expected.txt: Added.
+        * web-platform-tests/url/failure.html: Added.
+        * web-platform-tests/url/setters_tests.json:
+        * web-platform-tests/url/url-constructor-expected.txt:
+        * web-platform-tests/url/url-origin-expected.txt:
+        * web-platform-tests/url/url-setters-expected.txt:
+        * web-platform-tests/url/urltestdata.json:
+        * web-platform-tests/url/w3c-import.log:
+        * web-platform-tests/w3c-import.log:
+        * web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt: Added.
+        * web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription.html: Added.
+        * web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log:
+
</ins><span class="cx"> 2017-03-12  Javier Fernandez  &lt;jfernandez@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] Unreviewed test gardening
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestLICENSEmd"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/csswg-test/LICENSE.md (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/LICENSE.md                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/csswg-test/LICENSE.md        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+#Dual-License for W3C Test Suites
+
+All documents in this Repository are licensed by contributors to be distributed under both the [W3C Test Suite License](#w3c-test-suite-license) and the [W3C 3-clause BSD License](#w3c-3-clause-bsd-license), reproduced below. The choice of license is up to the licensee. For more information, see [Licenses for W3C Test Suites](https://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright.html)
+
+# W3C Test Suite License
+
+This document, Test Suites and other documents that link to this statement are provided by the copyright holders under the following license: By using and/or copying this document, or the W3C document from which this statement is linked, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions:
+
+Permission to copy, and distribute the contents of this document, or the W3C document from which this statement is linked, in any medium for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the document, or portions thereof, that you use:
+
+*    A link or URL to the original W3C document.
+*    The pre-existing copyright notice of the original author, or if it doesn't exist, a notice (hypertext is preferred, but a textual representation is permitted) of the form: &quot;Copyright © [$date-of-document] World Wide Web Consortium, (MIT, ERCIM, Keio, Beihang) and others. All Rights Reserved. http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright.html&quot;
+*    If it exists, the STATUS of the W3C document.
+
+When space permits, inclusion of the full text of this NOTICE should be provided. We request that authorship attribution be provided in any software, documents, or other items or products that you create pursuant to the implementation of the contents of this document, or any portion thereof.
+
+No right to create modifications or derivatives of W3C documents is granted pursuant to this license. However, if additional requirements (documented in the Copyright FAQ) are satisfied, the right to create modifications or derivatives is sometimes granted by the W3C to individuals complying with those requirements.
+
+If a Test Suite distinguishes the test harness (or, framework for navigation) and the actual tests, permission is given to remove or alter the harness or navigation if the Test Suite in question allows to do so. The tests themselves shall NOT be changed in any way.
+
+The name and trademarks of W3C and other copyright holders may NOT be used in advertising or publicity pertaining to this document or other documents that link to this statement without specific, written prior permission. Title to copyright in this document will at all times remain with copyright holders. Permission is given to use the trademarked string &quot;W3C&quot; within claims of performance concerning W3C Specifications or features described therein, and there only, if the test suite so authorizes.
+
+THIS WORK IS PROVIDED BY W3C, MIT, ERCIM, KEIO, BEIHANG, THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL W3C, MIT, ERCIM, KEIO, BEIHANG, THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# W3C 3-clause BSD License
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+*    Redistributions of works must retain the original copyright notice, this list of conditions and the following disclaimer.
+*    Redistributions in binary form must reproduce the original copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+*    Neither the name of the W3C nor the names of its contributors may be used to endorse or promote products derived from this work without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestREADMEmd"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/csswg-test/README.md (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/README.md        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/csswg-test/README.md        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -23,6 +23,83 @@
</span><span class="cx"> has adopted the GitHub pull request process, no new files should be landed here.
</span><span class="cx"> The subdirectories here are named by test author or contributing organization.
</span><span class="cx"> 
</span><ins>+Running the Tests
+-----------------
+
+The tests are designed to be run from your local computer. The test
+environment requires Python 2.7+ (but not Python 3.x). You will also
+need a copy of OpenSSL. Users on Windows should read the
+[Windows Notes](#windows-notes) section below.
+
+To get the tests running, you need to set up the test domains in your
+[`hosts` file](http://en.wikipedia.org/wiki/Hosts_%28file%29%23Location_in_the_file_system). The
+following entries are required:
+
+```
+127.0.0.1   csswg.test
+127.0.0.1   www.csswg.test
+127.0.0.1   www1.csswg.test
+127.0.0.1   www2.csswg.test
+127.0.0.1   xn--n8j6ds53lwwkrqhv28a.csswg.test
+127.0.0.1   xn--lve-6lad.csswg.test
+0.0.0.0     nonexistent-origin.csswg.test
+```
+
+Because csswg-test uses git submodules, you must ensure that
+these are up to date. In the root of your checkout, run:
+
+```
+git submodule update --init --recursive
+```
+
+The test environment can then be started using
+
+    ./serve
+
+This will start HTTP servers on two ports and a websockets server on
+one port. By default one web server starts on port 8000 and the other
+ports are randomly-chosen free ports. Tests must be loaded from the
+*first* HTTP server in the output. To change the ports, copy the
+`config.default.json` file to `config.json` and edit the new file,
+replacing the part that reads:
+
+```
+&quot;http&quot;: [8000, &quot;auto&quot;]
+```
+
+to some port of your choice e.g.
+
+```
+&quot;http&quot;: [1234, &quot;auto&quot;]
+```
+
+If you installed OpenSSL in such a way that running `openssl` at a
+command line doesn't work, you also need to adjust the path to the
+OpenSSL binary. This can be done by adding a section to `config.json`
+like:
+
+```
+&quot;ssl&quot;: {&quot;openssl&quot;: {&quot;binary&quot;: &quot;/path/to/openssl&quot;}}
+```
+Windows Notes
+-------------
+
+Running wptserve with SSL enabled on Windows typically requires
+installing an OpenSSL distribution.
+[Shining Light](http://slproweb.com/products/Win32OpenSSL.html)
+provide a convenient installer that is known to work, but requires a
+little extra setup.
+
+After installation ensure that the path to OpenSSL is on your `%Path%`
+environment variable.
+
+Then set the path to the default OpenSSL configuration file (usually
+something like `C:\OpenSSL-Win32\bin\openssl.cfg` in the server
+configuration. To do this copy `config.default.json` in the
+web-platform-tests root to `config.json`. Then edit the JSON so that
+the key `ssl/openssl/base_conf_path` has a value that is the path to
+the OpenSSL config file.
+
</ins><span class="cx"> Linking Your Tests to Specifications
</span><span class="cx"> -----------------------------------
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestbuildcsstestsuitessh"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/csswg-test/build-css-testsuites.sh (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/build-css-testsuites.sh                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/csswg-test/build-css-testsuites.sh        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+#!/usr/bin/env sh
+set -ex
+
+cd &quot;`dirname $0`&quot;
+
+if [ -z $VENV ]; then
+    VENV=tools/_virtualenv
+fi
+
+# Create the virtualenv
+if [ ! -d $VENV ]; then
+    if [ -z $PYTHON ]; then
+        command -v python
+        if [ $? -eq 0 ]; then
+            if [ `python -c 'import sys; print(sys.version[0:3])'` == &quot;2.7&quot; ]; then
+                PYTHON=python
+            fi
+        fi
+    fi
+
+    if [ -z $PYTHON ]; then
+        command -v python2
+        if [ $? -eq 0 ]; then
+            PYTHON=python2
+        fi
+    fi
+
+    if [ -z $PYTHON ]; then
+        echo &quot;Please ensure Python 2.7 is installed&quot;
+        exit 1
+    fi
+
+    $PYTHON -m virtualenv $VENV || { echo &quot;Please ensure virtualenv is installed&quot;; exit 2; }
+fi
+
+# Install dependencies
+$VENV/bin/pip install -r requirements.txt
+
+# Fetch hg submodules if they're not there
+if [ ! -d tools/apiclient ]; then
+    $VENV/bin/hg clone https://hg.csswg.org/dev/apiclient tools/apiclient
+fi
+
+if [ ! -d tools/w3ctestlib ]; then
+    $VENV/bin/hg clone https://hg.csswg.org/dev/w3ctestlib tools/w3ctestlib
+fi
+
+# Run the build script
+$VENV/bin/python tools/build.py &quot;$@&quot;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestconfigdefaultjson"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/csswg-test/config.default.json (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/config.default.json                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/csswg-test/config.default.json        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+{&quot;host&quot;: &quot;csswg.test&quot;,
+ &quot;doc_root&quot;: null,
+ &quot;ws_doc_root&quot;: null,
+ &quot;external_host&quot;: null,
+ &quot;ports&quot;:{&quot;http&quot;:[8000, &quot;auto&quot;],
+          &quot;https&quot;:[8443],
+          &quot;ws&quot;:[&quot;auto&quot;],
+          &quot;wss&quot;:[&quot;auto&quot;]},
+ &quot;check_subdomains&quot;: true,
+ &quot;log_level&quot;:&quot;debug&quot;,
+ &quot;bind_hostname&quot;: true,
+ &quot;ssl&quot;: {&quot;type&quot;: &quot;openssl&quot;,
+         &quot;encrypt_after_connect&quot;: false,
+         &quot;openssl&quot;: {
+             &quot;openssl_binary&quot;: &quot;openssl&quot;,
+             &quot;base_path&quot;: &quot;_certs&quot;,
+             &quot;force_regenerate&quot;: false,
+             &quot;base_conf_path&quot;: null
+         },
+         &quot;pregenerated&quot;: {
+             &quot;host_key_path&quot;: null,
+             &quot;host_cert_path&quot;: null
+         },
+         &quot;none&quot;: {}
+        }
+}
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestcssgrid1griditemsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -15,13 +15,9 @@
</span><span class="cx"> None
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-002-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-002.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-003-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-003.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-inline-blocks-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001-expected.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.xht
</span><span class="lines">@@ -33,25 +29,15 @@
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005-expected.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-002-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-002.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-003-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-003.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-004-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-004.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-005-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-order-property-painting-005.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-002-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-003-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-004-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-005-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001-expected.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.xht
</span><span class="lines">@@ -65,21 +51,13 @@
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006-expected.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-001.html
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-002-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-002.html
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-003-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-003.html
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-004-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-item-containing-block-004.html
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-002-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-002.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-003-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-003.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-inline-blocks-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-inline-blocks-001.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-sizing-alignment-001-expected.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-items-sizing-alignment-001.html
</span><span class="lines">@@ -89,13 +67,9 @@
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-layout-z-order-a.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-layout-z-order-b-expected.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-layout-z-order-b.html
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-002-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-002.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-003-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-003.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-004-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-004.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-005-expected.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-005.xht
</span><span class="lines">@@ -107,23 +81,14 @@
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-008.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-009-expected.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-009.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-010-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-010.html
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-011-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-011.html
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-012-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-012.html
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-013-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-013.html
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-014-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-014.html
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-015-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-015.html
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-016-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-016.html
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-017-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-017.html
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-018-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-minimum-size-grid-items-018.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-001-expected.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-001.xht
</span><span class="lines">@@ -135,25 +100,15 @@
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-004.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-005-expected.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-auto-placement-005.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-002-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-002.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-003-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-003.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-004-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-004.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-005-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-order-property-painting-005.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-002-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-002.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-003-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-003.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-004-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-004.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-005-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-005.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001-expected.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.xht
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestcssgrid1gridmodelw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -20,9 +20,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/display-inline-grid-expected.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/display-inline-grid.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-display-grid-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-display-grid-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-display-inline-grid-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-display-inline-grid-001.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-letter-001-expected.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-letter-001.xht
</span><span class="lines">@@ -36,9 +34,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-line-002.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-line-003-expected.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-first-line-003.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-float-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-float-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-floats-no-intrude-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-floats-no-intrude-001.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-letter-001-expected.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-letter-001.xht
</span><span class="lines">@@ -52,20 +48,14 @@
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-line-002.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-line-003-expected.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-first-line-003.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-float-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-float-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-floats-no-intrude-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-margins-no-collapse-001-expected.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-multicol-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-multicol-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-vertical-align-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-inline-vertical-align-001.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-margins-no-collapse-001-expected.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-margins-no-collapse-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-multicol-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-multicol-001.xht
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-support-display-001.xht
</span><del>-/LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-vertical-align-001-expected.xht
</del><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-grid-1/grid-model/grid-vertical-align-001.xht
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestcssscoping1OWNERS"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/OWNERS (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/OWNERS                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/OWNERS        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+@kojiishi
+@rniwa
+@tabatkins
+@fantasai
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestcssscoping1cssscopingshadowslotstyleexpectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-style-expected.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-style-expected.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-style-expected.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+    &lt;title&gt;CSS Scoping Module Level 1 - A green box reference&lt;/title&gt;
+    &lt;link rel=&quot;author&quot; title=&quot;Ryosuke Niwa&quot; href=&quot;mailto:rniwa@webkit.org&quot;/&gt;
+&lt;/head&gt;
+&lt;body&gt;
+    &lt;p&gt;Test passes if you see a single 100px by 100px green box below.&lt;/p&gt;
+    &lt;div style=&quot;width: 100px; height: 100px; background: green;&quot;&gt;&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestcssscoping1cssscopingshadowslotstylehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-style.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-style.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-style.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,47 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+    &lt;title&gt;CSS Scoping Module Level 1 - Ensure that slot's style is inherited by slotted children&lt;/title&gt;
+    &lt;link rel=&quot;author&quot; title=&quot;Ryosuke Niwa&quot; href=&quot;mailto:rniwa@webkit.org&quot;/&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/css-scoping-1/#selectors-data-model&quot;&gt;
+    &lt;link rel=&quot;match&quot; href=&quot;reference/green-box.html&quot;/&gt;
+&lt;/head&gt;
+&lt;body&gt;
+    &lt;style&gt;
+    my-host, my-non-host {
+        display: block;
+        width: 100px;
+        height: 50px;
+        overflow: hidden;
+        background: red;
+        color: red;
+    }
+    div {
+        width: 100%;
+        height: 50%;
+    }
+    &lt;/style&gt;
+    &lt;p&gt;Test passes if you see a single 100px by 100px green box below.&lt;/p&gt; 
+    &lt;my-host&gt;
+        &lt;div slot=&quot;green&quot; style=&quot;background: green;&quot;&gt;FAIL&lt;/div&gt;
+        &lt;div slot=&quot;green&quot; style=&quot;background: inherit;&quot;&gt;FAIL&lt;/div&gt;
+    &lt;/my-host&gt;
+    &lt;my-non-host&gt;
+        &lt;slot name=&quot;green&quot; style=&quot;color: green; background: green&quot;&gt;
+            &lt;div slot=&quot;green&quot; style=&quot;background: green;&quot;&gt;FAIL&lt;/div&gt;
+            &lt;div slot=&quot;green&quot; style=&quot;background: inherit;&quot;&gt;FAIL&lt;/div&gt;
+        &lt;/slot&gt;
+    &lt;/my-non-host&gt;
+    &lt;script&gt;
+
+    try {
+        var shadowHost = document.querySelector('my-host');
+        shadowRoot = shadowHost.attachShadow({mode: 'open'});
+        shadowRoot.innerHTML = '&lt;slot name=&quot;green&quot; style=&quot;color: green; background: green&quot;&gt;&lt;/slot&gt;';
+    } catch (exception) {
+        document.body.appendChild(document.createTextNode(exception));
+    }
+
+    &lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestcssscoping1w3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/csswg-test/css-scoping-1/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -15,6 +15,7 @@
</span><span class="cx"> None
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><ins>+/LayoutTests/imported/w3c/csswg-test/css-scoping-1/OWNERS
</ins><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-before-after-expected.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-before-after.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-rules-expected.html
</span><span class="lines">@@ -34,6 +35,8 @@
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-expected.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-fallback-expected.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-fallback.html
</span><ins>+/LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-style-expected.html
+/LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-style.html
</ins><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slotted-nested-expected.html
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slotted-nested.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestlint"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/csswg-test/lint (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/lint                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/csswg-test/lint        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+#!/usr/bin/env python
+import sys
+
+try:
+    from wpt_tools.lint import lint
+except ImportError:
+    print(&quot;wpt_tools.lint not found.  Did you forget to run &quot;
+          '&quot;git submodule update --init --recursive&quot;?')
+    sys.exit(2)
+
+sys.exit(0 if lint.main(force_css_mode=True) == 0 else 1)
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestlintwhitelist"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/csswg-test/lint.whitelist (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/lint.whitelist                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/csswg-test/lint.whitelist        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,520 @@
</span><ins>+# File containing whitelist for lint errors
+# Format is:
+# ERROR TYPE:file/name/pattern[:line number]
+# e.g.
+# TRAILING WHITESPACE:example/file.html:128
+# to allow trailing whitespace on example/file.html line 128
+
+## File types that should never be checked
+*:*.pdf
+*:*.jpg
+*:*.png
+*:*.gif
+*:*.pdf
+*:*.wav
+*:*.mp3
+*:*.m4a
+*:*.mov
+*:*.oga
+*:*.ogv
+*:*.webm
+*:*.mp4
+*:*.m4v
+*:*.otf
+*:*.ttf
+*:*.TTF
+*:*.woff
+*:*.woff2
+*:*.eot
+*:*.sfd
+*:*.swf
+*:*.ani
+*:*.cur
+*:*.ico
+
+
+## Git submodules are not currently scanned
+*:wpt_tools/*
+*:resources/*
+
+
+## Helper scripts ##
+W3C-TEST.ORG:tools/*
+PRINT STATEMENT:tools/*
+W3C-TEST.ORG:*/tools/*
+PRINT STATEMENT:*/tools/*
+
+
+## Third party data files
+TRAILING WHITESPACE: css-writing-modes-3/tools/generators/ucd/Blocks.txt
+
+
+## Test generation files
+CONSOLE: css-writing-modes-3/tools/generators/unicode-data.js
+
+
+## Give up on work-in-progress for now
+TRAILING WHITESPACE: work-in-progress/*
+INDENT TABS: work-in-progress/*
+CR AT EOL: work-in-progress/*
+
+
+## Test plans and implementation reports
+*: */reports/*
+*: */test-plan/*
+
+
+## Things we don't have enabled yet
+OPEN-NO-MODE: *
+PARSE-FAILED: *
+PRINT STATEMENT: *
+W3C-TEST.ORG: *
+CONTENT-VISUAL: *
+CONTENT-MANUAL: *
+
+
+## Support files not in /support/ or similar
+SUPPORT-WRONG-DIR: */reftest.list
+SUPPORT-WRONG-DIR: *.headers
+SUPPORT-WRONG-DIR: */README
+SUPPORT-WRONG-DIR: */README.md
+SUPPORT-WRONG-DIR: *-README
+SUPPORT-WRONG-DIR: */LICENSE
+SUPPORT-WRONG-DIR: */LICENSE-*
+SUPPORT-WRONG-DIR: */COPYING
+SUPPORT-WRONG-DIR: */Makefile
+SUPPORT-WRONG-DIR: */OWNERS
+
+# The selectors-3 testsuite has a weird build system
+SUPPORT-WRONG-DIR: selectors-3/*
+
+# Things we should fix
+SUPPORT-WRONG-DIR: css-animations-1/animationevent-interface.js
+SUPPORT-WRONG-DIR: css-backgrounds-3/justfortest.html
+SUPPORT-WRONG-DIR: css-backgrounds-3/background-clip/list.txt
+SUPPORT-WRONG-DIR: css-backgrounds-3/background-origin/list.txt
+SUPPORT-WRONG-DIR: css-color-3/htaccess
+SUPPORT-WRONG-DIR: css-fonts-3/font-variant-debug.html
+SUPPORT-WRONG-DIR: css-masking-1/clip-path/svg-clipPath.svg
+SUPPORT-WRONG-DIR: css21/section-index.xht
+SUPPORT-WRONG-DIR: css21/other-formats/xml/background-18.css
+SUPPORT-WRONG-DIR: css21/other-formats/xml/background-19-alt.xml
+SUPPORT-WRONG-DIR: css21/other-formats/xml/background-19.css
+SUPPORT-WRONG-DIR: filters-1/filter-external-002-filter.svg
+SUPPORT-WRONG-DIR: vendor-imports/mozilla/mozilla-central-reftests/check-for-references.sh
+SUPPORT-WRONG-DIR: vendor-imports/mozilla/mozilla-central-reftests/sync-tests-filter
+SUPPORT-WRONG-DIR: vendor-imports/mozilla/mozilla-central-reftests/sync-tests.sh
+SUPPORT-WRONG-DIR: vendor-imports/mozilla/mozilla-central-reftests/masking/blank.html
+SUPPORT-WRONG-DIR: vendor-imports/mozilla/mozilla-central-reftests/transforms/green.html
+SUPPORT-WRONG-DIR: WOFF2-UserAgent/manifest.txt
+SUPPORT-WRONG-DIR: WOFF2-UserAgent/Tests/xhtml1/testcaseindex.xht
+NON-EXISTENT-REF: css-masking-1/clip-path-svg-content/clip-path-clip-rule-008.svg
+NON-EXISTENT-REF: css-masking-1/clip-path-svg-content/clip-path-precision-001.svg
+NON-EXISTENT-REF: css-shapes-1/spec-examples/shape-outside-012.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-001.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-002.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-003.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-004.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-005.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-006.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-007.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-008.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-009.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-010.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-011.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-ic-001.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-ic-002.html
+NON-EXISTENT-REF: css-text-3/line-breaking/line-breaking-ic-003.html
+NON-EXISTENT-REF: css21/tables/border-collapse-005.html
+NON-EXISTENT-REF: mediaqueries-3/relative-units-002.html
+NON-EXISTENT-REF: mediaqueries-3/relative-units-003.html
+NON-EXISTENT-REF: mediaqueries-3/relative-units-004.html
+SAME-FILE-REF: css-multicol-1/multicol-rule-shorthand-2.xht
+
+
+## Whitespace rules that we can't enforce yet
+INDENT TABS: .gitmodules
+INDENT TABS: compositing-1/*
+INDENT TABS: css21/*
+INDENT TABS: css-align-3/*
+INDENT TABS: css-backgrounds-3/*
+INDENT TABS: css-color-3/*
+INDENT TABS: css-color-4/*
+INDENT TABS: css-conditional-3/*
+INDENT TABS: css-counter-styles-3/*
+INDENT TABS: css-flexbox-1/*
+INDENT TABS: css-fonts-3/*
+INDENT TABS: css-grid-1/*
+INDENT TABS: css-images-3/*
+INDENT TABS: css-lists-3/*
+INDENT TABS: css-masking-1/*
+INDENT TABS: css-multicol-1/*
+INDENT TABS: cssom-1/*
+INDENT TABS: cssom-view-1/*
+INDENT TABS: css-page-3/*
+INDENT TABS: css-pseudo-4/*
+INDENT TABS: css-regions-1/*
+INDENT TABS: css-round-display/*
+INDENT TABS: css-shapes-1/*
+INDENT TABS: css-speech-1/*
+INDENT TABS: css-tables-3/*
+INDENT TABS: css-text-3/*
+INDENT TABS: css-text-decor-3/*
+INDENT TABS: css-transforms-1/*
+INDENT TABS: css-transitions-1/*
+INDENT TABS: css-ui-3/*
+INDENT TABS: css-values-3/*
+INDENT TABS: css-variables-1/*
+INDENT TABS: css-writing-modes-3/*
+INDENT TABS: filters-1/*
+INDENT TABS: fonts/*
+INDENT TABS: mediaqueries-3/*
+INDENT TABS: selectors-3/*
+INDENT TABS: selectors-4/*
+INDENT TABS: vendor-imports/*
+INDENT TABS: WOFF2-UserAgent/*
+
+
+## Things we're stopping from getting worse
+CONSOLE: css-flexbox-1/support/check-layout-th.js
+CONSOLE: css-regions-1/elements/support/Three.js
+CONSOLE: css-regions-1/interactivity/selection/support/js/selection-test-helper.js
+CONSOLE: css-regions-1/stacking-context/javascript-stacking-context-002.html
+CONSOLE: css-shapes-1/shape-outside/supported-shapes/support/test-utils.js
+CONSOLE: css-transitions-1/transition-delay-002.html
+CONSOLE: css-transitions-1/transition-delay-003.html
+CONSOLE: css-values-3/viewport-units-css2-001.html
+CONSOLE: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001*.html
+CONSOLE: css-writing-modes-3/tools/generators/gulpfile.js
+CONSOLE: css-writing-modes-3/tools/generators/text-orientation-generator.js
+CONSOLE: cssom-1/index-002.html
+CONSOLE: work-in-progress/mozilla/mochitest-simplified/packed.js
+CONSOLE: work-in-progress/ttwf_sf/divya/index-002.html
+CONSOLE: work-in-progress/ttwf_tokyo/hiromitsuuuuu/test_font_face_parser.html
+
+TRAILING WHITESPACE: css21/generated-content/before-after-positioned-002.html
+TRAILING WHITESPACE: css21/generated-content/before-after-positioned-003.html
+TRAILING WHITESPACE: css21/generated-content/before-after-positioned-004.html
+TRAILING WHITESPACE: css-color-4/lab-004.html
+TRAILING WHITESPACE: css-color-4/lab-005.html
+TRAILING WHITESPACE: css-color-4/lab-006.html
+TRAILING WHITESPACE: css-color-4/lab-007.html
+TRAILING WHITESPACE: css-color-4/lch-004.html
+TRAILING WHITESPACE: css-color-4/lch-005.html
+TRAILING WHITESPACE: css-color-4/lch-006.html
+TRAILING WHITESPACE: css-color-4/lch-007.html
+TRAILING WHITESPACE: css-fonts-3/support/fonts/gsubtest-lookup3.ufo/features.fea
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-assigned-node-with-before-after.html
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-assigned-node-with-rules.html
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-host-rule.html
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-host-with-before-after.html
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-invisible-slot.html
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-root-hides-children.html
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-slot-display-override.html
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-slot.html
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-slot-style.html
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-slotted-nested.html
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-slotted-rule.html
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-with-outside-rules.html
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-with-rules.html
+TRAILING WHITESPACE: css-scoping-1/css-scoping-shadow-with-rules-no-style-leak.html
+TRAILING WHITESPACE: css-transforms-1/css3-transform-rotateY.html
+TRAILING WHITESPACE: css-variables-1/reference/vars-font-shorthand-001-ref.html
+TRAILING WHITESPACE: css-variables-1/vars-font-shorthand-001.html
+TRAILING WHITESPACE: geometry-1/DOMMatrix-001.html
+TRAILING WHITESPACE: vendor-imports/mozilla/mozilla-central-reftests/css21/pagination/moz-css21-float-page-break-inside-avoid-7.html
+TRAILING WHITESPACE: vendor-imports/mozilla/mozilla-central-reftests/css21/pagination/moz-css21-float-page-break-inside-avoid-7-ref.html
+TRAILING WHITESPACE: vendor-imports/mozilla/mozilla-central-reftests/css21/pagination/moz-css21-float-page-break-inside-avoid-8.html
+TRAILING WHITESPACE: vendor-imports/mozilla/mozilla-central-reftests/css21/pagination/moz-css21-float-page-break-inside-avoid-8-ref.html
+TRAILING WHITESPACE: vendor-imports/mozilla/mozilla-central-reftests/css21/pagination/moz-css21-float-page-break-inside-avoid-9.html
+TRAILING WHITESPACE: vendor-imports/mozilla/mozilla-central-reftests/css21/pagination/moz-css21-float-page-break-inside-avoid-9-ref.html
+TRAILING WHITESPACE: vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-mbp-horiz-001-rtl-reverse.xhtml
+TRAILING WHITESPACE: vendor-imports/mozilla/mozilla-central-reftests/multicol3/moz-multicol3-column-balancing-break-inside-avoid-1.html
+TRAILING WHITESPACE: vendor-imports/mozilla/mozilla-central-reftests/multicol3/moz-multicol3-column-balancing-break-inside-avoid-1-ref.html
+
+SET TIMEOUT: compositing-1/mix-blend-mode/mix-blend-mode-parent-with-3D-transform-and-transition.html
+SET TIMEOUT: compositing-1/mix-blend-mode/mix-blend-mode-sibling-with-3D-transform-and-transition.html
+SET TIMEOUT: css-animations-1/animation-display.html
+SET TIMEOUT: css-animations-1/animation-display.html
+SET TIMEOUT: css-animations-1/animation-duration-001.html
+SET TIMEOUT: css-animations-1/animation-duration-003.html
+SET TIMEOUT: css-animations-1/animation-duration-004.html
+SET TIMEOUT: css-animations-1/animation-iteration-count-006.html
+SET TIMEOUT: css-animations-1/animation-name-001.html
+SET TIMEOUT: css-animations-1/animation-name-003.html
+SET TIMEOUT: css-animations-1/animation-name-004.html
+SET TIMEOUT: css-animations-1/animation-play-state-001.html
+SET TIMEOUT: css-shapes-1/spec-examples/support/spec-example-utils.js
+SET TIMEOUT: css-transitions-1/changing-while-transition.html
+SET TIMEOUT: css-transitions-1/events-007.html
+SET TIMEOUT: css-transitions-1/events-007.html
+SET TIMEOUT: css-transitions-1/support/generalParallelTest.js
+SET TIMEOUT: css-transitions-1/support/runParallelAsyncHarness.js
+SET TIMEOUT: css-transitions-1/support/runParallelAsyncHarness.js
+SET TIMEOUT: css-transitions-1/support/runParallelAsyncHarness.js
+SET TIMEOUT: css-transitions-1/transitions-animatable-properties-01.html
+SET TIMEOUT: css-transitions-1/transitions-animatable-properties-01.html
+SET TIMEOUT: css-transitions-2/transitioncancel-001.html
+SET TIMEOUT: css-transitions-2/transitioncancel-001.html
+SET TIMEOUT: css-values-3/reference/vh_not_refreshing_on_chrome-ref.html
+SET TIMEOUT: css-values-3/reference/vh_not_refreshing_on_chrome-ref.html
+SET TIMEOUT: css-values-3/reference/vh_not_refreshing_on_chrome_iframe-ref.html
+SET TIMEOUT: css-values-3/reference/vh_not_refreshing_on_chrome_iframe-ref.html
+SET TIMEOUT: css-values-3/vh_not_refreshing_on_chrome.html
+SET TIMEOUT: css-values-3/vh_not_refreshing_on_chrome.html
+SET TIMEOUT: css-values-3/vh_not_refreshing_on_chrome_iframe.html
+SET TIMEOUT: css-values-3/vh_not_refreshing_on_chrome_iframe.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001a.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001b.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001c.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001d.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001e.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001f.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001g.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001h.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001i.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001j.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001k.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001l.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001m.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001n.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001o.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001p.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001q.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001r.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001s.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001t.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001u.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001v.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001w.html
+SET TIMEOUT: css-writing-modes-3/orthogonal-parent-shrink-to-fit-001x.html
+SET TIMEOUT: css-writing-modes-3/support/text-orientation.js
+SET TIMEOUT: css21/backgrounds/background-root-101.xht
+SET TIMEOUT: css21/backgrounds/background-root-102.xht
+SET TIMEOUT: css21/backgrounds/background-root-103.xht
+SET TIMEOUT: css21/floats-clear/floats-137.xht
+SET TIMEOUT: css21/generated-content/counter-increment-000.xht
+SET TIMEOUT: css21/generated-content/counter-increment-001.xht
+SET TIMEOUT: css21/generated-content/counter-increment-002.xht
+SET TIMEOUT: css21/generated-content/counter-reset-000.xht
+SET TIMEOUT: css21/generated-content/counter-reset-001.xht
+SET TIMEOUT: css21/generated-content/counter-reset-002.xht
+SET TIMEOUT: css21/selectors/dom-hover-001.xht
+SET TIMEOUT: css21/selectors/dom-hover-002.xht
+SET TIMEOUT: css21/tables/tables-102.xht
+SET TIMEOUT: cssom-view-1/matchMediaAddListener.html
+SET TIMEOUT: cssom-view-1/matchMediaAddListener.html
+SET TIMEOUT: mediaqueries-3/min-width-tables-001.html
+SET TIMEOUT: mediaqueries-3/min-width-tables-001.html
+SET TIMEOUT: mediaqueries-3/min-width-tables-001.html
+SET TIMEOUT: selectors-4/focus-within-shadow-001.html
+SET TIMEOUT: selectors-4/focus-within-shadow-002.html
+SET TIMEOUT: selectors-4/focus-within-shadow-003.html
+SET TIMEOUT: selectors-4/focus-within-shadow-004.html
+SET TIMEOUT: selectors-4/focus-within-shadow-005.html
+SET TIMEOUT: selectors-4/focus-within-shadow-005.html
+SET TIMEOUT: work-in-progress/apple/css-transforms/scripts/prefixfree.min.js
+SET TIMEOUT: work-in-progress/aryehgregor/transitions/test_transitions.html
+SET TIMEOUT: work-in-progress/aryehgregor/transitions/test_transitions.html
+SET TIMEOUT: work-in-progress/aryehgregor/transitions/test_transitions_per_property.html
+SET TIMEOUT: work-in-progress/gabriele/css-xml-dom/js/prototype.js
+SET TIMEOUT: work-in-progress/hixie/no-pass-condition/box-float-clear-004-demo.html
+SET TIMEOUT: work-in-progress/hixie/no-pass-condition/box-float-clear-004-demo.html
+SET TIMEOUT: work-in-progress/hp/th/collapsible2.js
+SET TIMEOUT: work-in-progress/hp/th/collapsible2.js
+SET TIMEOUT: work-in-progress/hp/th/collapsible2.js
+SET TIMEOUT: work-in-progress/hp/th/collapsible2.js
+SET TIMEOUT: work-in-progress/microsoft/CSS3/animations/animation-001.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/animations/animation-computed-value-001.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/animations/animation-computed-value-001.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/animations/animation-computed-value-001.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/animations/animation-computed-value-001.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/animations/animation-name-003.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/selectors/dynamicEmpty.htm
+SET TIMEOUT: work-in-progress/microsoft/CSS3/transitions/transition-001.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/transitions/transition-001.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/transitions/transition-computed-value-002.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/transitions/transition-computed-value-002.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/transitions/transition-computed-value-003.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/transitions/transition-computed-value-003.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/transitions/transition-computed-value-animation-001.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/transitions/transition-reverse-001.xht
+SET TIMEOUT: work-in-progress/microsoft/CSS3/transitions/transition-reverse-001.xht
+SET TIMEOUT: work-in-progress/mozilla/mochitest-simplified/SimpleTest.js
+SET TIMEOUT: work-in-progress/mozilla/mochitest-simplified/packed.js
+SET TIMEOUT: work-in-progress/opera/animations/0_as_keyframe_selector.html
+SET TIMEOUT: work-in-progress/opera/animations/affects_computed_value.html
+SET TIMEOUT: work-in-progress/opera/animations/after_pseudo.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-delay_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-delay_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-delay_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-delay_inherit.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-delay_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-delay_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-delay_negative_starting_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-delay_negative_starting_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-delay_negative_value.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-delay_one_value.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-delay_two_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-direction_alternate.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-direction_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-direction_inherit.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-direction_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-direction_normal.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-direction_two_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-direction_two_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-direction_two_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-duration_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-duration_inherit.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-duration_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-duration_one_value.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-duration_start_end_events.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-duration_two_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_backwards.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_backwards.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_both.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_both.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_forwards.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_forwards.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_forwards_even_alternate.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_forwards_even_alternate.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_forwards_removing_animation.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_inherit.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_two_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-fill-mode_two_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-iteration-count_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-iteration-count_infinite.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-iteration-count_inherit.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-iteration-count_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-iteration-count_non-integer.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-iteration-count_one_value.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-iteration-count_two_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-name_corresponding_other_props.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-name_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-name_inherit.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-name_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-name_list_longer.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-name_none.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-name_none_overriding.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-name_one_value.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-name_two_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-play-state_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-play-state_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-play-state_inherit.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-play-state_inherit.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-play-state_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-play-state_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-play-state_paused.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-play-state_paused.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-play-state_running.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-play-state_running.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-play-state_running.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-play-state_two_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-play-state_two_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_cubic-bezier.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_cubic-bezier.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_cubic-bezier_x_out_of_range.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_cubic-bezier_y_gt_1.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_cubic-bezier_y_gt_1.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_ease-in-out.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_ease-in-out.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_ease-in.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_ease-in.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_ease-out.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_ease-out.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_ease.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_ease.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_inherit.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_keyframe_and_declaration.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_keyframe_and_declaration.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_keyframe_and_declaration.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_linear.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_linear.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_multiple_keyframes.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_multiple_keyframes.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_step-end.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_step-start.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_steps_0.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_steps_one_parameter.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_steps_two_parameters_end.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_steps_two_parameters_start.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_two_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation-timing-function_two_values.html
+SET TIMEOUT: work-in-progress/opera/animations/animation_shorthand_after_longhand.html
+SET TIMEOUT: work-in-progress/opera/animations/animation_shorthand_after_longhand.html
+SET TIMEOUT: work-in-progress/opera/animations/animation_shorthand_before_longhand.html
+SET TIMEOUT: work-in-progress/opera/animations/animation_shorthand_default.html
+SET TIMEOUT: work-in-progress/opera/animations/animation_shorthand_important.html
+SET TIMEOUT: work-in-progress/opera/animations/animation_shorthand_infinite_name.html
+SET TIMEOUT: work-in-progress/opera/animations/animation_shorthand_inherit.html
+SET TIMEOUT: work-in-progress/opera/animations/animation_shorthand_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation_shorthand_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation_shorthand_inline.html
+SET TIMEOUT: work-in-progress/opera/animations/animation_shorthand_number_time.html
+SET TIMEOUT: work-in-progress/opera/animations/animation_shorthand_two_times.html
+SET TIMEOUT: work-in-progress/opera/animations/animation_shorthand_two_times_separate_animations.html
+SET TIMEOUT: work-in-progress/opera/animations/animationend_bubble.html
+SET TIMEOUT: work-in-progress/opera/animations/animationevent_init_bubble.html
+SET TIMEOUT: work-in-progress/opera/animations/animationevent_init_name.html
+SET TIMEOUT: work-in-progress/opera/animations/animationevent_init_time.html
+SET TIMEOUT: work-in-progress/opera/animations/animationevent_init_type.html
+SET TIMEOUT: work-in-progress/opera/animations/animationevent_multiple_animations.html
+SET TIMEOUT: work-in-progress/opera/animations/animationevent_time_paused.html
+SET TIMEOUT: work-in-progress/opera/animations/animationevent_time_paused.html
+SET TIMEOUT: work-in-progress/opera/animations/animationevent_time_paused.html
+SET TIMEOUT: work-in-progress/opera/animations/animationevent_time_start_delay_negative.html
+SET TIMEOUT: work-in-progress/opera/animations/animationevent_time_start_delay_positive.html
+SET TIMEOUT: work-in-progress/opera/animations/animationiteration_bubble.html
+SET TIMEOUT: work-in-progress/opera/animations/animationiteration_count_one.html
+SET TIMEOUT: work-in-progress/opera/animations/animationstart_bubble.html
+SET TIMEOUT: work-in-progress/opera/animations/at_media_matching.html
+SET TIMEOUT: work-in-progress/opera/animations/at_media_not_matching.html
+SET TIMEOUT: work-in-progress/opera/animations/before_pseudo.html
+SET TIMEOUT: work-in-progress/opera/animations/changing_animation_name.html
+SET TIMEOUT: work-in-progress/opera/animations/changing_animation_name.html
+SET TIMEOUT: work-in-progress/opera/animations/changing_animation_props.html
+SET TIMEOUT: work-in-progress/opera/animations/changing_keyframes.html
+SET TIMEOUT: work-in-progress/opera/animations/changing_keyframes_before.html
+SET TIMEOUT: work-in-progress/opera/animations/computed_value_after_end.html
+SET TIMEOUT: work-in-progress/opera/animations/computed_value_before_application.html
+SET TIMEOUT: work-in-progress/opera/animations/computed_value_before_application.html
+SET TIMEOUT: work-in-progress/opera/animations/computed_value_during_delay.html
+SET TIMEOUT: work-in-progress/opera/animations/csskeyframesrule_name_animation.html
+SET TIMEOUT: work-in-progress/opera/animations/duplicate_keyframe_selectors.html
+SET TIMEOUT: work-in-progress/opera/animations/events_empty_keyframes.html
+SET TIMEOUT: work-in-progress/opera/animations/from_keyframe_omitted.html
+SET TIMEOUT: work-in-progress/opera/animations/from_keyframe_omitted.html
+SET TIMEOUT: work-in-progress/opera/animations/from_keyword.html
+SET TIMEOUT: work-in-progress/opera/animations/invalid_keyframes_rule.html
+SET TIMEOUT: work-in-progress/opera/animations/keyframe_empty_block.html
+SET TIMEOUT: work-in-progress/opera/animations/keyframe_order.html
+SET TIMEOUT: work-in-progress/opera/animations/keyframe_order.html
+SET TIMEOUT: work-in-progress/opera/animations/keyframe_selector_list.html
+SET TIMEOUT: work-in-progress/opera/animations/keyframe_selector_list.html
+SET TIMEOUT: work-in-progress/opera/animations/keyframes_cycle_behavior.html
+SET TIMEOUT: work-in-progress/opera/animations/keyframes_not_cascading.html
+SET TIMEOUT: work-in-progress/opera/animations/keyframes_rules_not_cascading.html
+SET TIMEOUT: work-in-progress/opera/animations/multiple_animations.html
+SET TIMEOUT: work-in-progress/opera/animations/multiple_matching_keyframes.html
+SET TIMEOUT: work-in-progress/opera/animations/no_matching_keyframes_rule.html
+SET TIMEOUT: work-in-progress/opera/animations/non-animatable_properties.html
+SET TIMEOUT: work-in-progress/opera/animations/removing_animation.html
+SET TIMEOUT: work-in-progress/opera/animations/restarting_animation.html
+SET TIMEOUT: work-in-progress/opera/animations/restarting_animation.html
+SET TIMEOUT: work-in-progress/opera/animations/style_declaration_dom_attributes.html
+SET TIMEOUT: work-in-progress/opera/animations/timing_function_in_keyframe.html
+SET TIMEOUT: work-in-progress/opera/animations/timing_function_in_keyframe.html
+SET TIMEOUT: work-in-progress/opera/animations/timing_function_in_keyframe.html
+SET TIMEOUT: work-in-progress/opera/animations/to_keyframe_omitted.html
+SET TIMEOUT: work-in-progress/opera/animations/to_keyframe_omitted.html
+SET TIMEOUT: work-in-progress/opera/animations/to_keyword.html
+SET TIMEOUT: work-in-progress/ttwf_sf/houzhenyu/flex-item-change-width.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestmanifest"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/csswg-test/manifest (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/manifest                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/csswg-test/manifest        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+#!/usr/bin/env python
+import os
+import sys
+
+from wpt_tools.manifest import update
+
+update.main(default_tests_root=
+            os.path.abspath(os.path.dirname(__file__)))
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestrequirementstxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/csswg-test/requirements.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/requirements.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/csswg-test/requirements.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+six==1.10.0
+Template-Python==0.1.post1
+html5lib==0.9999999
+lxml==3.7.3
+mercurial==4.1
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestserve"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/csswg-test/serve (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/serve                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/csswg-test/serve        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+#!/usr/bin/env python
+import serve
+
+if __name__ == &quot;__main__&quot;:
+    serve.main()
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestservepy"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/csswg-test/serve.py (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/serve.py                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/csswg-test/serve.py        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+from wpt_tools.serve import serve
+
+def main():
+    serve.main()
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3ccsswgtestw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/csswg-test/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/csswg-test/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/csswg-test/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -16,5 +16,13 @@
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><span class="cx"> /LayoutTests/imported/w3c/csswg-test/CONTRIBUTING.md
</span><del>-/LayoutTests/imported/w3c/csswg-test/LICENSE
</del><ins>+/LayoutTests/imported/w3c/csswg-test/LICENSE.md
</ins><span class="cx"> /LayoutTests/imported/w3c/csswg-test/README.md
</span><ins>+/LayoutTests/imported/w3c/csswg-test/build-css-testsuites.sh
+/LayoutTests/imported/w3c/csswg-test/config.default.json
+/LayoutTests/imported/w3c/csswg-test/lint
+/LayoutTests/imported/w3c/csswg-test/lint.whitelist
+/LayoutTests/imported/w3c/csswg-test/manifest
+/LayoutTests/imported/w3c/csswg-test/requirements.txt
+/LayoutTests/imported/w3c/csswg-test/serve
+/LayoutTests/imported/w3c/csswg-test/serve.py
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cresourcesTestRepositories"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/resources/TestRepositories (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/resources/TestRepositories        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/resources/TestRepositories        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx">     {
</span><span class="cx">         &quot;name&quot;: &quot;csswg-test&quot;,
</span><span class="cx">         &quot;url&quot;: &quot;https://github.com/w3c/csswg-test.git&quot;,
</span><del>-        &quot;revision&quot;: &quot;b2daa426addd5ccb8e9ce1c5d800f9d82603f1ec&quot;,
</del><ins>+        &quot;revision&quot;: &quot;d5146115f631a1cc6bc53a4f134d4e2a26fe2fb5&quot;,
</ins><span class="cx">         &quot;paths_to_skip&quot;: [
</span><span class="cx">             &quot;support&quot;,
</span><span class="cx">             &quot;tools&quot;,
</span><span class="lines">@@ -15,7 +15,7 @@
</span><span class="cx">     {
</span><span class="cx">         &quot;name&quot;: &quot;web-platform-tests&quot;,
</span><span class="cx">         &quot;url&quot;: &quot;https://github.com/w3c/web-platform-tests.git&quot;,
</span><del>-        &quot;revision&quot;: &quot;06c6c52e05e05483d3c844168a417ee27a554eb7&quot;,
</del><ins>+        &quot;revision&quot;: &quot;a5b95cb31914507088a4eda16f7674bbc6f3313f&quot;,
</ins><span class="cx">         &quot;paths_to_skip&quot;: [
</span><span class="cx">             &quot;conformance-checkers&quot;,
</span><span class="cx">             &quot;docs&quot;,
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cresourcesimportexpectationsjson"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/resources/import-expectations.json (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/resources/import-expectations.json        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/resources/import-expectations.json        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,4 +1,5 @@
</span><span class="cx"> {
</span><ins>+    &quot;csswg-test/WOFF2-UserAgent&quot;: &quot;skip&quot;, 
</ins><span class="cx">     &quot;csswg-test/compositing-1&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-align-3&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-animations-1&quot;: &quot;skip&quot;, 
</span><span class="lines">@@ -10,6 +11,7 @@
</span><span class="cx">     &quot;csswg-test/css-color-4&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-conditional-3&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-counter-styles-3&quot;: &quot;skip&quot;, 
</span><ins>+    &quot;csswg-test/css-display-3&quot;: &quot;skip&quot;, 
</ins><span class="cx">     &quot;csswg-test/css-exclusions-1&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-flexbox-1&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-fonts-3&quot;: &quot;skip&quot;, 
</span><span class="lines">@@ -17,6 +19,7 @@
</span><span class="cx">     &quot;csswg-test/css-grid-1&quot;: &quot;import&quot;, 
</span><span class="cx">     &quot;csswg-test/css-images-3&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-lists-3&quot;: &quot;skip&quot;, 
</span><ins>+    &quot;csswg-test/css-logical-properties-1&quot; : &quot;skip&quot;, 
</ins><span class="cx">     &quot;csswg-test/css-masking-1&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-multicol-1&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-namespaces-1&quot;: &quot;skip&quot;, 
</span><span class="lines">@@ -24,6 +27,7 @@
</span><span class="cx">     &quot;csswg-test/css-page-3&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-pseudo-4&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-regions-1&quot;: &quot;skip&quot;, 
</span><ins>+    &quot;csswg-test/css-rhythm-1&quot;: &quot;skip&quot;, 
</ins><span class="cx">     &quot;csswg-test/css-round-display&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-ruby-1&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-scoping1&quot;: &quot;import&quot;, 
</span><span class="lines">@@ -40,6 +44,7 @@
</span><span class="cx">     &quot;csswg-test/css-transitions-2&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-ui-3&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-values-3&quot;: &quot;skip&quot;, 
</span><ins>+    &quot;csswg-test/css-values-4&quot;: &quot;skip&quot;, 
</ins><span class="cx">     &quot;csswg-test/css-variables-1&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css-writing-modes-3&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;csswg-test/css1&quot;: &quot;skip&quot;, 
</span><span class="lines">@@ -102,6 +107,7 @@
</span><span class="cx">     &quot;web-platform-tests/content-security-policy&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/cookies&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/cors&quot;: &quot;skip&quot;, 
</span><ins>+    &quot;web-platform-tests/css-typed-om&quot;: &quot;skip&quot;, 
</ins><span class="cx">     &quot;web-platform-tests/css-values&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/cssom&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/cssom-view&quot;: &quot;skip&quot;, 
</span><span class="lines">@@ -223,6 +229,7 @@
</span><span class="cx">     &quot;web-platform-tests/html/semantics/embedded-content/the-area-element/area_nohref.xhtml&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/html/semantics/embedded-content/the-area-element/test-area.xhtml&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-04.html&quot;: &quot;skip&quot;, 
</span><ins>+    &quot;web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html&quot;: &quot;skip&quot;, 
</ins><span class="cx">     &quot;web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-image-data&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/html/semantics/embedded-content/the-object-element/object-events.html&quot;: &quot;skip&quot;, 
</span><span class="lines">@@ -231,6 +238,7 @@
</span><span class="cx">     &quot;web-platform-tests/html/semantics/interactive-elements/the-details-element/toggleEvent.html&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/html/semantics/interactive-elements/the-summary-element&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements&quot;: &quot;skip&quot;, 
</span><ins>+    &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/module&quot;: &quot;skip&quot;, 
</ins><span class="cx">     &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/script-for-event.xhtml&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/script-text.xhtml&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/html/semantics/text-level-semantics/the-data-element&quot;: &quot;skip&quot;, 
</span><span class="lines">@@ -239,8 +247,12 @@
</span><span class="cx">     &quot;web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents&quot;: &quot;import&quot;, 
</span><span class="cx">     &quot;web-platform-tests/html/tools&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/html/webappapis&quot;: &quot;import&quot;, 
</span><ins>+    &quot;web-platform-tests/html/webappapis/dynamic-markup-insertion&quot;: &quot;skip&quot;, 
</ins><span class="cx">     &quot;web-platform-tests/html/webappapis/idle-callbacks&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/html/webappapis/scripting/event-loops/microtask_after_raf.html&quot;: &quot;skip&quot;, 
</span><ins>+    &quot;web-platform-tests/html/webappapis/scripting/events/event-handler-processing-algorithm-error&quot;: &quot;skip&quot;, 
+    &quot;web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections&quot;: &quot;skip&quot;, 
+    &quot;web-platform-tests/html/webappapis/the-windoworworkerglobalscope-mixin&quot;: &quot;skip&quot;, 
</ins><span class="cx">     &quot;web-platform-tests/http&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/imagebitmap-renderingcontext&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/infrastructure&quot;: &quot;skip&quot;, 
</span><span class="lines">@@ -247,8 +259,10 @@
</span><span class="cx">     &quot;web-platform-tests/innerText&quot;: &quot;import&quot;, 
</span><span class="cx">     &quot;web-platform-tests/input-events&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/js&quot;: &quot;skip&quot;, 
</span><ins>+    &quot;web-platform-tests/longtask-timing&quot;: &quot;skip&quot;, 
</ins><span class="cx">     &quot;web-platform-tests/magnetometer&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/mathml&quot;: &quot;skip&quot;, 
</span><ins>+    &quot;web-platform-tests/media-capabilities&quot;: &quot;skip&quot;, 
</ins><span class="cx">     &quot;web-platform-tests/mediacapture-record&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/mediacapture-streams&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/mediasession&quot;: &quot;skip&quot;, 
</span><span class="lines">@@ -280,6 +294,8 @@
</span><span class="cx">     &quot;web-platform-tests/service-workers&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/shadow-dom&quot;: &quot;import&quot;, 
</span><span class="cx">     &quot;web-platform-tests/shadow-dom/untriaged&quot;: &quot;skip&quot;, 
</span><ins>+    &quot;web-platform-tests/storage&quot;: &quot;skip&quot;, 
+    &quot;web-platform-tests/streams/writable-streams&quot;: &quot;skip&quot;, 
</ins><span class="cx">     &quot;web-platform-tests/subresource-integrity&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/svg&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/svg-aam&quot;: &quot;skip&quot;, 
</span><span class="lines">@@ -304,4 +320,4 @@
</span><span class="cx">     &quot;web-platform-tests/webvr&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/webvtt&quot;: &quot;skip&quot;, 
</span><span class="cx">     &quot;web-platform-tests/workers&quot;: &quot;skip&quot;
</span><del>-}
</del><span class="cx">\ No newline at end of file
</span><ins>+}
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cresourcesresourcefilesjson"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/resources/resource-files.json (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/resources/resource-files.json        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/resources/resource-files.json        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -12,6 +12,10 @@
</span><span class="cx">         &quot;web-platform-tests/tools&quot;
</span><span class="cx">     ],
</span><span class="cx">     &quot;files&quot;: [
</span><ins>+        &quot;csswg-test/WOFF2-UserAgent/Tests/xhtml1/available-001.xht&quot;,
+        &quot;csswg-test/WOFF2-UserAgent/Tests/xhtml1/support/available-001a.xht&quot;,
+        &quot;csswg-test/WOFF2-UserAgent/Tests/xhtml1/support/available-001b.xht&quot;,
+        &quot;csswg-test/WOFF2-UserAgent/Tests/xhtml1/testcaseindex.xht&quot;,
</ins><span class="cx">         &quot;csswg-test/css-grid-1/grid-items/ref-filled-green-100px-square-image.html&quot;,
</span><span class="cx">         &quot;csswg-test/css-grid-1/test-plan/index.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-defer-scripts-subframe.html&quot;,
</span><span class="lines">@@ -39,6 +43,7 @@
</span><span class="cx">         &quot;web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name-2.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name-3.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name-4.html&quot;,
</span><ins>+        &quot;web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-0.html&quot;,
</ins><span class="cx">         &quot;web-platform-tests/html/browsers/browsing-the-web/history-traversal/unset_context_name.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/001-1.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/001-2.html&quot;,
</span><span class="lines">@@ -188,6 +193,7 @@
</span><span class="cx">         &quot;web-platform-tests/html/browsers/windows/nested-browsing-contexts/test.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/browsers/windows/nested-browsing-contexts/testcase3.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/browsers/windows/noreferrer-cross-origin-close-manual.sub.html&quot;,
</span><ins>+        &quot;web-platform-tests/html/browsers/windows/noreferrer-cross-origin-window-name-manual.sub.html&quot;,
</ins><span class="cx">         &quot;web-platform-tests/html/browsers/windows/noreferrer-cross-origin-window-name.sub.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/browsers/windows/support-close.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/browsers/windows/support-named-null-opener.html&quot;,
</span><span class="lines">@@ -224,6 +230,9 @@
</span><span class="cx">         &quot;web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_child.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_grandchild.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/blank.htm&quot;,
</span><ins>+        &quot;web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-without-user-gesture-failed.html&quot;,
+        &quot;web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation.html&quot;,
+        &quot;web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html&quot;,
</ins><span class="cx">         &quot;web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/sandbox_allow_script.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/iframed.sub.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/sizes-iframed.sub.html&quot;,
</span><span class="lines">@@ -234,6 +243,17 @@
</span><span class="cx">         &quot;web-platform-tests/html/semantics/forms/form-submission-0/form-data-set-usv-form.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/semantics/forms/resetting-a-form/reset-form-event-realm-support.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/semantics/forms/the-button-element/button-activate-frame.html&quot;,
</span><ins>+        &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/module/crossorigin-import-different.sub.html&quot;,
+        &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/module/crossorigin-import-missingheader.sub.html&quot;,
+        &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/module/crossorigin-import-same.sub.html&quot;,
+        &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/module/crossorigin-import-wrongheader.sub.html&quot;,
+        &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/module/crossorigin-root-different.sub.html&quot;,
+        &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/module/crossorigin-root-missingheader.sub.html&quot;,
+        &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/module/crossorigin-root-same.sub.html&quot;,
+        &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/module/crossorigin-root-wrongheader.sub.html&quot;,
+        &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-parseerror-dependent.html&quot;,
+        &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-parseerror-dependentmultiple.html&quot;,
+        &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-parseerror-root.html&quot;,
</ins><span class="cx">         &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/script-not-executed-after-shutdown-child.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onerror-insertion-point-1-helper.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onerror-insertion-point-2-helper.html&quot;,
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBabortininitialupgradeneededhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/abort-in-initial-upgradeneeded.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/abort-in-initial-upgradeneeded.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/abort-in-initial-upgradeneeded.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -12,7 +12,7 @@
</span><span class="cx"> open_rq.onupgradeneeded = function(e) {
</span><span class="cx">     db = e.target.result;
</span><span class="cx">     assert_equals(db.version, 2);
</span><del>-    transaction = e.target.transaction;
</del><ins>+    var transaction = e.target.transaction;
</ins><span class="cx">     transaction.oncomplete = fail(this, &quot;unexpected transaction.complete&quot;);
</span><span class="cx">     transaction.onabort = function(e) {
</span><span class="cx">         assert_equals(e.target.db.version, 0);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBcloseinupgradeneededhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/close-in-upgradeneeded.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/close-in-upgradeneeded.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/close-in-upgradeneeded.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -7,6 +7,7 @@
</span><span class="cx"> 
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> 
</span><ins>+var db
</ins><span class="cx"> var open_rq = createdb(async_test())
</span><span class="cx"> var sawTransactionComplete = false
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBeventdispatchactiveflagexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/event-dispatch-active-flag-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/event-dispatch-active-flag-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/event-dispatch-active-flag-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+
+PASS Transactions are active during success handlers 
+PASS Transactions are active during success listeners 
+PASS Transactions are active during error handlers 
+PASS Transactions are active during error listeners 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBeventdispatchactiveflaghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/event-dispatch-active-flag.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/event-dispatch-active-flag.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/event-dispatch-active-flag.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,154 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;Transaction active flag is set during event dispatch&lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://w3c.github.io/IndexedDB/#fire-success-event&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://w3c.github.io/IndexedDB/#fire-error-event&quot;&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;script src=support.js&gt;&lt;/script&gt;
+&lt;script&gt;
+
+indexeddb_test(
+  (t, db, tx) =&gt; {
+    db.createObjectStore('store');
+  },
+  (t, db) =&gt; {
+    const tx = db.transaction('store');
+    const release_tx = keep_alive(tx, 'store');
+
+    assert_true(is_transaction_active(tx, 'store'),
+                'Transaction should be active after creation');
+
+    const request = tx.objectStore('store').get(0);
+    request.onerror = t.unreached_func('request should succeed');
+    request.onsuccess = () =&gt; {
+      assert_true(is_transaction_active(tx, 'store'),
+                  'Transaction should be active during success handler');
+
+      let saw_handler_promise = false;
+      Promise.resolve().then(t.step_func(() =&gt; {
+        saw_handler_promise = true;
+        assert_true(is_transaction_active(tx, 'store'),
+                    'Transaction should be active in handler\'s microtasks');
+      }));
+
+      setTimeout(t.step_func(() =&gt; {
+        assert_true(saw_handler_promise);
+        assert_false(is_transaction_active(tx, 'store'),
+                     'Transaction should be inactive in next task');
+        release_tx();
+        t.done();
+      }), 0);
+    };
+  },
+  'Transactions are active during success handlers');
+
+indexeddb_test(
+  (t, db, tx) =&gt; {
+    db.createObjectStore('store');
+  },
+  (t, db) =&gt; {
+    const tx = db.transaction('store');
+    const release_tx = keep_alive(tx, 'store');
+    assert_true(is_transaction_active(tx, 'store'),
+                'Transaction should be active after creation');
+
+    const request = tx.objectStore('store').get(0);
+    request.onerror = t.unreached_func('request should succeed');
+    request.addEventListener('success', () =&gt; {
+      assert_true(is_transaction_active(tx, 'store'),
+                  'Transaction should be active during success listener');
+
+      let saw_listener_promise = false;
+      Promise.resolve().then(t.step_func(() =&gt; {
+        saw_listener_promise = true;
+        assert_true(is_transaction_active(tx, 'store'),
+                    'Transaction should be active in listener\'s microtasks');
+      }));
+
+      setTimeout(t.step_func(() =&gt; {
+        assert_true(saw_listener_promise);
+        assert_false(is_transaction_active(tx, 'store'),
+                     'Transaction should be inactive in next task');
+        release_tx();
+        t.done();
+      }), 0);
+    });
+  },
+  'Transactions are active during success listeners');
+
+indexeddb_test(
+  (t, db, tx) =&gt; {
+    db.createObjectStore('store');
+  },
+  (t, db) =&gt; {
+    const tx = db.transaction('store', 'readwrite');
+    const release_tx = keep_alive(tx, 'store');
+    assert_true(is_transaction_active(tx, 'store'),
+                'Transaction should be active after creation');
+
+    tx.objectStore('store').put(0, 0);
+    const request = tx.objectStore('store').add(0, 0);
+    request.onsuccess = t.unreached_func('request should fail');
+    request.onerror = e =&gt; {
+      e.preventDefault();
+
+      assert_true(is_transaction_active(tx, 'store'),
+                  'Transaction should be active during error handler');
+
+      let saw_handler_promise = false;
+      Promise.resolve().then(t.step_func(() =&gt; {
+        saw_handler_promise = true;
+        assert_true(is_transaction_active(tx, 'store'),
+                    'Transaction should be active in handler\'s microtasks');
+      }));
+
+      setTimeout(t.step_func(() =&gt; {
+        assert_true(saw_handler_promise);
+        assert_false(is_transaction_active(tx, 'store'),
+                     'Transaction should be inactive in next task');
+        release_tx();
+        t.done();
+      }), 0);
+    };
+  },
+  'Transactions are active during error handlers');
+
+indexeddb_test(
+  (t, db, tx) =&gt; {
+    db.createObjectStore('store');
+  },
+  (t, db) =&gt; {
+    const tx = db.transaction('store', 'readwrite');
+    const release_tx = keep_alive(tx, 'store');
+    assert_true(is_transaction_active(tx, 'store'),
+                'Transaction should be active after creation');
+
+    tx.objectStore('store').put(0, 0);
+    const request = tx.objectStore('store').add(0, 0);
+    request.onsuccess = t.unreached_func('request should fail');
+    request.addEventListener('error', e =&gt; {
+      e.preventDefault();
+
+      assert_true(is_transaction_active(tx, 'store'),
+                  'Transaction should be active during error listener');
+
+      let saw_listener_promise = false;
+      Promise.resolve().then(t.step_func(() =&gt; {
+        saw_listener_promise = true;
+        assert_true(is_transaction_active(tx, 'store'),
+                    'Transaction should be active in listener\'s microtasks');
+      }));
+
+      setTimeout(t.step_func(() =&gt; {
+        assert_true(saw_listener_promise);
+        assert_false(is_transaction_active(tx, 'store'),
+                     'Transaction should be inactive in next task');
+        release_tx();
+        t.done();
+      }), 0);
+    });
+  },
+  'Transactions are active during error listeners');
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBfireerroreventexceptionexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+CONSOLE MESSAGE: line 32: Error
+CONSOLE MESSAGE: line 42: Error
+CONSOLE MESSAGE: line 51: Error
+CONSOLE MESSAGE: line 63: Error
+CONSOLE MESSAGE: line 73: Error
+CONSOLE MESSAGE: line 91: Error
+CONSOLE MESSAGE: line 101: Error
+CONSOLE MESSAGE: line 110: Error
+CONSOLE MESSAGE: line 122: Error
+CONSOLE MESSAGE: line 132: Error
+CONSOLE MESSAGE: line 150: Error
+CONSOLE MESSAGE: line 160: Error
+CONSOLE MESSAGE: line 169: Error
+CONSOLE MESSAGE: line 181: Error
+CONSOLE MESSAGE: line 191: Error
+
+PASS Exception in error event handler on request 
+PASS Exception in error event handler on request, with preventDefault 
+PASS Exception in error event listener on request 
+PASS Exception in second error event listener on request 
+FAIL Exception in first error event listener on request, transaction active in second assert_equals: Active check should either not throw anything, or throw TransactionInactiveError expected &quot;TransactionInactiveError&quot; but got &quot;InvalidStateError&quot;
+PASS Exception in error event handler on transaction 
+PASS Exception in error event handler on transaction, with preventDefault 
+PASS Exception in error event listener on transaction 
+PASS Exception in second error event listener on transaction 
+FAIL Exception in first error event listener on transaction, transaction active in second assert_equals: Active check should either not throw anything, or throw TransactionInactiveError expected &quot;TransactionInactiveError&quot; but got &quot;InvalidStateError&quot;
+PASS Exception in error event handler on connection 
+PASS Exception in error event handler on connection, with preventDefault 
+PASS Exception in error event listener on connection 
+PASS Exception in second error event listener on connection 
+FAIL Exception in first error event listener on connection, transaction active in second assert_equals: Active check should either not throw anything, or throw TransactionInactiveError expected &quot;TransactionInactiveError&quot; but got &quot;InvalidStateError&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBfireerroreventexceptionhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,205 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;Fire error event - Exception thrown&lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://w3c.github.io/IndexedDB/#fire-error-event&quot;&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;script src=support.js&gt;&lt;/script&gt;
+&lt;script&gt;
+setup({allow_uncaught_exception:true});
+
+function fire_error_event_test(func, description) {
+  indexeddb_test(
+    (t, db) =&gt; {
+      db.createObjectStore('s');
+    },
+    (t, db) =&gt; {
+      const tx = db.transaction('s', 'readwrite');
+      tx.oncomplete = t.unreached_func('transaction should abort');
+      const store = tx.objectStore('s');
+      store.put(0, 0);
+      const request = store.add(0, 0);
+      request.onsuccess = t.unreached_func('request should fail');
+      func(t, db, tx, request);
+    },
+    description);
+}
+
+// Listeners on the request.
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  request.onerror = () =&gt; {
+    throw Error();
+  };
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in error event handler on request');
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  request.onerror = e =&gt; {
+    e.preventDefault();
+    throw Error();
+  };
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in error event handler on request, with preventDefault');
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  request.addEventListener('error', () =&gt; {
+    throw Error();
+  });
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in error event listener on request');
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  request.addEventListener('error', () =&gt; {
+    // no-op
+  });
+  request.addEventListener('error', () =&gt; {
+    throw Error();
+  });
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in second error event listener on request');
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  let second_listener_called = false;
+  request.addEventListener('error', () =&gt; {
+    throw Error();
+  });
+  request.addEventListener('error', t.step_func(() =&gt; {
+    second_listener_called = true;
+    assert_true(is_transaction_active(tx, 's'),
+                'Transaction should be active until dispatch completes');
+  }));
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_true(second_listener_called);
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in first error event listener on request, ' +
+   'transaction active in second');
+
+// Listeners on the transaction.
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  tx.onerror = () =&gt; {
+    throw Error();
+  };
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in error event handler on transaction');
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  tx.onerror = e =&gt; {
+    e.preventDefault();
+    throw Error();
+  };
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in error event handler on transaction, with preventDefault');
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  tx.addEventListener('error', () =&gt; {
+    throw Error();
+  });
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in error event listener on transaction');
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  tx.addEventListener('error', () =&gt; {
+    // no-op
+  });
+  tx.addEventListener('error', () =&gt; {
+    throw Error();
+  });
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in second error event listener on transaction');
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  let second_listener_called = false;
+  tx.addEventListener('error', () =&gt; {
+    throw Error();
+  });
+  tx.addEventListener('error', t.step_func(() =&gt; {
+    second_listener_called = true;
+    assert_true(is_transaction_active(tx, 's'),
+                'Transaction should be active until dispatch completes');
+  }));
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_true(second_listener_called);
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in first error event listener on transaction, ' +
+   'transaction active in second');
+
+// Listeners on the connection.
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  db.onerror = () =&gt; {
+    throw Error();
+  };
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in error event handler on connection');
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  db.onerror = e =&gt; {
+    e.preventDefault()
+    throw Error();
+  };
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in error event handler on connection, with preventDefault');
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  db.addEventListener('error', () =&gt; {
+    throw Error();
+  });
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in error event listener on connection');
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  db.addEventListener('error', () =&gt; {
+    // no-op
+  });
+  db.addEventListener('error', () =&gt; {
+    throw Error();
+  });
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in second error event listener on connection');
+
+fire_error_event_test((t, db, tx, request) =&gt; {
+  let second_listener_called = false;
+  db.addEventListener('error', () =&gt; {
+    throw Error();
+  });
+  db.addEventListener('error', t.step_func(() =&gt; {
+    second_listener_called = true;
+    assert_true(is_transaction_active(tx, 's'),
+                'Transaction should be active until dispatch completes');
+  }));
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_true(second_listener_called);
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in first error event listener on connection, ' +
+   'transaction active in second');
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBfiresuccesseventexceptionexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+CONSOLE MESSAGE: line 28: Error
+CONSOLE MESSAGE: line 37: Error
+CONSOLE MESSAGE: line 49: Error
+CONSOLE MESSAGE: line 59: Error
+
+PASS Exception in success event handler on request 
+PASS Exception in success event listener on request 
+PASS Exception in second success event listener on request 
+FAIL Exception in first success event listener, tx active in second assert_equals: Active check should either not throw anything, or throw TransactionInactiveError expected &quot;TransactionInactiveError&quot; but got &quot;InvalidStateError&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBfiresuccesseventexceptionhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,72 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;Fire success event - Exception thrown&lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://w3c.github.io/IndexedDB/#fire-success-event&quot;&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;script src=support.js&gt;&lt;/script&gt;
+&lt;script&gt;
+setup({allow_uncaught_exception:true});
+
+function fire_success_event_test(func, description) {
+  indexeddb_test(
+    (t, db) =&gt; {
+      db.createObjectStore('s');
+    },
+    (t, db) =&gt; {
+      const tx = db.transaction('s');
+      tx.oncomplete = t.unreached_func('transaction should abort');
+      const store = tx.objectStore('s');
+      const request = store.get(0);
+      func(t, db, tx, request);
+    },
+    description);
+}
+
+fire_success_event_test((t, db, tx, request) =&gt; {
+  request.onsuccess = () =&gt; {
+    throw Error();
+  };
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in success event handler on request');
+
+fire_success_event_test((t, db, tx, request) =&gt; {
+  request.addEventListener('success', () =&gt; {
+    throw Error();
+  });
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in success event listener on request');
+
+fire_success_event_test((t, db, tx, request) =&gt; {
+  request.addEventListener('success', () =&gt; {
+    // no-op
+  });
+  request.addEventListener('success', () =&gt; {
+    throw Error();
+  });
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in second success event listener on request');
+
+fire_success_event_test((t, db, tx, request) =&gt; {
+  let second_listener_called = false;
+  request.addEventListener('success', () =&gt; {
+    throw Error();
+  });
+  request.addEventListener('success', t.step_func(() =&gt; {
+    second_listener_called = true;
+    assert_true(is_transaction_active(tx, 's'),
+                'Transaction should be active until dispatch completes');
+  }));
+  tx.onabort = t.step_func_done(() =&gt; {
+    assert_true(second_listener_called);
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in first success event listener, tx active in second');
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBfireupgradeneededeventexceptionexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+CONSOLE MESSAGE: line 26: Error
+CONSOLE MESSAGE: line 37: Error
+CONSOLE MESSAGE: line 51: Error
+CONSOLE MESSAGE: line 63: Error
+
+PASS Exception in upgradeneeded handler 
+PASS Exception in upgradeneeded listener 
+PASS Exception in second upgradeneeded listener 
+FAIL Exception in first upgradeneeded listener, tx active in second assert_equals: Active check should either not throw anything, or throw TransactionInactiveError expected &quot;TransactionInactiveError&quot; but got &quot;InvalidStateError&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBfireupgradeneededeventexceptionhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,77 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;Fire upgradeneeded event - Exception thrown&lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://w3c.github.io/IndexedDB/#fire-a-version-change-event&quot;&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;script src=support.js&gt;&lt;/script&gt;
+&lt;script&gt;
+setup({allow_uncaught_exception:true});
+
+function fire_upgradeneeded_event_test(func, description) {
+  async_test(t =&gt; {
+    const dbname = document.location + '-' + t.name;
+    const del = indexedDB.deleteDatabase(dbname);
+    del.onerror = t.unreached_func('deleteDatabase should succeed');
+    const open = indexedDB.open(dbname, 1);
+    open.onsuccess = t.unreached_func('open should fail');
+    func(t, open);
+  }, description);
+}
+
+fire_upgradeneeded_event_test((t, open) =&gt; {
+  let tx;
+  open.onupgradeneeded = () =&gt; {
+    tx = open.transaction;
+    throw Error();
+  };
+  open.onerror = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in upgradeneeded handler');
+
+fire_upgradeneeded_event_test((t, open) =&gt; {
+  let tx;
+  open.addEventListener('upgradeneeded', () =&gt; {
+    tx = open.transaction;
+    throw Error();
+  });
+  open.onerror = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in upgradeneeded listener');
+
+fire_upgradeneeded_event_test((t, open) =&gt; {
+  let tx;
+  open.addEventListener('upgradeneeded', () =&gt; {
+    // No-op.
+  });
+  open.addEventListener('upgradeneeded', () =&gt; {
+    tx = open.transaction;
+    throw Error();
+  });
+  open.onerror = t.step_func_done(() =&gt; {
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in second upgradeneeded listener');
+
+fire_upgradeneeded_event_test((t, open) =&gt; {
+  let tx;
+  let second_listener_called = false;
+  open.addEventListener('upgradeneeded', () =&gt; {
+    open.result.createObjectStore('s');
+    throw Error();
+  });
+  open.addEventListener('upgradeneeded', t.step_func(() =&gt; {
+    second_listener_called = true;
+    tx = open.transaction;
+    assert_true(is_transaction_active(tx, 's'),
+                'Transaction should be active until dispatch completes');
+  }));
+  open.onerror = t.step_func_done(() =&gt; {
+    assert_true(second_listener_called);
+    assert_equals(tx.error.name, 'AbortError');
+  });
+}, 'Exception in first upgradeneeded listener, tx active in second');
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbbinarykeyroundtriphtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idb-binary-key-roundtrip.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idb-binary-key-roundtrip.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idb-binary-key-roundtrip.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,6 +1,7 @@
</span><span class="cx"> &lt;!doctype html&gt;
</span><span class="cx"> &lt;meta charset=utf-8&gt;
</span><span class="cx"> &lt;title&gt;IndexedDB: Binary keys written to a database and read back&lt;/title&gt;
</span><ins>+&lt;meta name=timeout content=long&gt;
</ins><span class="cx"> &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;support.js&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbcursor_continue_objectstorehtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor_continue_objectstore.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor_continue_objectstore.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor_continue_objectstore.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -25,7 +25,7 @@
</span><span class="cx">         var store = db.transaction(&quot;test&quot;)
</span><span class="cx">                       .objectStore(&quot;test&quot;);
</span><span class="cx"> 
</span><del>-        cursor_rq = store.openCursor();
</del><ins>+        var cursor_rq = store.openCursor();
</ins><span class="cx">         cursor_rq.onsuccess = t.step_func(function(e) {
</span><span class="cx">             var cursor = e.target.result;
</span><span class="cx">             if (!cursor) {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactorydeleteDatabaseopaqueoriginexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-deleteDatabase-opaque-origin-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-deleteDatabase-opaque-origin-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-deleteDatabase-opaque-origin-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+PASS IDBFactory.deleteDatabase() in non-sandboxed iframe should not throw 
+PASS IDBFactory.deleteDatabase() in sandboxed iframe should throw SecurityError 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactorydeleteDatabaseopaqueoriginhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-deleteDatabase-opaque-origin.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-deleteDatabase-opaque-origin.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-deleteDatabase-opaque-origin.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,66 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;IDBFactory.deleteDatabase() and opaque origins&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;script&gt;
+
+function load_iframe(src, sandbox) {
+  return new Promise(resolve =&gt; {
+    const iframe = document.createElement('iframe');
+    iframe.onload = () =&gt; { resolve(iframe); };
+    if (sandbox)
+      iframe.sandbox = sandbox;
+    iframe.srcdoc = src;
+    iframe.style.display = 'none';
+    document.documentElement.appendChild(iframe);
+  });
+}
+
+function wait_for_message(iframe) {
+  return new Promise(resolve =&gt; {
+    self.addEventListener('message', function listener(e) {
+      if (e.source === iframe.contentWindow) {
+        resolve(e.data);
+        self.removeEventListener('message', listener);
+      }
+    });
+  });
+}
+
+const script =
+  '&lt;script&gt;' +
+  '  window.onmessage = () =&gt; {' +
+  '    try {' +
+  '      const r = indexedDB.deleteDatabase(&quot;opaque-origin-test&quot;);' +
+  '      window.parent.postMessage({result: &quot;no exception&quot;}, &quot;*&quot;);' +
+  '    } catch (ex) {' +
+  '      window.parent.postMessage({result: ex.name}, &quot;*&quot;);' +
+  '    };' +
+  '  };' +
+  '&lt;\/script&gt;';
+
+promise_test(t =&gt; {
+  return load_iframe(script)
+    .then(iframe =&gt; {
+      iframe.contentWindow.postMessage({}, '*');
+      return wait_for_message(iframe);
+    })
+    .then(message =&gt; {
+      assert_equals(message.result, 'no exception',
+                    'IDBFactory.deleteDatabase() should not throw');
+    });
+}, 'IDBFactory.deleteDatabase() in non-sandboxed iframe should not throw');
+
+promise_test(t =&gt; {
+  return load_iframe(script, 'allow-scripts')
+    .then(iframe =&gt; {
+      iframe.contentWindow.postMessage({}, '*');
+      return wait_for_message(iframe);
+    })
+    .then(message =&gt; {
+      assert_equals(message.result, 'SecurityError',
+                    'Exception should be SecurityError');
+    });
+}, 'IDBFactory.deleteDatabase() in sandboxed iframe should throw SecurityError');
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactoryopenerrorpropertiesexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-error-properties-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-error-properties-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-error-properties-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS Properties of error event from failed open() 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactoryopenerrorpropertieshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-error-properties.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-error-properties.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-error-properties.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;IndexedDB: Test IDBFactory open() error event properties&lt;/title&gt;
+&lt;meta name=help href=&quot;https://w3c.github.io/IndexedDB/#dom-idbfactory-open&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;support.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+
+async_test(t =&gt; {
+  const dbname = document.location + '-' + t.name;
+  indexedDB.deleteDatabase(dbname);
+  const open = indexedDB.open(dbname);
+  open.onsuccess = t.unreached_func('open should not succeed');
+  open.onupgradeneeded = t.step_func(() =&gt; {
+    const tx = open.transaction;
+    tx.abort();
+  });
+  open.onerror = t.step_func(e =&gt; {
+    assert_equals(e.target, open, 'event target should be request');
+    assert_equals(e.type, 'error', 'Event type should be error');
+    assert_true(e.bubbles, 'Event should bubble');
+    assert_true(e.cancelable, 'Event should be cancelable');
+    t.done();
+  });
+}, 'Properties of error event from failed open()');
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactoryopenopaqueoriginexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-opaque-origin-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-opaque-origin-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-opaque-origin-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+PASS IDBFactory.open() in non-sandboxed iframe should not throw 
+PASS IDBFactory.open() in sandboxed iframe should throw SecurityError 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactoryopenopaqueoriginhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-opaque-origin.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-opaque-origin.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-opaque-origin.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,68 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;IDBFactory.open() and opaque origins&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;script&gt;
+
+function load_iframe(src, sandbox) {
+  return new Promise(resolve =&gt; {
+    const iframe = document.createElement('iframe');
+    iframe.onload = () =&gt; { resolve(iframe); };
+    if (sandbox)
+      iframe.sandbox = sandbox;
+    iframe.srcdoc = src;
+    iframe.style.display = 'none';
+    document.documentElement.appendChild(iframe);
+  });
+}
+
+function wait_for_message(iframe) {
+  return new Promise(resolve =&gt; {
+    self.addEventListener('message', function listener(e) {
+      if (e.source === iframe.contentWindow) {
+        resolve(e.data);
+        self.removeEventListener('message', listener);
+      }
+    });
+  });
+}
+
+const script =
+  '&lt;script&gt;' +
+  '  window.onmessage = () =&gt; {' +
+  '    try {' +
+  '      indexedDB.deleteDatabase(&quot;opaque-origin-test&quot;);' +
+  '      const r = indexedDB.open(&quot;opaque-origin-test&quot;);' +
+  '      r.onupgradeneeded = () =&gt; { r.transaction.abort(); };' +
+  '      window.parent.postMessage({result: &quot;no exception&quot;}, &quot;*&quot;);' +
+  '    } catch (ex) {' +
+  '      window.parent.postMessage({result: ex.name}, &quot;*&quot;);' +
+  '    };' +
+  '  };' +
+  '&lt;\/script&gt;';
+
+promise_test(t =&gt; {
+  return load_iframe(script)
+    .then(iframe =&gt; {
+      iframe.contentWindow.postMessage({}, '*');
+      return wait_for_message(iframe);
+    })
+    .then(message =&gt; {
+      assert_equals(message.result, 'no exception',
+                    'IDBFactory.open() should not throw');
+    });
+}, 'IDBFactory.open() in non-sandboxed iframe should not throw');
+
+promise_test(t =&gt; {
+  return load_iframe(script, 'allow-scripts')
+    .then(iframe =&gt; {
+      iframe.contentWindow.postMessage({}, '*');
+      return wait_for_message(iframe);
+    })
+    .then(message =&gt; {
+      assert_equals(message.result, 'SecurityError',
+                    'Exception should be SecurityError');
+    });
+}, 'IDBFactory.open() in sandboxed iframe should throw SecurityError');
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactory_deleteDatabase4expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory_deleteDatabase4-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory_deleteDatabase4-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory_deleteDatabase4-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Delete an existing database 
</span><del>-PASS Delete a nonexistant database 
</del><ins>+PASS Delete a nonexistent database 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbfactory_deleteDatabase4htm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory_deleteDatabase4.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory_deleteDatabase4.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory_deleteDatabase4.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -12,6 +12,7 @@
</span><span class="cx">     var t = async_test(&quot;Delete an existing database&quot;);
</span><span class="cx"> 
</span><span class="cx">     t.step(function() {
</span><ins>+        var db;
</ins><span class="cx">         var openrq = indexedDB.open('db', 3);
</span><span class="cx"> 
</span><span class="cx">         openrq.onupgradeneeded = function(e) {
</span><span class="lines">@@ -25,7 +26,7 @@
</span><span class="cx">             db.onerror = fail(t, &quot;db.error&quot;);
</span><span class="cx">             db.abort = fail(t, &quot;db.abort&quot;);
</span><span class="cx"> 
</span><del>-            setTimeout(t.step_func(Second), 4);
</del><ins>+            step_timeout(t.step_func(Second), 4);
</ins><span class="cx">             db.close();
</span><span class="cx">         });
</span><span class="cx"> 
</span><span class="lines">@@ -44,8 +45,8 @@
</span><span class="cx">         deleterq.onupgradeneeded = fail(t, &quot;delete.upgradeneeded&quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    async_test(&quot;Delete a nonexistant database&quot;).step(function(e) {
-        var deleterq = indexedDB.deleteDatabase('nonexistant');
</del><ins>+    async_test(&quot;Delete a nonexistent database&quot;).step(function(e) {
+        var deleterq = indexedDB.deleteDatabase('nonexistent');
</ins><span class="cx"> 
</span><span class="cx">         deleterq.onsuccess = this.step_func(function(e) { this.done(); });
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbindex_gethtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_get.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_get.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_get.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> &lt;script src=&quot;support.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;script&gt;
</span><del>-    var db,
</del><ins>+    var db, index,
</ins><span class="cx">       t = async_test(),
</span><span class="cx">       record = { key: 1, indexedProperty: &quot;data&quot; };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbindex_get4htm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_get4.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_get4.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_get4.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx">             assert_equals(e.target.result.key, 4);
</span><span class="cx">             assert_equals(e.target.result.indexedProperty, 'data4');
</span><span class="cx"> 
</span><del>-            setTimeout(function() { t.done(); }, 4)
</del><ins>+            step_timeout(function() { t.done(); }, 4)
</ins><span class="cx">         });
</span><span class="cx">     }
</span><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbindex_getKey4htm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_getKey4.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_getKey4.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_getKey4.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx">         rq.onsuccess = t.step_func(function(e) {
</span><span class="cx">             assert_equals(e.target.result, 4);
</span><span class="cx"> 
</span><del>-            setTimeout(function() { t.done(); }, 4)
</del><ins>+            step_timeout(function() { t.done(); }, 4)
</ins><span class="cx">         });
</span><span class="cx">     }
</span><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbobjectstore_createIndex13htm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_createIndex13.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_createIndex13.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_createIndex13.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -19,7 +19,7 @@
</span><span class="cx"> 
</span><span class="cx">     open_rq.onsuccess = function (event) {
</span><span class="cx">         var txn = db.transaction(&quot;store&quot;, &quot;readwrite&quot;);
</span><del>-        ostore = txn.objectStore(&quot;store&quot;);
</del><ins>+        var ostore = txn.objectStore(&quot;store&quot;);
</ins><span class="cx">         t.step(function(){
</span><span class="cx">             assert_throws(&quot;InvalidStateError&quot;, function(){
</span><span class="cx">                 ostore.createIndex(&quot;index&quot;, &quot;indexedProperty&quot;);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbobjectstore_get4htm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_get4.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_get4.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_get4.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -17,7 +17,7 @@
</span><span class="cx">                    .get(1);
</span><span class="cx">         rq.onsuccess = t.step_func(function(e) {
</span><span class="cx">             assert_equals(e.target.results, undefined);
</span><del>-            setTimeout(function() { t.done(); }, 10);
</del><ins>+            step_timeout(function() { t.done(); }, 10);
</ins><span class="cx">         });
</span><span class="cx">     };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBidbobjectstore_getKeyhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_getKey.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_getKey.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_getKey.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,6 +1,7 @@
</span><span class="cx"> &lt;!doctype html&gt;
</span><span class="cx"> &lt;meta charset=utf-8&gt;
</span><span class="cx"> &lt;title&gt;IndexedDB: Test IDBObjectStore.getKey()&lt;/title&gt;
</span><ins>+&lt;meta name=timeout content=long&gt;
</ins><span class="cx"> &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBkeyconversionexceptionshtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/key-conversion-exceptions.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/key-conversion-exceptions.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/key-conversion-exceptions.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,6 +1,7 @@
</span><span class="cx"> &lt;!doctype html&gt;
</span><span class="cx"> &lt;meta charset=utf-8&gt;
</span><span class="cx"> &lt;title&gt;IndexedDB: Exceptions thrown during key conversion&lt;/title&gt;
</span><ins>+&lt;meta name=timeout content=long&gt;
</ins><span class="cx"> &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;support.js&quot;&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBkeygeneratorexplicitexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-explicit-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-explicit-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-explicit-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+
+PASS Key generator vs. explicit key 53 bits 
+PASS Key generator vs. explicit key greater than 53 bits, less than 64 bits 
+PASS Key generator vs. explicit key greater than 53 bits, less than 64 bits (negative) 
+FAIL Key generator vs. explicit key 63 bits assert_unreached: put should succeed Reached unreachable code
+PASS Key generator vs. explicit key 63 bits (negative) 
+FAIL Key generator vs. explicit key 64 bits assert_unreached: put should fail Reached unreachable code
+PASS Key generator vs. explicit key 64 bits (negative) 
+FAIL Key generator vs. explicit key greater than 64 bits, but still finite assert_unreached: put should fail Reached unreachable code
+PASS Key generator vs. explicit key greater than 64 bits, but still finite (negative) 
+FAIL Key generator vs. explicit key equal to Infinity assert_unreached: put should fail Reached unreachable code
+PASS Key generator vs. explicit key equal to -Infinity 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBkeygeneratorexplicithtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-explicit.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-explicit.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-explicit.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,146 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;Key Generator behavior with explicit keys generator overflow&lt;/title&gt;
+&lt;link rel=help href=&quot;https://w3c.github.io/IndexedDB/#key-generator-construct&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;support.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+
+function big_key_test(key, description) {
+  indexeddb_test(
+    (t, db) =&gt; {
+      assert_equals(indexedDB.cmp(key, key), 0, 'Key is valid');
+
+      db.createObjectStore('store', {autoIncrement: true});
+    },
+    (t, db) =&gt; {
+      const tx = db.transaction('store', 'readwrite');
+      const store = tx.objectStore('store');
+      const value = 0;
+      let request;
+
+      request = store.put(value);
+      request.onerror = t.unreached_func('put should succeed');
+      request.onsuccess = t.step_func(e =&gt; {
+        assert_equals(e.target.result, 1,
+                      'Key generator should initially be 1');
+      });
+
+      request = store.put(value);
+      request.onerror = t.unreached_func('put should succeed');
+      request.onsuccess = t.step_func(e =&gt; {
+        assert_equals(e.target.result, 2,
+                      'Key generator should increment');
+      });
+
+      request = store.put(value, 1000);
+      request.onerror = t.unreached_func('put should succeed');
+      request.onsuccess = t.step_func(e =&gt; {
+        assert_equals(e.target.result, 1000,
+                      'Explicit key should be used');
+      });
+
+      request = store.put(value);
+      request.onerror = t.unreached_func('put should succeed');
+      request.onsuccess = t.step_func(e =&gt; {
+        assert_equals(e.target.result, 1001,
+                      'Key generator should have updated');
+      });
+
+      request = store.put(value, key);
+      request.onerror = t.unreached_func('put should succeed');
+      request.onsuccess = t.step_func(e =&gt; {
+        assert_equals(e.target.result, key,
+                      'Explicit key should be used');
+      });
+
+      if (key &gt;= 0) {
+        // Large positive values will max out the key generator, so it
+        // can no longer produce keys.
+        request = store.put(value);
+        request.onsuccess = t.unreached_func('put should fail');
+        request.onerror = t.step_func(e =&gt; {
+          e.preventDefault();
+          assert_equals(e.target.error.name, 'ConstraintError',
+                        'Key generator should have returned failure');
+        });
+      } else {
+        // Large negative values are always lower than the key generator's
+        // current number, so have no effect on the generator.
+        request = store.put(value);
+        request.onerror = t.unreached_func('put should succeed');
+        request.onsuccess = t.step_func(e =&gt; {
+          assert_equals(e.target.result, 1002,
+                        'Key generator should have updated');
+        });
+      }
+
+      request = store.put(value, 2000);
+      request.onerror = t.unreached_func('put should succeed');
+      request.onsuccess = t.step_func(e =&gt; {
+        assert_equals(e.target.result, 2000,
+                      'Explicit key should be used');
+      });
+
+      tx.onabort = t.step_func(() =&gt; {
+        assert_unreached(`Transaction aborted: ${tx.error.message}`);
+      });
+      tx.oncomplete = t.step_func(() =&gt; { t.done(); });
+    },
+    description);
+}
+
+[
+  {
+    key: Number.MAX_SAFE_INTEGER + 1,
+    description: '53 bits'
+  },
+  {
+    key: Math.pow(2, 60),
+    description: 'greater than 53 bits, less than 64 bits'
+  },
+  {
+    key: -Math.pow(2, 60),
+    description: 'greater than 53 bits, less than 64 bits (negative)'
+  },
+  {
+    key: Math.pow(2, 63),
+    description: '63 bits'
+  },
+  {
+    key: -Math.pow(2, 63),
+    description: '63 bits (negative)'
+  },
+  {
+    key: Math.pow(2, 64),
+    description: '64 bits'
+  },
+  {
+    key: -Math.pow(2, 64),
+    description: '64 bits (negative)'
+  },
+  {
+    key: Math.pow(2, 70),
+    description: 'greater than 64 bits, but still finite'
+  },
+  {
+    key: -Math.pow(2, 70),
+    description: 'greater than 64 bits, but still finite (negative)'
+  },
+  {
+    key: Infinity,
+    description: 'equal to Infinity'
+  },
+  {
+    key: -Infinity,
+    description: 'equal to -Infinity'
+  }
+].forEach(function(testCase) {
+  big_key_test(testCase.key,
+               `Key generator vs. explicit key ${testCase.description}`);
+});
+
+
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBkeygeneratorinjectexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-inject-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-inject-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-inject-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+
+PASS Key is injected into value - single segment path 
+PASS Key is injected into value - multi-segment path 
+PASS Key is injected into value - multi-segment path, partially populated 
+PASS put() throws if key cannot be injected - single segment path 
+FAIL put() throws if key cannot be injected - multi-segment path assert_throws: Key path should be checked against value function &quot;() =&gt; {
+      store.put({a: {b: 123} });
+    }&quot; did not throw
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBkeygeneratorinjecthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-inject.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-inject.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-inject.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,119 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;Key Generator behavior with explicit keys and value injection&lt;/title&gt;
+&lt;link rel=help href=&quot;https://w3c.github.io/IndexedDB/#inject-key-into-value&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;support.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+
+indexeddb_test(
+  (t, db) =&gt; {
+    db.createObjectStore('store', {autoIncrement: true, keyPath: 'id'});
+  },
+  (t, db) =&gt; {
+    const tx = db.transaction('store', 'readwrite');
+    t.onabort = t.unreached_func('transaction should not abort');
+
+    const store = tx.objectStore('store');
+
+    store.put({name: 'n'}).onsuccess = t.step_func(e =&gt; {
+      const key = e.target.result;
+      assert_equals(key, 1, 'Key generator initial value should be 1');
+      store.get(key).onsuccess = t.step_func(e =&gt; {
+        const value = e.target.result;
+        assert_equals(typeof value, 'object', 'Result should be object');
+        assert_equals(value.name, 'n', 'Result should have name property');
+        assert_equals(value.id, key, 'Key should be injected');
+        t.done();
+      });
+    });
+  },
+  'Key is injected into value - single segment path');
+
+indexeddb_test(
+  (t, db) =&gt; {
+    db.createObjectStore('store', {autoIncrement: true, keyPath: 'a.b.id'});
+  },
+  (t, db) =&gt; {
+    const tx = db.transaction('store', 'readwrite');
+    t.onabort = t.unreached_func('transaction should not abort');
+
+    const store = tx.objectStore('store');
+
+    store.put({name: 'n'}).onsuccess = t.step_func(e =&gt; {
+      const key = e.target.result;
+      assert_equals(key, 1, 'Key generator initial value should be 1');
+      store.get(key).onsuccess = t.step_func(e =&gt; {
+        const value = e.target.result;
+        assert_equals(typeof value, 'object', 'Result should be object');
+        assert_equals(value.name, 'n', 'Result should have name property');
+        assert_equals(value.a.b.id, key, 'Key should be injected');
+        t.done();
+      });
+    });
+  },
+  'Key is injected into value - multi-segment path');
+
+indexeddb_test(
+  (t, db) =&gt; {
+    db.createObjectStore('store', {autoIncrement: true, keyPath: 'a.b.id'});
+  },
+  (t, db) =&gt; {
+    const tx = db.transaction('store', 'readwrite');
+    t.onabort = t.unreached_func('transaction should not abort');
+
+    const store = tx.objectStore('store');
+
+    store.put({name: 'n1', b: {name: 'n2'}}).onsuccess = t.step_func(e =&gt; {
+      const key = e.target.result;
+      assert_equals(key, 1, 'Key generator initial value should be 1');
+      store.get(key).onsuccess = t.step_func(e =&gt; {
+        const value = e.target.result;
+        assert_equals(typeof value, 'object', 'Result should be object');
+        assert_equals(value.name, 'n1', 'Result should have name property');
+        assert_equals(value.b.name, 'n2', 'Result should have name property');
+        assert_equals(value.a.b.id, key, 'Key should be injected');
+        t.done();
+      });
+    });
+  },
+  'Key is injected into value - multi-segment path, partially populated');
+
+indexeddb_test(
+  (t, db) =&gt; {
+    db.createObjectStore('store', {autoIncrement: true, keyPath: 'id'});
+  },
+  (t, db) =&gt; {
+    const tx = db.transaction('store', 'readwrite');
+    const store = tx.objectStore('store');
+
+    assert_throws('DataError', () =&gt; {
+      store.put(123);
+    }, 'Key path should be checked against value');
+
+    t.done();
+  },
+  'put() throws if key cannot be injected - single segment path');
+
+indexeddb_test(
+  (t, db) =&gt; {
+    db.createObjectStore('store', {autoIncrement: true, keyPath: 'a.b.id'});
+  },
+  (t, db) =&gt; {
+    const tx = db.transaction('store', 'readwrite');
+    const store = tx.objectStore('store');
+
+    assert_throws('DataError', () =&gt; {
+      store.put({a: 123});
+    }, 'Key path should be checked against value');
+
+    assert_throws('DataError', () =&gt; {
+      store.put({a: {b: 123} });
+    }, 'Key path should be checked against value');
+
+    t.done();
+  },
+  'put() throws if key cannot be injected - multi-segment path');
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBkeypath_invalidhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath_invalid.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath_invalid.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keypath_invalid.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx">                     db.createObjectStore(store_name, { keyPath: keypath })
</span><span class="cx">                 }, &quot;createObjectStore with keyPath&quot;);
</span><span class="cx"> 
</span><del>-            store = db.createObjectStore(store_name);
</del><ins>+            var store = db.createObjectStore(store_name);
</ins><span class="cx">             assert_throws('SyntaxError', function() {
</span><span class="cx">                     store.createIndex('index', keypath);
</span><span class="cx">                 }, &quot;createIndex with keyPath&quot;);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBsupportjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/support.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/support.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/support.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">     function auto_fail(evt, current_test) {
</span><span class="cx">         /* Fail handlers, if we haven't set on/whatever/, don't
</span><span class="cx">          * expect to get event whatever. */
</span><del>-        rq_open.manually_handled = {}
</del><ins>+        rq_open.manually_handled = {};
</ins><span class="cx"> 
</span><span class="cx">         rq_open.addEventListener(evt, function(e) {
</span><span class="cx">             if (current_test !== test) {
</span><span class="lines">@@ -71,8 +71,8 @@
</span><span class="cx">                   this.db.onversionchange =
</span><span class="cx">                       fail(test, 'unexpected db.versionchange');
</span><span class="cx">                 }
</span><del>-            })
-        })
</del><ins>+            });
+        });
</ins><span class="cx">         rq_open.__defineSetter__(&quot;on&quot; + evt, function(h) {
</span><span class="cx">             rq_open.manually_handled[evt] = true;
</span><span class="cx">             if (!h)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">                 rq_open.addEventListener(evt, function() {});
</span><span class="cx">             else
</span><span class="cx">                 rq_open.addEventListener(evt, test.step_func(h));
</span><del>-        })
</del><ins>+        });
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // add a .setTest method to the IDBOpenDBRequest object
</span><span class="lines">@@ -123,6 +123,10 @@
</span><span class="cx">     });
</span><span class="cx">     open.onsuccess = t.step_func(function() {
</span><span class="cx">       var db = open.result;
</span><ins>+      t.add_cleanup(function() {
+        db.close();
+        indexedDB.deleteDatabase(db.name);
+      });
</ins><span class="cx">       if (open_func)
</span><span class="cx">         open_func(t, db);
</span><span class="cx">     });
</span><span class="lines">@@ -143,3 +147,44 @@
</span><span class="cx">     }
</span><span class="cx">   };
</span><span class="cx"> }
</span><ins>+
+// Checks to see if the passed transaction is active (by making
+// requests against the named store).
+function is_transaction_active(tx, store_name) {
+  try {
+    const request = tx.objectStore(store_name).get(0);
+    request.onerror = e =&gt; {
+      e.preventDefault();
+      e.stopPropagation();
+    };
+    return true;
+  } catch (ex) {
+    assert_equals(ex.name, 'TransactionInactiveError',
+                  'Active check should either not throw anything, or throw ' +
+                  'TransactionInactiveError');
+    return false;
+  }
+}
+
+// Keep the passed transaction alive indefinitely (by making requests
+// against the named store). Returns a function to to let the
+// transaction finish, and asserts that the transaction is not yet
+// finished.
+function keep_alive(tx, store_name) {
+  let completed = false;
+  tx.addEventListener('complete', () =&gt; { completed = true; });
+
+  let pin = true;
+
+  function spin() {
+    if (!pin)
+      return;
+    tx.objectStore(store_name).get(0).onsuccess = spin;
+  }
+  spin();
+
+  return () =&gt; {
+    assert_false(completed, 'Transaction completed while kept alive');
+    pin = false;
+  };
+}
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBtransactionabortrequesterrorexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-abort-request-error-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-abort-request-error-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-abort-request-error-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL Properties of error events fired at requests when aborting a transaction assert_equals: Request's result should be undefined expected (undefined) undefined but got (object) null
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBtransactionabortrequesterrorhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-abort-request-error.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-abort-request-error.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-abort-request-error.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,68 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;IndexedDB: Test error events fired at requests from aborted transaction&lt;/title&gt;
+&lt;meta name=help href=&quot;https://w3c.github.io/IndexedDB/#abort-a-transaction&quot;&gt;
+&lt;meta name=help href=&quot;https://w3c.github.io/IndexedDB/#request-construct&quot;&gt;
+&lt;meta name=help href=&quot;https://w3c.github.io/IndexedDB/#transaction-construct&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;support.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+
+indexeddb_test(
+  (t, db) =&gt; {
+    db.createObjectStore('store');
+  },
+  (t, db) =&gt; {
+    const tx = db.transaction('store');
+    const request = tx.objectStore('store').get(0);
+    tx.abort();
+    request.onsuccess = t.unreached_func('request should not succeed');
+
+    let connection_saw_error = false;
+    let transaction_saw_error = false;
+
+    request.onerror = t.step_func(e =&gt; {
+      assert_equals(request.readyState, 'done',
+                    'Request\'s done flag should be set');
+      assert_equals(request.result, undefined,
+                    'Request\'s result should be undefined');
+      assert_equals(request.error.name, 'AbortError',
+                    'Request\'s error should be AbortError');
+
+      assert_equals(e.target, request, 'event target should be request');
+      assert_equals(e.type, 'error', 'Event type should be error');
+      assert_true(e.bubbles, 'Event should bubble');
+      assert_true(e.cancelable, 'Event should cancelable');
+
+      assert_true(connection_saw_error,
+                  'Event propagated through connection');
+      assert_true(transaction_saw_error,
+                  'Event propagated through transaction');
+      t.done();
+    });
+
+    // Event propagates via &quot;get the parent&quot; on request and transaction.
+
+    db.addEventListener('error', t.step_func(e =&gt; {
+      connection_saw_error = true;
+      assert_equals(e.target, request, 'event target should be request');
+      assert_equals(e.type, 'error', 'Event type should be error');
+      assert_true(e.bubbles, 'Event should bubble');
+      assert_true(e.cancelable, 'Event should cancelable');
+    }), true);
+
+    tx.addEventListener('error', t.step_func(e =&gt; {
+      transaction_saw_error = true;
+      assert_equals(e.target, request, 'event target should be request');
+      assert_equals(e.type, 'error', 'Event type should be error');
+      assert_true(e.bubbles, 'Event should bubble');
+      assert_true(e.cancelable, 'Event should cancelable');
+
+      assert_true(connection_saw_error,
+                  'Event propagated through connection');
+    }), true);
+  },
+  'Properties of error events fired at requests when aborting a transaction');
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBtransactiondeactivationtimingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-deactivation-timing-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-deactivation-timing-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-deactivation-timing-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+
+PASS New transactions are deactivated before next task 
+PASS New transactions are not deactivated until after the microtask checkpoint 
+PASS New transactions from microtask are deactivated before next task 
+PASS New transactions from microtask are still active through the microtask checkpoint 
+PASS Deactivation of new transactions happens at end of invocation 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBtransactiondeactivationtiminghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-deactivation-timing.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-deactivation-timing.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-deactivation-timing.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,143 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;Transactions deactivation timing&lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://w3c.github.io/IndexedDB/#dom-idbdatabase-transaction&quot;&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;script src=support.js&gt;&lt;/script&gt;
+&lt;script&gt;
+
+indexeddb_test(
+  (t, db, tx) =&gt; {
+    db.createObjectStore('store');
+  },
+  (t, db) =&gt; {
+    const tx = db.transaction('store');
+    const release_tx = keep_alive(tx, 'store');
+    assert_true(is_transaction_active(tx, 'store'),
+                'Transaction should be active after creation');
+
+    setTimeout(t.step_func(() =&gt; {
+      assert_false(is_transaction_active(tx, 'store'),
+                   'Transaction should be inactive in next task');
+      release_tx();
+      t.done();
+    }), 0);
+  },
+  'New transactions are deactivated before next task');
+
+indexeddb_test(
+  (t, db, tx) =&gt; {
+    db.createObjectStore('store');
+  },
+  (t, db) =&gt; {
+    const tx = db.transaction('store');
+    const release_tx = keep_alive(tx, 'store');
+    assert_true(is_transaction_active(tx, 'store'),
+                'Transaction should be active after creation');
+
+    Promise.resolve().then(t.step_func(() =&gt; {
+      assert_true(is_transaction_active(tx, 'store'),
+                  'Transaction should be active in microtask checkpoint');
+      release_tx();
+      t.done();
+    }));
+  },
+  'New transactions are not deactivated until after the microtask checkpoint');
+
+indexeddb_test(
+  (t, db, tx) =&gt; {
+    db.createObjectStore('store');
+  },
+  (t, db) =&gt; {
+    let tx, release_tx;
+
+    Promise.resolve().then(t.step_func(() =&gt; {
+      tx = db.transaction('store');
+      release_tx = keep_alive(tx, 'store');
+      assert_true(is_transaction_active(tx, 'store'),
+                  'Transaction should be active after creation');
+    }));
+
+    setTimeout(t.step_func(() =&gt; {
+      assert_false(is_transaction_active(tx, 'store'),
+                   'Transaction should be inactive in next task');
+      release_tx();
+      t.done();
+    }), 0);
+  },
+  'New transactions from microtask are deactivated before next task');
+
+indexeddb_test(
+  (t, db, tx) =&gt; {
+    db.createObjectStore('store');
+  },
+  (t, db) =&gt; {
+    let tx, release_tx;
+
+    Promise.resolve().then(t.step_func(() =&gt; {
+      tx = db.transaction('store');
+      release_tx = keep_alive(tx, 'store');
+      assert_true(is_transaction_active(tx, 'store'),
+                  'Transaction should be active after creation');
+    }));
+
+    Promise.resolve().then(t.step_func(() =&gt; {
+      assert_true(is_transaction_active(tx, 'store'),
+                  'Transaction should be active in microtask checkpoint');
+      release_tx();
+      t.done();
+    }));
+  },
+  'New transactions from microtask are still active through the ' +
+  'microtask checkpoint');
+
+
+indexeddb_test(
+  (t, db, tx) =&gt; {
+    db.createObjectStore('store');
+  },
+  (t, db) =&gt; {
+    // This transaction serves as the source of an event seen by multiple
+    // listeners. A DOM event with multiple listeners could be used instead,
+    // but not via dispatchEvent() because (drumroll...) that happens
+    // synchronously so microtasks don't run between steps.
+    const tx = db.transaction('store');
+    assert_true(is_transaction_active(tx, 'store'),
+                'Transaction should be active after creation');
+
+    const request = tx.objectStore('store').get(0);
+    let new_tx;
+    let first_listener_ran = false;
+    let microtasks_ran = false;
+    request.addEventListener('success', t.step_func(() =&gt; {
+      first_listener_ran = true;
+      assert_true(is_transaction_active(tx, 'store'),
+                  'Transaction should be active in callback');
+
+      // We check to see if this transaction is active across unrelated event
+      // dispatch steps.
+      new_tx = db.transaction('store');
+      assert_true(is_transaction_active(new_tx, 'store'),
+                  'New transaction should be active after creation');
+
+      Promise.resolve().then(t.step_func(() =&gt; {
+        microtasks_ran = true;
+        assert_true(is_transaction_active(new_tx, 'store'),
+                    'New transaction is still active in microtask checkpoint');
+      }));
+
+    }));
+    request.addEventListener('success', t.step_func(() =&gt; {
+      assert_true(first_listener_ran, 'first listener ran first');
+      assert_true(microtasks_ran, 'microtasks ran before second listener');
+      assert_true(is_transaction_active(tx, 'store'),
+                  'Transaction should be active in callback');
+      assert_false(is_transaction_active(new_tx, 'store'),
+                   'New transaction should be inactive in unrelated callback');
+      t.done();
+    }));
+  },
+  'Deactivation of new transactions happens at end of invocation');
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBtransactionlifetimeblockedhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-lifetime-blocked.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-lifetime-blocked.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-lifetime-blocked.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx">             db.onerror = fail(t, &quot;db.error&quot;);
</span><span class="cx">             db.abort = fail(t, &quot;db.abort&quot;);
</span><span class="cx"> 
</span><del>-            setTimeout(t.step_func(OpenSecond), 10);
</del><ins>+            step_timeout(t.step_func(OpenSecond), 10);
</ins><span class="cx">         });
</span><span class="cx"> 
</span><span class="cx">         // Errors
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx">                   &quot;open2.success&quot;,
</span><span class="cx">                 ]);
</span><span class="cx"> 
</span><del>-            setTimeout(function() { t.done(); }, 10);
</del><ins>+            step_timeout(function() { t.done(); }, 10);
</ins><span class="cx">         });
</span><span class="cx"> 
</span><span class="cx">         // Errors
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBtransactionlifetimehtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-lifetime.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-lifetime.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-lifetime.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx">             db.onerror = fail(t, &quot;db.error&quot;);
</span><span class="cx">             db.abort = fail(t, &quot;db.abort&quot;);
</span><span class="cx"> 
</span><del>-            setTimeout(t.step_func(OpenSecond), 10);
</del><ins>+            step_timeout(t.step_func(OpenSecond), 10);
</ins><span class="cx">         });
</span><span class="cx"> 
</span><span class="cx">         // Errors
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">                   &quot;open2.success&quot;,
</span><span class="cx">                 ]);
</span><span class="cx"> 
</span><del>-            setTimeout(function() { t.done(); }, 10);
</del><ins>+            step_timeout(function() { t.done(); }, 10);
</ins><span class="cx">         });
</span><span class="cx"> 
</span><span class="cx">         // Errors
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBupgradetransactiondeactivationtimingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/upgrade-transaction-deactivation-timing-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/upgrade-transaction-deactivation-timing-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/upgrade-transaction-deactivation-timing-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+
+PASS Upgrade transactions are active in upgradeneeded callback 
+PASS Upgrade transactions are active in upgradeneeded callback and microtasks 
+PASS Upgrade transactions are deactivated before next task 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBupgradetransactiondeactivationtiminghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/upgrade-transaction-deactivation-timing.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/upgrade-transaction-deactivation-timing.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/upgrade-transaction-deactivation-timing.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;Upgrade transaction deactivation timing&lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;http://localhost:4201/#upgrade-transaction-steps&quot;&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;script src=support.js&gt;&lt;/script&gt;
+&lt;script&gt;
+
+indexeddb_test(
+  (t, db, tx) =&gt; {
+    db.createObjectStore('store');
+    assert_true(is_transaction_active(tx, 'store'),
+                'Transaction should be active in upgradeneeded callback');
+  },
+  (t, db) =&gt; { t.done(); },
+  'Upgrade transactions are active in upgradeneeded callback');
+
+indexeddb_test(
+  (t, db, tx) =&gt; {
+    db.createObjectStore('store');
+    assert_true(is_transaction_active(tx, 'store'),
+                'Transaction should be active in upgradeneeded callback');
+
+    Promise.resolve().then(t.step_func(() =&gt; {
+      assert_true(is_transaction_active(tx, 'store'),
+                  'Transaction should be active in microtask checkpoint');
+    }));
+  },
+  (t, db) =&gt; { t.done(); },
+  'Upgrade transactions are active in upgradeneeded callback and microtasks');
+
+
+indexeddb_test(
+  (t, db, tx) =&gt; {
+    db.createObjectStore('store');
+    const release_tx = keep_alive(tx, 'store');
+
+    setTimeout(t.step_func(() =&gt; {
+      assert_false(is_transaction_active(tx, 'store'),
+                   'Transaction should be inactive in next task');
+      release_tx();
+    }), 0);
+  },
+  (t, db) =&gt; { t.done(); },
+  'Upgrade transactions are deactivated before next task');
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -24,6 +24,10 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/cursor-overloads.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/delete-request-queue.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/error-attributes.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/event-dispatch-active-flag.html
+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html
+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception.html
+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/historical.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idb-binary-key-detached.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idb-binary-key-roundtrip.htm
</span><span class="lines">@@ -136,6 +140,9 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbdatabase_transaction3.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbdatabase_transaction4.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbdatabase_transaction5.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-deleteDatabase-opaque-origin.html
+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-error-properties.html
+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory-open-opaque-origin.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory_cmp.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory_cmp2.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbfactory_cmp3.htm
</span><span class="lines">@@ -303,6 +310,8 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/key_invalid.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/key_valid.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-constrainterror.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-explicit.html
+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-inject.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator-overflow.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keygenerator.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/keyorder.htm
</span><span class="lines">@@ -323,12 +332,15 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-abort-index-metadata-revert.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-abort-multiple-metadata-revert.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-abort-object-store-metadata-revert.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-abort-request-error.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-create_in_versionchange.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-deactivation-timing.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-lifetime-blocked.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-lifetime-empty.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-lifetime.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction-requestqueue.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/transaction_bubble-and-capture.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/upgrade-transaction-deactivation-timing.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/upgrade-transaction-lifecycle-backend-aborted.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/upgrade-transaction-lifecycle-committed.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/IndexedDB/upgrade-transaction-lifecycle-user-aborted.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsIndexedDBwriterstarvationhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/writer-starvation.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/writer-starvation.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/writer-starvation.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx">             });
</span><span class="cx"> 
</span><span class="cx">             if (read_success_count &lt; RQ_COUNT + 5)
</span><del>-                setTimeout(this.step_func(loop), write_request_count ? 1000 : 100);
</del><ins>+                step_timeout(this.step_func(loop), write_request_count ? 1000 : 100);
</ins><span class="cx">             else
</span><span class="cx">                 // This is merely a &quot;nice&quot; hack to run finish after the last request is done
</span><span class="cx">                 db.transaction(&quot;s&quot;)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">                   .count()
</span><span class="cx">                   .onsuccess = this.step_func(function()
</span><span class="cx">                 {
</span><del>-                    setTimeout(this.step_func(finish), 100);
</del><ins>+                    step_timeout(this.step_func(finish), 100);
</ins><span class="cx">                 });
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestOWNERS"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/OWNERS (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/OWNERS        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/OWNERS        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -8,4 +8,5 @@
</span><span class="cx"> @mathiasbynens
</span><span class="cx"> @ronkorving
</span><span class="cx"> @jdm
</span><del>-@Ms2ger
</del><ins>+@annevk
+@wisniewskit
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestREADMEmd"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/README.md (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/README.md                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/README.md        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+Tests for the [XMLHttpRequest Standard](https://xhr.spec.whatwg.org/).
+
+More XMLHttpRequest-related tests can be found in
+
+* /cors
+* /fetch
+* /url (failure.html in particular)
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestabortafterreceivehtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-receive.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-receive.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-receive.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -22,8 +22,8 @@
</span><span class="cx"> 
</span><span class="cx">             assert_equals(client.readyState, 0);
</span><span class="cx"> 
</span><del>-            setTimeout(function(){ // use a timeout to catch any implementation that might queue an abort event for later - just in case
-              test.step(function(){test.done();});
</del><ins>+            test.step_timeout(function(){ // use a timeout to catch any implementation that might queue an abort event for later - just in case
+              test.done()
</ins><span class="cx">             }, 200);
</span><span class="cx">           }
</span><span class="cx">         });
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestabortaftertimeouthtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-timeout.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-timeout.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-timeout.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -25,21 +25,19 @@
</span><span class="cx"> 
</span><span class="cx">         client.timeout = 100;
</span><span class="cx"> 
</span><del>-        setTimeout(test.step_func(function() {
</del><ins>+        test.step_timeout(() =&gt; {
</ins><span class="cx">             assert_true(timeoutFired);
</span><span class="cx"> 
</span><span class="cx">             // abort should not cause the &quot;abort&quot; event to fire
</span><span class="cx">             client.abort();
</span><span class="cx"> 
</span><del>-            setTimeout(function(){ // use a timeout to catch any implementation that might queue an abort event for later - just in case
-              test.step(function(){test.done();});
</del><ins>+            test.step_timeout(() =&gt; { // use a timeout to catch any implementation that might queue an abort event for later - just in case
+              test.done()
</ins><span class="cx">             }, 200);
</span><span class="cx"> 
</span><span class="cx">             assert_equals(client.readyState, 0);
</span><ins>+        }, 300);
</ins><span class="cx"> 
</span><del>-            test.done();
-        }), 300);
-
</del><span class="cx">         client.ontimeout = function () {
</span><span class="cx">             timeoutFired = true;
</span><span class="cx">         };
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestanonymousmodeunsupportedexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/anonymous-mode-unsupported-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/anonymous-mode-unsupported-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/anonymous-mode-unsupported-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-PASS XMLHttpRequest: anonymous mode unsupported 
</del><ins>+FAIL XMLHttpRequest: anonymous mode unsupported assert_equals: The deprecated anonymous:true should be ignored, cookie sent anyway expected &quot;Cookie: test=anonymous-mode-unsupported\n&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestanonymousmodeunsupportedhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/anonymous-mode-unsupported.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/anonymous-mode-unsupported.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/anonymous-mode-unsupported.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx">         client.open(&quot;GET&quot;, &quot;resources/inspect-headers.py?filter_name=cookie&quot;)
</span><span class="cx">         client.onreadystatechange = test.step_func(function(){
</span><span class="cx">           if(client.readyState === 4){
</span><del>-            assert_equals(client.responseText, 'cookie: test=anonymous-mode-unsupported\n', 'The deprecated anonymous:true should be ignored, cookie sent anyway')
</del><ins>+            assert_equals(client.responseText, 'Cookie: test=anonymous-mode-unsupported\n', 'The deprecated anonymous:true should be ignored, cookie sent anyway')
</ins><span class="cx">             test.done();
</span><span class="cx">           }
</span><span class="cx">         });
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestdatauriexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/data-uri-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/data-uri-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/data-uri-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,12 +1,12 @@
</span><span class="cx"> 
</span><del>-PASS XHR method GET with charset text/plain 
-PASS XHR method GET with charset text/plain (base64) 
-PASS XHR method GET with charset text/html 
-PASS XHR method GET with charset text/html;charset=UTF-8 
-PASS XHR method GET with charset image/png 
-FAIL XHR method POST with charset text/plain assert_equals: expected 0 but got 200
-FAIL XHR method PUT with charset text/plain assert_equals: expected 0 but got 200
-FAIL XHR method DELETE with charset text/plain assert_equals: expected 0 but got 200
-FAIL XHR method HEAD with charset text/plain assert_equals: expected 0 but got 200
-FAIL XHR method UNICORN with charset text/plain assert_equals: expected 0 but got 200
</del><ins>+PASS XHR method GET with MIME type text/plain 
+PASS XHR method GET with MIME type text/plain (base64) 
+PASS XHR method GET with MIME type text/html 
+PASS XHR method GET with MIME type text/html;charset=UTF-8 
+PASS XHR method GET with MIME type image/png 
+PASS XHR method POST with MIME type text/plain 
+PASS XHR method PUT with MIME type text/plain 
+PASS XHR method DELETE with MIME type text/plain 
+PASS XHR method HEAD with MIME type text/plain 
+PASS XHR method UNICORN with MIME type text/plain 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestdataurihtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/data-uri.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/data-uri.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/data-uri.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,16 +1,14 @@
</span><span class="cx"> &lt;!doctype html&gt;
</span><span class="cx"> &lt;meta charset=utf-8&gt;
</span><del>-&lt;title&gt;XMLHttpRequest: data uri&lt;/title&gt;
</del><ins>+&lt;title&gt;XMLHttpRequest: data URLs&lt;/title&gt;
</ins><span class="cx"> &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#data:-urls-and-http&quot; data-tested-assertations=&quot;following::ul/li[1] following::ul/li[2] following::ul/li[4]&quot; /&gt;
-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-send()-method&quot; data-tested-assertations=&quot;following::ul/li[10]/dl/dt[2]&quot; /&gt;
</del><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;script&gt;
</span><del>-  function do_test(method, uri, charset, testNamePostfix) {
-    if (typeof charset === 'undefined' || charset === null) charset = 'text/plain';
-    var test = async_test(&quot;XHR method &quot; + method + &quot; with charset &quot; + charset+(testNamePostfix||''));
</del><ins>+  function do_test(method, url, mimeType, testNamePostfix) {
+    if (typeof mimeType === 'undefined' || mimeType === null) mimeType = 'text/plain';
+    var test = async_test(&quot;XHR method &quot; + method + &quot; with MIME type &quot; + mimeType + (testNamePostfix||''));
</ins><span class="cx">     test.step(function() {
</span><span class="cx">       var client = new XMLHttpRequest();
</span><span class="cx">       client.onreadystatechange = test.step_func(function () {
</span><span class="lines">@@ -18,25 +16,15 @@
</span><span class="cx">           return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        // Note: fetching a data URL with a non-GET method returns a network
-        // error per &lt;http://fetch.spec.whatwg.org/#basic-fetch&gt;.
-        if (method.toUpperCase() !== 'GET') {
-          assert_equals(client.status, 0);
-          assert_equals(client.responseText, '');
-          assert_equals(client.statusText, '');
-          test.done();
-          return;
-        }
-
</del><span class="cx">         assert_equals(client.responseText, &quot;Hello, World!&quot;);
</span><span class="cx">         assert_equals(client.status, 200);
</span><del>-        assert_equals(client.getResponseHeader('Content-Type'), charset);
</del><ins>+        assert_equals(client.getResponseHeader('Content-Type'), mimeType);
</ins><span class="cx">         var allHeaders = client.getAllResponseHeaders();
</span><span class="cx">         assert_regexp_match(allHeaders, /content\-type\:/i, 'getAllResponseHeaders() includes Content-Type');
</span><span class="cx">         assert_false(/content\-length\:/i.test(allHeaders), 'getAllResponseHeaders() must not include Content-Length');
</span><span class="cx">         test.done();
</span><span class="cx">       });
</span><del>-      client.open(method, uri);
</del><ins>+      client.open(method, url);
</ins><span class="cx">       client.send(null);
</span><span class="cx">     });
</span><span class="cx">   }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventaborthtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-abort.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-abort.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-abort.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -20,9 +20,9 @@
</span><span class="cx">         client.open(&quot;GET&quot;, &quot;resources/well-formed.xml&quot;);
</span><span class="cx">         client.send(null);
</span><span class="cx">         client.abort();
</span><del>-        setTimeout(test.step_func(function () {
</del><ins>+        test.step_timeout(() =&gt; {
</ins><span class="cx">           assert_unreached(&quot;onabort not called after 4 ms&quot;);
</span><del>-        }), 4);
</del><ins>+        }, 4);
</ins><span class="cx">       });
</span><span class="cx">     &lt;/script&gt;
</span><span class="cx">   &lt;/body&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventloadhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-load.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-load.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-load.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -3,10 +3,8 @@
</span><span class="cx"> &lt;title&gt;XMLHttpRequest: The send() method: Fire an event named load (synchronous flag is unset)&lt;/title&gt;
</span><span class="cx"> &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#handler-xhr-onload&quot; data-tested-assertations=&quot;../..&quot; /&gt;
-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#event-xhr-load&quot; data-tested-assertations=&quot;../..&quot; /&gt;
-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method&quot; data-tested-assertations=&quot;following::a[contains(@href,'#switch-done')]/..&quot; /&gt;
-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#switch-done&quot; data-tested-assertations=&quot;following::ol/li[6]&quot; /&gt;
</del><ins>+&lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#handler-xhr-onload&quot; data-tested-assertations=&quot;../..&quot; /&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#event-xhr-load&quot; data-tested-assertations=&quot;../..&quot; /&gt;
</ins><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;script&gt;
</span><span class="lines">@@ -22,11 +20,11 @@
</span><span class="cx">     client.onreadystatechange = test.step_func(function() {
</span><span class="cx">       if (client.readyState !== 4) return;
</span><span class="cx"> 
</span><del>-      setTimeout(test.step_func(function() {
</del><ins>+      test.step_timeout(() =&gt; {
</ins><span class="cx">           assert_unreached(&quot;Didn't get load event within 4ms of readystatechange==4&quot;);
</span><del>-      }), 4);
</del><ins>+      }, 4);
</ins><span class="cx">     });
</span><span class="cx">     client.open(&quot;GET&quot;, &quot;resources/well-formed.xml&quot;);
</span><span class="cx">     client.send(null);
</span><span class="cx">   });
</span><del>-&lt;/script&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventloadendhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadend.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadend.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadend.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -6,9 +6,6 @@
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#handler-xhr-onloadend&quot; data-tested-assertations=&quot;/../..&quot; /&gt;
</span><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#event-xhr-loadend&quot; data-tested-assertations=&quot;/../..&quot; /&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method&quot; data-tested-assertations=&quot;/following-sibling::ol/li[10]&quot; /&gt;
-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method&quot; data-tested-assertations=&quot;following::a[contains(@href,'#switch-done')]/..&quot; /&gt;
-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#switch-done&quot; data-tested-assertations=&quot;following::ol[1]/li[7]&quot; /&gt;
</del><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="lines">@@ -23,9 +20,9 @@
</span><span class="cx">         });
</span><span class="cx">         client.onreadystatechange = function() {
</span><span class="cx">           if (client.readyState !== 4) return;
</span><del>-          setTimeout(test.step_func(function() {
</del><ins>+          test.step_timeout(() =&gt; {
</ins><span class="cx">             assert_unreached(&quot;onloadend not called after 100 ms&quot;);
</span><del>-          }), 100);
</del><ins>+          }, 100);
</ins><span class="cx">         };
</span><span class="cx">         client.open(&quot;GET&quot;, &quot;resources/well-formed.xml&quot;);
</span><span class="cx">         client.send(null);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventloadstartuploadexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart-upload-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart-upload-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart-upload-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL XMLHttpRequest: The send() method: Fire a progress event named loadstart on upload object (synchronous flag is unset) assert_equals: upload.onloadstart: event.total expected 7 but got 0
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventloadstartuploadhtmfromrev213880trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventprogresshtm"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart-upload.htm (from rev 213880, trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-progress.htm) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart-upload.htm                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart-upload.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html lang=en&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;XMLHttpRequest: The send() method: Fire a progress event named loadstart on upload object (synchronous flag is unset)&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#handler-xhr-onprogress&quot; data-tested-assertations=&quot;../..&quot; /&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#event-xhr-progress&quot; data-tested-assertations=&quot;../..&quot; /&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+  var test = async_test();
+  test.step(function() {
+    var client = new XMLHttpRequest();
+    client.upload.onloadstart = test.step_func(function(e) {
+      assert_true(e instanceof ProgressEvent);
+      assert_equals(e.total, 7, 'upload.onloadstart: event.total');
+      assert_equals(e.loaded, 0, 'upload.onloadstart: event.loaded');
+      assert_equals(e.type, &quot;loadstart&quot;);
+      test.done();
+    });
+    client.onreadystatechange = test.step_func(function() {
+      if (client.readyState === 4)
+        assert_unreached(&quot;onloadstart not called.&quot;);
+    });
+    client.open(&quot;POST&quot;, &quot;resources/trickle.py?ms=5&amp;count=8&quot;);
+    client.send('foo=bar');
+  });
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventloadstarthtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -20,9 +20,9 @@
</span><span class="cx">           assert_equals(client.readyState, 1);
</span><span class="cx">           test.done();
</span><span class="cx">         });
</span><del>-        setTimeout(test.step_func(function () {
</del><ins>+        test.step_timeout(function () {
</ins><span class="cx">           assert_unreached(&quot;onloadstart not called after 500 ms&quot;);
</span><del>-        }), 500);
</del><ins>+        }, 500);
</ins><span class="cx">         client.open(&quot;GET&quot;, &quot;resources/well-formed.xml&quot;);
</span><span class="cx">         client.send(null);
</span><span class="cx">       });
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventprogresshtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-progress.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-progress.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-progress.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -6,9 +6,6 @@
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#handler-xhr-onprogress&quot; data-tested-assertations=&quot;../..&quot; /&gt;
</span><span class="cx"> &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#event-xhr-progress&quot; data-tested-assertations=&quot;../..&quot; /&gt;
</span><del>-&lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-send()-method&quot; data-tested-assertations=&quot;following::*//a[contains(@href,'#make-progress-notifications')]&quot; /&gt;
-&lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#make-progress-notifications&quot; data-tested-assertations=&quot;..&quot; /&gt;
-&lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#switch-done&quot; data-tested-assertations=&quot;following::li[5]&quot; /&gt;
</del><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><span class="cx">   var test = async_test();
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventreadystatechangeloadedhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-readystatechange-loaded.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-readystatechange-loaded.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-readystatechange-loaded.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -6,8 +6,6 @@
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-send()-method&quot; data-tested-assertations=&quot;following::ol[1]/li[10]/dt[1]&quot;&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method&quot; data-tested-assertations=&quot;following::dt[7] following::a[contains(@href,'#switch-loading')]/..&quot;&gt;
-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#switch-loading&quot; data-tested-assertations=&quot;following::ol[1]/li[1] following::ol[1]/li[2]&quot;&gt;
</del><span class="cx"> &lt;/head&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventtimeouthtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-timeout.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-timeout.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-timeout.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -25,9 +25,9 @@
</span><span class="cx">         client.timeout = 5;
</span><span class="cx">         client.open(&quot;GET&quot;, &quot;resources/delay.py?ms=20000&quot;);
</span><span class="cx">         client.send(null);
</span><del>-        setTimeout(test.step_func(function () {
</del><ins>+        test.step_timeout(() =&gt; {
</ins><span class="cx">           assert_unreached(&quot;ontimeout not called.&quot;);
</span><del>-        }), 10);
</del><ins>+        }, 10);
</ins><span class="cx">       });
</span><span class="cx">     &lt;/script&gt;
</span><span class="cx">   &lt;/body&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventuploadprogresscrossoriginhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#handler-xhr-onprogress&quot; data-tested-assertations=&quot;../..&quot; /&gt;
</span><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-send()-method&quot; data-tested-assertations=&quot;following::*//a[contains(@href,'#make-upload-progress-notifications')] following::ol[1]/li[8]&quot; /&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#make-upload-progress-notifications&quot; data-tested-assertations=&quot;.. ../following::ul/li[1]&quot; /&gt;
</del><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#dom-xmlhttprequest-upload&quot; data-tested-assertations=&quot;..&quot; /&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventuploadprogresshtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -5,8 +5,6 @@
</span><span class="cx"> &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#handler-xhr-onprogress&quot; data-tested-assertations=&quot;../..&quot; /&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-send()-method&quot; data-tested-assertations=&quot;following::*//a[contains(@href,'#make-upload-progress-notifications')] following::ol[1]/li[8]&quot; /&gt;
-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#make-upload-progress-notifications&quot; data-tested-assertations=&quot;.. ../following::ul/li[1]&quot; /&gt;
</del><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#dom-xmlhttprequest-upload&quot; data-tested-assertations=&quot;..&quot; /&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="lines">@@ -14,7 +12,11 @@
</span><span class="cx">   var test = async_test();
</span><span class="cx">   test.step(function() {
</span><span class="cx">     var client = new XMLHttpRequest();
</span><del>-    client.upload.onprogress = test.step_func(function() {
</del><ins>+    client.upload.onprogress = test.step_func(function(e) {
+      assert_true(e instanceof ProgressEvent);
+      // This short payload will most likely be sent before the first progress evt
+      assert_equals(e.loaded, 22);
+      assert_equals(e.total, 22);
</ins><span class="cx">       test.done();
</span><span class="cx">     });
</span><span class="cx">     client.onreadystatechange = test.step_func(function() {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestgetallresponseheadersclexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-cl-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-cl-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-cl-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+
+FAIL Casing of known headers assert_equals: expected &quot;content-length: 0\r\n&quot; but got &quot;Content-Length: 0\r\n&quot;
+FAIL Casing of known headers 1 assert_regexp_match: expected object &quot;/content-TYPE/&quot; but got &quot;&quot;
+FAIL Casing of known headers 2 assert_regexp_match: expected object &quot;/THIS-is-A-test: 1, 2/&quot; but got &quot;&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestgetallresponseheadersclhtm"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-cl.htm (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-cl.htm                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-cl.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,27 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Casing of known headers&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;script&gt;
+test(() =&gt; {
+  const client = new XMLHttpRequest
+  client.open(&quot;GET&quot;, &quot;resources/header-content-length.asis&quot;, false)
+  client.send()
+  assert_equals(client.getAllResponseHeaders(), &quot;content-length: 0\r\n&quot;)
+})
+test(() =&gt; {
+  const client = new XMLHttpRequest
+  client.open(&quot;GET&quot;, &quot;resources/echo-headers.py&quot;, false)
+  client.setRequestHeader(&quot;THIS-IS-A-TEST&quot;, &quot;1&quot;)
+  client.setRequestHeader(&quot;THIS-is-A-test&quot;, &quot;2&quot;)
+  client.setRequestHeader(&quot;content-TYPE&quot;, &quot;x/x&quot;)
+  client.send()
+  assert_regexp_match(client.responseText, /content-TYPE/)
+  assert_regexp_match(client.responseText, /THIS-IS-A-TEST: 1, 2/)
+})
+promise_test(() =&gt; {
+  return fetch(&quot;resources/echo-headers.py&quot;, {headers: [[&quot;THIS-is-A-test&quot;, 1], [&quot;THIS-IS-A-TEST&quot;, 2]] }).then(res =&gt; res.text()).then(body =&gt; {
+    assert_regexp_match(body, /THIS-is-A-test: 1, 2/)
+  })
+})
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestgetallresponseheadersexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+PASS XMLHttpRequest: getAllResponseHeaders() 
+FAIL XMLHttpRequest: getAllResponseHeaders() 1 assert_equals: expected &quot;also-here: Mr. PB\r\newok: lego\r\nfoo-test: 1, 2\r\n&quot; but got &quot;ALSO-here: Mr. PB\r\nFOO-test: 1, 2\r\newok: lego\r\n&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestgetallresponseheadershtm"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders.htm (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders.htm                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,24 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;XMLHttpRequest: getAllResponseHeaders()&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+async_test((t) =&gt; {
+  const client = new XMLHttpRequest()
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.getAllResponseHeaders(), &quot;foo-test: 1, 2, 3\r\n&quot;)
+  })
+  client.open(&quot;GET&quot;, &quot;resources/headers-basic.asis&quot;)
+  client.send(null)
+})
+
+async_test((t) =&gt; {
+  const client = new XMLHttpRequest()
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.getAllResponseHeaders(), &quot;also-here: Mr. PB\r\newok: lego\r\nfoo-test: 1, 2\r\n&quot;)
+  })
+  client.open(&quot;GET&quot;, &quot;resources/headers.asis&quot;)
+  client.send(null)
+})
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestgetresponseheadercaseinsensitivehtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getresponseheader-case-insensitive.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getresponseheader-case-insensitive.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getresponseheader-case-insensitive.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: getResponseHeader() case-insensitive matching&lt;/title&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#dom-xmlhttprequest-getresponseheader&quot; data-tested-assertations=&quot;following::OL[1]/LI[4] following::OL[1]/LI[5] following::OL[1]/LI[6]&quot; /&gt;
</del><ins>+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#dom-xmlhttprequest-getresponseheader&quot;&gt;
</ins><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="lines">@@ -21,7 +21,7 @@
</span><span class="cx">               assert_equals(client.getResponseHeader(&quot;X-custom-HEADER&quot;), &quot;test&quot;)
</span><span class="cx">               assert_equals(client.getResponseHeader(&quot;X-CUSTOM-header-COMMA&quot;), &quot;1, 2&quot;)
</span><span class="cx">               assert_equals(client.getResponseHeader(&quot;X-CUSTOM-no-such-header-in-response&quot;), null)
</span><del>-              assert_true(client.getResponseHeader(&quot;CONTENT-TYPE&quot;).indexOf(&quot;text/plain&quot;) != -1)
</del><ins>+              assert_equals(client.getResponseHeader(&quot;CONTENT-TYPE&quot;), &quot;text/plain&quot;)
</ins><span class="cx">               test.done()
</span><span class="cx">             }
</span><span class="cx">           })
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestloadstartandstateexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/loadstart-and-state-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/loadstart-and-state-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/loadstart-and-state-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+PASS open() during loadstart 
+PASS abort() during loadstart 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestloadstartandstatehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/loadstart-and-state.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/loadstart-and-state.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/loadstart-and-state.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;XMLHttpRequest: loadstart event corner cases&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;script&gt;
+async_test(t =&gt; {
+  const client = new XMLHttpRequest
+  client.onloadstart = t.step_func(() =&gt; {
+    assert_throws(&quot;InvalidStateError&quot;, () =&gt; client.setRequestHeader(&quot;General&quot;, &quot;Organa&quot;))
+    assert_throws(&quot;InvalidStateError&quot;, () =&gt; client.withCredentials = true)
+    assert_throws(&quot;InvalidStateError&quot;, () =&gt; client.send())
+    client.onloadstart = null
+    client.open(&quot;GET&quot;, &quot;data:,BB-8&quot;)
+    client.send()
+  })
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.responseText, &quot;BB-8&quot;)
+  })
+  client.open(&quot;GET&quot;, &quot;data:,R2-D2&quot;)
+  client.send()
+}, &quot;open() during loadstart&quot;)
+
+async_test(t =&gt; {
+  const client = new XMLHttpRequest
+  let abortFired = false
+  client.onloadstart = t.step_func_done(() =&gt; {
+    assert_equals(client.readyState, 1)
+    client.abort()
+    assert_true(abortFired)
+    assert_equals(client.readyState, 0)
+  })
+  client.onabort = t.step_func(() =&gt; {
+    abortFired = true
+    assert_equals(client.readyState, 4)
+  })
+  client.open(&quot;GET&quot;, &quot;data:,K-2SO&quot;)
+  client.send()
+}, &quot;abort() during loadstart&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenaftersetrequestheaderexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-after-setrequestheader-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-after-setrequestheader-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-after-setrequestheader-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-PASS XMLHttpRequest: open() after setRequestHeader() 
</del><ins>+FAIL XMLHttpRequest: open() after setRequestHeader() assert_equals: expected &quot;&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenaftersetrequestheaderhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-after-setrequestheader.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-after-setrequestheader.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-after-setrequestheader.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: open() after setRequestHeader()&lt;/title&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-open()-method&quot; data-tested-assertations=&quot;following::ol/li[14]/ul/li[4]&quot; /&gt;
</del><ins>+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-open()-method&quot;&gt;
</ins><span class="cx"> 
</span><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenduringaborteventexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-event-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-event-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-event-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL XMLHttpRequest: open() during abort event - abort() called from upload.onloadstart assert_array_equals: property 5, expected &quot;readyState after abort() 1&quot; but got &quot;readyState after abort() 0&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenduringaborteventhtm"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-event.htm (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-event.htm                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-event.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,56 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;XMLHttpRequest: open() during abort event - abort() called from upload.onloadstart&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+async_test(t =&gt; {
+  let client = new XMLHttpRequest(),
+      log = [],
+      lastTest = false,
+      expected = [
+        'readyState before abort() 1',
+        &quot;upload.onabort - before open() 4&quot;,
+        &quot;readyState after open() 1&quot;,
+        &quot;client.onabort 1&quot;,
+        &quot;client.onloadend 1&quot;,
+        &quot;readyState after abort() 1&quot;,
+        &quot;client.onload 4&quot;,
+        &quot;client.onloadend 4&quot;
+      ]
+
+  client.upload.onloadstart = t.step_func(() =&gt; {
+    log.push('readyState before abort() '+client.readyState)
+    client.abort()
+    log.push('readyState after abort() '+client.readyState)
+  })
+
+  client.upload.onabort = t.step_func(() =&gt; {
+    log.push('upload.onabort - before open() ' + client.readyState)
+    client.open(&quot;GET&quot;, &quot;resources/content.py&quot;)
+    log.push('readyState after open() ' + client.readyState)
+    client.send(null)
+  })
+
+  client.onabort = t.step_func(() =&gt; {
+    // happens immediately after all of upload.onabort, so readyState is 1
+    log.push('client.onabort ' + client.readyState)
+  })
+
+  client.onloadend = t.step_func(() =&gt; {
+    log.push('client.onloadend ' + client.readyState)
+    if(lastTest) {
+      assert_array_equals(log, expected)
+      t.done()
+    }
+    lastTest = true
+  })
+
+  client.onload = t.step_func(() =&gt; {
+    log.push('client.onload ' + client.readyState)
+  })
+
+  client.open(&quot;POST&quot;, &quot;resources/content.py&quot;)
+  client.send(&quot;non-empty&quot;)
+})
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenduringabortprocessingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-processing-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-processing-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-processing-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL XMLHttpRequest: open() during abort processing - abort() called from onloadstart assert_array_equals: property 7, expected &quot;readyState after abort() 1&quot; but got &quot;readyState after abort() 0&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenduringabortprocessinghtm"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-processing.htm (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-processing.htm                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-processing.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,64 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;XMLHttpRequest: open() during abort processing - abort() called from onloadstart&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+async_test(t =&gt; {
+  let client = new XMLHttpRequest(),
+      test_state = 1,
+      log = [],
+      expected = [
+        &quot;onloadstart readyState before abort() 1&quot;,
+        &quot;onreadystatechange readyState before open() 4&quot;,
+        &quot;onreadystatechange readyState after open() 1&quot;,
+        &quot;onloadstart readyState 1&quot;,
+        &quot;upload.onabort 1&quot;,
+        &quot;upload.onloadend 1&quot;,
+        &quot;client.onabort 1&quot;,
+        &quot;readyState after abort() 1&quot;,
+        &quot;client.onload 4&quot;
+      ]
+
+  client.onreadystatechange = t.step_func(() =&gt; {
+    if(test_state === 2){
+      test_state = 3
+      log.push('onreadystatechange readyState before open() ' + client.readyState)
+      client.open(&quot;GET&quot;, &quot;resources/content.py&quot;)
+      log.push('onreadystatechange readyState after open() ' + client.readyState)
+      client.send(null)
+    }
+  })
+
+  client.onloadstart = t.step_func(() =&gt; {
+    if(test_state === 1){
+      test_state = 2
+      log.push('onloadstart readyState before abort() ' + client.readyState)
+      client.abort()
+      log.push('readyState after abort() ' + client.readyState)
+    }else{
+      log.push('onloadstart readyState ' + client.readyState)
+    }
+  })
+
+  client.upload.onabort = t.step_func(() =&gt; {
+    log.push('upload.onabort ' + client.readyState)
+  })
+
+  client.onabort = t.step_func(() =&gt; {
+    log.push('client.onabort ' + client.readyState)
+  })
+
+  client.upload.onloadend = t.step_func(() =&gt; {
+    log.push('upload.onloadend ' + client.readyState)
+  })
+
+  client.onload = t.step_func_done(() =&gt; {
+    log.push('client.onload ' + client.readyState)
+    assert_array_equals(log, expected)
+  })
+
+  client.open(&quot;POST&quot;, &quot;resources/content.py&quot;)
+  client.send('abcd')
+})
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenrefererexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-referer-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-referer-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-referer-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-PASS XMLHttpRequest: open() - value of Referer header 
</del><ins>+FAIL XMLHttpRequest: open() - value of Referer header assert_equals: expected &quot;Referer: http://localhost:8800/XMLHttpRequest/open-referer.htm\n&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenrefererhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-referer.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-referer.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-referer.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: open() - value of Referer header&lt;/title&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-open()-method&quot; data-tested-assertations=&quot;/following::ol[1]/li[2]/ol[1]/li[4]&quot; /&gt;
</del><ins>+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-open()-method&quot;&gt;
</ins><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="lines">@@ -13,7 +13,7 @@
</span><span class="cx">         var client = new XMLHttpRequest()
</span><span class="cx">         client.open(&quot;POST&quot;, &quot;resources/inspect-headers.py?filter_name=referer&quot;, false)
</span><span class="cx">         client.send(null)
</span><del>-        assert_equals(client.responseText, &quot;referer: &quot;+location.href+'\n')
</del><ins>+        assert_equals(client.responseText, &quot;Referer: &quot;+location.href+'\n')
</ins><span class="cx">       })
</span><span class="cx">     &lt;/script&gt;
</span><span class="cx">   &lt;/body&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopensendduringabortexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-send-during-abort-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-send-during-abort-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-send-during-abort-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL XMLHttpRequest: open() during abort() assert_array_equals: property 2, expected 1 but got 0
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopensendduringaborthtm"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-send-during-abort.htm (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-send-during-abort.htm                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-send-during-abort.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,27 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;XMLHttpRequest: open() during abort()&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+async_test(t =&gt; {
+  let result = [],
+      client = new XMLHttpRequest(),
+      expected = [1, 4, 1, 'hello']
+  client.open(&quot;GET&quot;, &quot;data:text/plain,&quot;)
+  result.push(client.readyState)
+  client.send()
+  client.onreadystatechange = t.step_func(() =&gt; {
+    client.onreadystatechange = null
+    result.push(client.readyState)
+    client.open(&quot;GET&quot;, &quot;data:text/plain,hello&quot;)
+    client.onload = t.step_func_done(() =&gt; {
+      result.push(client.responseText)
+      assert_array_equals(result, expected)
+    })
+    client.send()
+  })
+  client.abort()
+  result.push(client.readyState)  // surprise! should not be &quot;unsent&quot; even though we called abort()
+})
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenurlredirectedworkeroriginexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+Blocked access to external URL http://www2.localhost:8800/XMLHttpRequest/resources/inspect-headers.py?filter_name=origin&amp;cors
+
+PASS XMLHttpRequest: redirected worker scripts, origin and referrer 
+FAIL Origin header assert_equals: expected &quot;Origin: http://localhost:8800\n&quot; but got &quot;&quot;
+FAIL Referer header assert_equals: expected &quot;Referer: http://localhost:8800/XMLHttpRequest/resources/workerxhr-origin-referrer.js\n&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+PASS Request URL test 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenurlredirectedworkeroriginhtm"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin.htm (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin.htm                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,43 @@
</span><ins>+ &lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+    &lt;meta charset=&quot;utf-8&quot; /&gt;
+    &lt;title&gt;XMLHttpRequest: redirected worker scripts, origin and referrer&lt;/title&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+    &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+    &lt;script type=&quot;text/javascript&quot;&gt;
+        var test = async_test() // This &quot;test&quot; does not actually do any assertations. It's just there to have multiple, separate, asyncronous sub-tests.
+        var expectations = {
+            'Referer header': 'Referer: '+(location.href.replace(/[^/]*$/, ''))+&quot;resources/workerxhr-origin-referrer.js\n&quot;,
+            'Origin header': 'Origin: '+location.protocol+'//'+location.hostname+((location.port === &quot;&quot;)?&quot;&quot;:&quot;:&quot;+location.port)+'\n',
+            'Request URL test' : (location.href.replace(/[^/]*$/, ''))+'resources/requri.py?full'
+        }
+        // now start the worker
+        var finalWorkerURL = &quot;workerxhr-origin-referrer.js&quot;;
+        var url = &quot;resources/redirect.py?location=&quot; + encodeURIComponent(finalWorkerURL);
+        var worker = new Worker(url, true)
+        worker.onmessage = function (e) {
+            var subtest = async_test(e.data.test)
+            subtest.step(function(){
+                var thisExpectation = expectations[e.data.test]
+                delete expectations[e.data.test]
+                assert_equals(e.data.result, thisExpectation)
+                subtest.done()
+            })
+            var allDone = true
+            for(var prop in expectations){
+                  allDone = false
+            }
+            if(allDone){
+                test.step(function(){
+                    test.done()
+                })
+            }
+        }
+
+    &lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestoverridemimetypeblobexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-blob-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-blob-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-blob-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+
+FAIL Use text/xml as fallback MIME type assert_equals: expected &quot;text/xml&quot; but got &quot;&quot;
+PASS Use text/xml as fallback MIME type, 2 
+FAIL Bogus MIME type should end up as application/octet-stream assert_equals: expected &quot;&quot; but got &quot;bogus&quot;
+FAIL Bogus MIME type should end up as application/octet-stream, 2 assert_equals: expected &quot;&quot; but got &quot;text/xml;charset=†&quot;
+FAIL Valid MIME types need to be normalized assert_equals: expected &quot;&quot; but got &quot;HI/x;test&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestoverridemimetypeblobhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-blob.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-blob.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-blob.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,65 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;XMLHttpRequest: overrideMimeType() and responseType = &quot;blob&quot;&lt;/title&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+async_test(t =&gt; {
+  const client = new XMLHttpRequest()
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.getResponseHeader(&quot;Content-Type&quot;), &quot;&quot;)
+    assert_equals(client.response.type, &quot;text/xml&quot;)
+  })
+  client.open(&quot;GET&quot;, &quot;resources/status.py&quot;)
+  client.responseType = &quot;blob&quot;
+  client.send()
+}, &quot;Use text/xml as fallback MIME type&quot;)
+
+async_test(t =&gt; {
+  const client = new XMLHttpRequest()
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.getResponseHeader(&quot;Content-Type&quot;), &quot;&quot;)
+    assert_equals(client.response.type, &quot;text/xml&quot;)
+  })
+  client.open(&quot;GET&quot;, &quot;resources/status.py?content=thisshouldnotmakeadifferencebutdoes&quot;)
+  client.responseType = &quot;blob&quot;
+  client.send()
+}, &quot;Use text/xml as fallback MIME type, 2&quot;)
+
+async_test(t =&gt; {
+  const client = new XMLHttpRequest()
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.getResponseHeader(&quot;Content-Type&quot;), &quot;&quot;)
+    assert_equals(client.response.type, &quot;application/octet-stream&quot;)
+  })
+  client.open(&quot;GET&quot;, &quot;resources/status.py&quot;)
+  client.responseType = &quot;blob&quot;
+  client.overrideMimeType(&quot;bogus&quot;)
+  client.send()
+}, &quot;Bogus MIME type should end up as application/octet-stream&quot;)
+
+async_test(t =&gt; {
+  const client = new XMLHttpRequest()
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.getResponseHeader(&quot;Content-Type&quot;), &quot;&quot;)
+    assert_equals(client.response.type, &quot;application/octet-stream&quot;)
+  })
+  client.open(&quot;GET&quot;, &quot;resources/status.py&quot;)
+  client.responseType = &quot;blob&quot;
+  client.overrideMimeType(&quot;text/xml;charset=†&quot;)
+  client.send()
+}, &quot;Bogus MIME type should end up as application/octet-stream, 2&quot;)
+
+async_test(t =&gt; {
+  const client = new XMLHttpRequest()
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.getResponseHeader(&quot;Content-Type&quot;), &quot;&quot;)
+    assert_equals(client.response.type, &quot;hi/x&quot;)
+  })
+  client.open(&quot;GET&quot;, &quot;resources/status.py&quot;)
+  client.responseType = &quot;blob&quot;
+  client.overrideMimeType(&quot;HI/x;test&quot;)
+  client.send()
+}, &quot;Valid MIME types need to be normalized&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestoverridemimetypeinvalidmimetypeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-invalid-mime-type-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-invalid-mime-type-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-invalid-mime-type-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,5 @@
</span><span class="cx"> 
</span><del>-FAIL XMLHttpRequest: overrideMimeType() in unsent state, invalid MIME types assert_throws: function &quot;function () { client.overrideMimeType('text\\plain;charset=Shift-JIS'); }&quot; did not throw
</del><ins>+FAIL Bogus MIME type does not override encoding assert_equals: expected &quot;text/html;charset=windows-1252&quot; but got &quot;bogus&quot;
+FAIL Bogus MIME type does not override encoding, 2 assert_equals: expected &quot;ÿ&quot; but got &quot;\x1a&quot;
+FAIL Bogus MIME type does override MIME type assert_equals: expected &quot;text/xml&quot; but got &quot;bogus&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestoverridemimetypeinvalidmimetypehtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-invalid-mime-type.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-invalid-mime-type.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-invalid-mime-type.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,25 +1,41 @@
</span><span class="cx"> &lt;!doctype html&gt;
</span><del>-&lt;html&gt;
-  &lt;head&gt;
-    &lt;title&gt;XMLHttpRequest: overrideMimeType() in unsent state, invalid MIME types&lt;/title&gt;
-    &lt;meta charset=&quot;utf-8&quot;&gt;
-    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
-    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-overridemimetype()-method&quot; data-tested-assertations=&quot;/following::ol/li[2]&quot; /&gt;
-  &lt;/head&gt;
-  &lt;body&gt;
-    &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
-    &lt;script&gt;
-      test(function() {
-        var client = new XMLHttpRequest();
-        assert_throws(&quot;SyntaxError&quot;, function() { client.overrideMimeType('text\\plain;charset=Shift-JIS'); });
-        assert_throws(&quot;SyntaxError&quot;, function() { client.overrideMimeType('text plain;charset=Shift-JIS'); });
-        assert_throws(&quot;SyntaxError&quot;, function() { client.overrideMimeType('text\nplain;charset=Shift-JIS'); });
-        assert_throws(&quot;SyntaxError&quot;, function() { client.overrideMimeType('cahrset=Shift-JIS'); });
-        assert_throws(&quot;SyntaxError&quot;, function() { client.overrideMimeType(null); });
-        assert_throws(&quot;SyntaxError&quot;, function() { client.overrideMimeType(50212); });
-        assert_throws(&quot;SyntaxError&quot;, function() { client.overrideMimeType( (new Array(1000)).join('a/b/c/') ); });
-      });
-    &lt;/script&gt;
-  &lt;/body&gt;
-&lt;/html&gt;
</del><ins>+&lt;title&gt;XMLHttpRequest: overrideMimeType() and invalid MIME types&lt;/title&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-overridemimetype()-method&quot;&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+async_test(t =&gt; {
+  const client = new XMLHttpRequest()
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.responseText, &quot;ÿ&quot;)
+    assert_equals(client.getResponseHeader(&quot;Content-Type&quot;), &quot;text/html;charset=windows-1252&quot;)
+  })
+  client.open(&quot;GET&quot;, &quot;resources/status.py?type=&quot; + encodeURIComponent(&quot;text/html;charset=windows-1252&quot;) + &quot;&amp;content=%FF&quot;)
+  client.overrideMimeType(&quot;bogus&quot;)
+  client.send()
+}, &quot;Bogus MIME type does not override encoding&quot;)
+
+async_test(t =&gt; {
+  const client = new XMLHttpRequest()
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.responseText, &quot;ÿ&quot;)
+    assert_equals(client.getResponseHeader(&quot;Content-Type&quot;), &quot;text/html;charset=windows-1252&quot;)
+  })
+  client.open(&quot;GET&quot;, &quot;resources/status.py?type=&quot; + encodeURIComponent(&quot;text/html;charset=windows-1252&quot;) + &quot;&amp;content=%FF&quot;)
+  client.overrideMimeType(&quot;bogus;charset=Shift_JIS&quot;)
+  client.send()
+}, &quot;Bogus MIME type does not override encoding, 2&quot;)
+
+async_test(t =&gt; {
+  const client = new XMLHttpRequest()
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.responseXML, null)
+    assert_equals(client.getResponseHeader(&quot;Content-Type&quot;), &quot;text/xml&quot;)
+  })
+  client.open(&quot;GET&quot;, &quot;resources/status.py?type=&quot; + encodeURIComponent(&quot;text/xml&quot;) + &quot;&amp;content=&quot; + encodeURIComponent(&quot;&lt;x/&gt;&quot;))
+  client.overrideMimeType(&quot;bogus&quot;)
+  client.send()
+}, &quot;Bogus MIME type does override MIME type&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcescorsenabledpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/corsenabled.py (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/corsenabled.py        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/corsenabled.py        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -11,6 +11,9 @@
</span><span class="cx">         delay = int(request.GET.first(&quot;delay&quot;))
</span><span class="cx">         time.sleep(delay)
</span><span class="cx"> 
</span><ins>+    if &quot;safelist_content_type&quot; in request.GET:
+        headers.append((&quot;Access-Control-Allow-Headers&quot;, &quot;content-type&quot;))
+
</ins><span class="cx">     headers.append((&quot;X-Request-Method&quot;, request.method))
</span><span class="cx">     headers.append((&quot;X-Request-Query&quot;, request.url_parts.query if request.url_parts.query else &quot;NO&quot;))
</span><span class="cx">     headers.append((&quot;X-Request-Content-Length&quot;, request.headers.get(&quot;Content-Length&quot;, &quot;NO&quot;)))
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesdelaypy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/delay.py (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/delay.py        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/delay.py        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -3,4 +3,5 @@
</span><span class="cx"> def main(request, response):
</span><span class="cx">     delay = float(request.GET.first(&quot;ms&quot;, 500))
</span><span class="cx">     time.sleep(delay / 1E3);
</span><del>-    return [(&quot;Content-type&quot;, &quot;text/plain&quot;)], &quot;TEST_DELAY&quot;
</del><ins>+
+    return [(&quot;Access-Control-Allow-Origin&quot;, &quot;*&quot;), (&quot;Access-Control-Allow-Methods&quot;, &quot;YO&quot;), (&quot;Content-type&quot;, &quot;text/plain&quot;)], &quot;TEST_DELAY&quot;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesechoheaderspy"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/echo-headers.py (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/echo-headers.py                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/echo-headers.py        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+def main(request, response):
+    response.writer.write_status(200)
+    response.writer.write_header(&quot;Content-Type&quot;, &quot;text/plain&quot;)
+    response.writer.end_headers()
+    response.writer.write(str(request.raw_headers))
+    response.close_connection = True
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesheadercontentlengthasis"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/header-content-length.asis (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/header-content-length.asis                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/header-content-length.asis        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,2 @@
</span><ins>+HTTP/1.0 200 NANANA
+CONTENT-LENGTH:  0
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesheadersbasicasis"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/headers-basic.asis (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/headers-basic.asis                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/headers-basic.asis        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+HTTP/1.1 280 HELLO
+foo-test: 1
+foo-test: 2
+foo-test: 3
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesheadersasis"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/headers.asis (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/headers.asis                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/headers.asis        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+HTTP/1.1 200 YAYAYAYA
+foo-TEST: 1
+FOO-test: 2
+ALSO-here: Mr. PB
+ewok: lego
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesinspectheaderspy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+def get_response(raw_headers, filter_value, filter_name):
+    result = &quot;&quot;
+    for line in raw_headers.headers:
+        if line[-2:] != '\r\n':
+            return &quot;Syntax error: missing CRLF: &quot; + line
+        line = line[:-2]
+
+        if ': ' not in line:
+            return &quot;Syntax error: no colon and space: &quot; + line
+
+        name, value = line.split(': ', 1)
+        if filter_value:
+            if value == filter_value:
+                result += name + &quot;,&quot;
+        elif name.lower() == filter_name:
+            result += name + &quot;: &quot; + value + &quot;\n&quot;;
+    return result
+
</ins><span class="cx"> def main(request, response):
</span><span class="cx">     headers = []
</span><span class="cx">     if &quot;cors&quot; in request.GET:
</span><span class="lines">@@ -6,17 +24,10 @@
</span><span class="cx">         headers.append((&quot;Access-Control-Allow-Methods&quot;, &quot;GET, POST, PUT, FOO&quot;))
</span><span class="cx">         headers.append((&quot;Access-Control-Allow-Headers&quot;, &quot;x-test, x-foo&quot;))
</span><span class="cx">         headers.append((&quot;Access-Control-Expose-Headers&quot;, &quot;x-request-method, x-request-content-type, x-request-query, x-request-content-length&quot;))
</span><ins>+    headers.append((&quot;content-type&quot;, &quot;text/plain&quot;))
</ins><span class="cx"> 
</span><span class="cx">     filter_value = request.GET.first(&quot;filter_value&quot;, &quot;&quot;)
</span><span class="cx">     filter_name = request.GET.first(&quot;filter_name&quot;, &quot;&quot;).lower()
</span><ins>+    result = get_response(request.raw_headers, filter_value, filter_name)
</ins><span class="cx"> 
</span><del>-    result = &quot;&quot;
-    for name, value in request.headers.iteritems():
-        if filter_value:
-            if value == filter_value:
-                result += name.lower() + &quot;,&quot;
-        elif name.lower() == filter_name:
-            result += name.lower() + &quot;: &quot; + value + &quot;\n&quot;;
-
-    headers.append((&quot;content-type&quot;, &quot;text/plain&quot;))
</del><span class="cx">     return headers, result
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesredirectpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/redirect.py (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/redirect.py        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/redirect.py        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,8 +1,14 @@
</span><ins>+import time
+
</ins><span class="cx"> def main(request, response):
</span><span class="cx">     code = int(request.GET.first(&quot;code&quot;, 302))
</span><span class="cx">     location = request.GET.first(&quot;location&quot;, request.url_parts.path +&quot;?followed&quot;)
</span><span class="cx"> 
</span><del>-    if request.url.endswith(&quot;?followed&quot;):
</del><ins>+    if &quot;delay&quot; in request.GET:
+        delay = float(request.GET.first(&quot;delay&quot;))
+        time.sleep(delay / 1E3);
+
+    if &quot;followed&quot; in request.GET:
</ins><span class="cx">         return [(&quot;Content:Type&quot;, &quot;text/plain&quot;)], &quot;MAGIC HAPPENED&quot;
</span><span class="cx">     else:
</span><span class="cx">         return (code, &quot;WEBSRT MARKETING&quot;), [(&quot;Location&quot;, location)], &quot;TEST&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresourcesw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -23,11 +23,15 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/content.py
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/corsenabled.py
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/delay.py
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/echo-headers.py
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/echo-method.py
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/empty-div-utf8-html.py
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/folder.txt
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/form.py
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/gzip.py
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/header-content-length.asis
+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/headers-basic.asis
+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/headers.asis
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/headers.py
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/image.gif
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/img-utf8-html.py
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresponsetextdecodingexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responsetext-decoding-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responsetext-decoding-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responsetext-decoding-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> 
</span><span class="cx"> PASS XMLHttpRequest: responseText decoding (application/xml %3C%3Fxml%20version%3D'1.0'%20encoding%3D'windows-1252'%3F%3E%3Cx%3E%FF%3C%2Fx%3E) 
</span><del>-PASS XMLHttpRequest: responseText decoding (text/html %3C!doctype%20html%3E%3Cmeta%20charset%3Dwindows-1252%3E%FF) 
</del><ins>+FAIL XMLHttpRequest: responseText decoding (text/html %3C!doctype%20html%3E%3Cmeta%20charset%3Dwindows-1252%3E%FF) assert_equals: expected &quot;&lt;!doctype html&gt;&lt;meta charset=windows-1252&gt;\ufffd&quot; but got &quot;&lt;!doctype html&gt;&lt;meta charset=windows-1252&gt;ÿ&quot;
</ins><span class="cx"> PASS XMLHttpRequest: responseText decoding (text/plain;charset=windows-1252 %FF) 
</span><span class="cx"> PASS XMLHttpRequest: responseText decoding (text/plain %FF) 
</span><span class="cx"> PASS XMLHttpRequest: responseText decoding (text/plain %FE%FF) 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestresponsetextdecodinghtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responsetext-decoding.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responsetext-decoding.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/responsetext-decoding.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -18,17 +18,14 @@
</span><span class="cx">             client.responseType = responseType
</span><span class="cx">           }
</span><span class="cx">           client.open(&quot;GET&quot;, &quot;resources/status.py?content=&quot; + input + &quot;&amp;type=&quot; + encodeURIComponent(type), true)
</span><del>-          client.onload = function(){
-            test.step(function(){
-              assert_equals(client.responseText, output)
-              test.done()
-            })
-          }
</del><ins>+          client.onload = test.step_func_done(() =&gt; {
+            assert_equals(client.responseText, output)
+          })
</ins><span class="cx">           client.send(null)
</span><span class="cx">         })
</span><span class="cx">       }
</span><span class="cx">       request(&quot;application/xml&quot;, encodeURIComponent(&quot;&lt;?xml version='1.0' encoding='windows-1252'?&gt;&lt;x&gt;&quot;)+'%FF'+encodeURIComponent(&quot;&lt;\/x&gt;&quot;), &quot;&lt;?xml version='1.0' encoding='windows-1252'?&gt;&lt;x&gt;\u00FF&lt;\/x&gt;&quot;)
</span><del>-      request(&quot;text/html&quot;, encodeURIComponent(&quot;&lt;!doctype html&gt;&lt;meta charset=windows-1252&gt;&quot;)+&quot;%FF&quot;, &quot;&lt;!doctype html&gt;&lt;meta charset=windows-1252&gt;\u00FF&quot;)
</del><ins>+      request(&quot;text/html&quot;, encodeURIComponent(&quot;&lt;!doctype html&gt;&lt;meta charset=windows-1252&gt;&quot;)+&quot;%FF&quot;, &quot;&lt;!doctype html&gt;&lt;meta charset=windows-1252&gt;\uFFFD&quot;)
</ins><span class="cx">       request(&quot;text/plain;charset=windows-1252&quot;, &quot;%FF&quot;, &quot;\u00FF&quot;)
</span><span class="cx">       request(&quot;text/plain&quot;, &quot;%FF&quot;, &quot;\uFFFD&quot;)
</span><span class="cx">       request(&quot;text/plain&quot;, &quot;%FE%FF&quot;, &quot;&quot;)
</span><span class="lines">@@ -36,8 +33,6 @@
</span><span class="cx">       request(&quot;text/plain&quot;, &quot;%EF%BB%BF&quot;, &quot;&quot;)
</span><span class="cx">       request(&quot;text/plain&quot;, &quot;%EF%BB%BF%EF%BB%BF&quot;, &quot;\uFEFF&quot;)
</span><span class="cx">       request(&quot;text/plain&quot;, &quot;%C2&quot;, &quot;\uFFFD&quot;)
</span><del>-
-      // XXX might need fixing
</del><span class="cx">       request(&quot;text/xml&quot;, &quot;%FE%FF&quot;, &quot;&quot;)
</span><span class="cx">       request(&quot;text/xml&quot;, &quot;%FE%FF%FE%FF&quot;, &quot;\uFEFF&quot;)
</span><span class="cx">       request(&quot;text/xml&quot;, &quot;%EF%BB%BF&quot;, &quot;&quot;)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendacceptlanguageexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-accept-language-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-accept-language-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-accept-language-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><span class="cx"> 
</span><del>-PASS Send &quot;sensible&quot; default value, whatever that means 
-PASS XMLHttpRequest: send() - Accept-Language 
</del><ins>+FAIL Send &quot;sensible&quot; default value, whatever that means assert_regexp_match: expected object &quot;/Accept-Language:\s.+/&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: send() - Accept-Language assert_equals: expected &quot;Accept-Language: x-GameSpeak\n&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendacceptlanguagehtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-accept-language.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-accept-language.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-accept-language.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: send() - Accept-Language&lt;/title&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-send()-method&quot; data-tested-assertations=&quot;following::code[contains(text(),'Accept-Language')]/.. following::code[contains(text(),'Accept-Language')]/../following::ul[1]/li[1] following::code[contains(text(),'Accept-Language')]/../following::ul[1]/li[2]&quot; /&gt;
</del><ins>+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-send()-method&quot;&gt;
</ins><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="lines">@@ -13,7 +13,7 @@
</span><span class="cx">         var client = new XMLHttpRequest()
</span><span class="cx">         client.open('GET', 'resources/inspect-headers.py?filter_name=accept-language', false)
</span><span class="cx">         client.send(null)
</span><del>-        assert_regexp_match(client.responseText, /accept-language:\s.+/)
</del><ins>+        assert_regexp_match(client.responseText, /Accept-Language:\s.+/)
</ins><span class="cx">       }, 'Send &quot;sensible&quot; default value, whatever that means')
</span><span class="cx">       test(function() {
</span><span class="cx">         var client = new XMLHttpRequest()
</span><span class="lines">@@ -20,7 +20,7 @@
</span><span class="cx">         client.open(&quot;GET&quot;, &quot;resources/inspect-headers.py?filter_name=accept-language&quot;, false)
</span><span class="cx">         client.setRequestHeader(&quot;Accept-Language&quot;, &quot;x-GameSpeak&quot;)
</span><span class="cx">         client.send(null)
</span><del>-        assert_equals(client.responseText, &quot;accept-language: x-GameSpeak\n&quot;)
</del><ins>+        assert_equals(client.responseText, &quot;Accept-Language: x-GameSpeak\n&quot;)
</ins><span class="cx">       })
</span><span class="cx">     &lt;/script&gt;
</span><span class="cx">   &lt;/body&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsenddataformdataexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-formdata-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-formdata-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-formdata-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-PASS XmlHttpRequest: The send() method: FormData data 
</del><ins>+PASS XMLHttpRequest: The send() method: FormData data 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsenddataformdatahtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-formdata.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-formdata.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-formdata.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -6,7 +6,7 @@
</span><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-response-attribute&quot;  data-tested-assertations=&quot;following::ol[1]/li[3]&quot;/&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;title&gt;XmlHttpRequest: The send() method: FormData data&lt;/title&gt;
</del><ins>+    &lt;title&gt;XMLHttpRequest: The send() method: FormData data&lt;/title&gt;
</ins><span class="cx"> &lt;/head&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;body&gt;
</span><span class="lines">@@ -22,18 +22,13 @@
</span><span class="cx">             form.append(&quot;id&quot;, &quot;0&quot;);
</span><span class="cx">             form.append(&quot;value&quot;, &quot;zero&quot;);
</span><span class="cx"> 
</span><del>-            xhr.onreadystatechange = function()
-            {
-                test.step(function ()
-                {
-                    if (xhr.readyState == 4)
-                    {
-                        assert_equals(xhr.status, 200);
-                        assert_equals(xhr.response, &quot;id:0;value:zero;&quot;);
-                        test.done();
-                    }
-                });
-            };
</del><ins>+            xhr.onreadystatechange = test.step_func(() =&gt; {
+                if (xhr.readyState == 4) {
+                    assert_equals(xhr.status, 200);
+                    assert_equals(xhr.response, &quot;id:0;value:zero;&quot;);
+                    test.done();
+                }
+            });
</ins><span class="cx"> 
</span><span class="cx">             xhr.open(&quot;POST&quot;, &quot;./resources/form.py&quot;, true);
</span><span class="cx">             xhr.send(form);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendnetworkerrorsynceventssubexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> Blocked access to external URL http://nonexistent-origin.localhost}:8800/
</span><span class="cx"> 
</span><del>-FAIL XmlHttpRequest: The send() method: Throw a &quot;throw an &quot;NetworkError&quot; exception when Network error happens (synchronous flag is set) assert_throws: function &quot;function ()
</del><ins>+FAIL XMLHttpRequest: The send() method: Throw a &quot;throw an &quot;NetworkError&quot; exception when Network error happens (synchronous flag is set) assert_throws: function &quot;function ()
</ins><span class="cx">             {
</span><span class="cx">                 xhr.send(&quot;Test Message&quot;);
</span><span class="cx">             }&quot; threw object &quot;AbortError (DOM Exception 20): The operation was aborted.&quot; that is not a DOMException NetworkError: property &quot;code&quot; is equal to 20, expected 19
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendnetworkerrorsynceventssubhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -6,7 +6,7 @@
</span><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#request-error&quot; data-tested-assertations=&quot;following::ol[1]/li[4] following::ol[1]/li[5]&quot; /&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;title&gt;XmlHttpRequest: The send() method: Throw a &quot;throw an &quot;NetworkError&quot; exception when Network error happens (synchronous flag is set)&lt;/title&gt;
</del><ins>+    &lt;title&gt;XMLHttpRequest: The send() method: Throw a &quot;throw an &quot;NetworkError&quot; exception when Network error happens (synchronous flag is set)&lt;/title&gt;
</ins><span class="cx"> &lt;/head&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;body&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendredirecttocorshtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-to-cors.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-to-cors.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-to-cors.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,7 +4,6 @@
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: send() - Redirect to CORS-enabled resource&lt;/title&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method&quot; data-tested-assertations=&quot;following::dl[1]/dt[2] following::dl[1]/dd[2]/ol/li[1] following::dl[1]/dd[2]/ol/li[3]&quot; /&gt;
</del><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="lines">@@ -13,56 +12,76 @@
</span><span class="cx">         if (body === null) {
</span><span class="cx">           return { body: &quot;&quot;, type: &quot;NO&quot; };
</span><span class="cx">         }
</span><del>-
</del><span class="cx">         if (typeof body == &quot;string&quot;) {
</span><span class="cx">           return { body: body, type: &quot;text/plain;charset=UTF-8&quot; };
</span><span class="cx">         }
</span><del>-
</del><span class="cx">         if (body instanceof Uint8Array) {
</span><span class="cx">           var arr = Array.prototype.slice.call(body);
</span><span class="cx">           return { body: String.fromCharCode.apply(null, arr), type: &quot;NO&quot; }
</span><span class="cx">         }
</span><del>-
-        return { body: &quot;EXTRACT NOT IMPLEMENTED&quot;,
-                 type: &quot;EXTRACT NOT IMPLEMENTED&quot; }
</del><ins>+        return { body: &quot;EXTRACT NOT IMPLEMENTED&quot;, type: &quot;EXTRACT NOT IMPLEMENTED&quot; }
</ins><span class="cx">       }
</span><span class="cx"> 
</span><del>-      function redirect(code, name = code, method = &quot;GET&quot;, body = null, setExplicitType = true) {
-        var test = async_test(document.title + &quot; (&quot; + name + &quot;)&quot;)
-        test.step(function() {
</del><ins>+      function redirect(code, name = code, method = &quot;GET&quot;, body = null, explicitType = null, safelistContentType = false) {
+        async_test(t =&gt; {
</ins><span class="cx">           var client = new XMLHttpRequest()
</span><del>-          client.onreadystatechange = function() {
-            test.step(function() {
-              if (client.readyState == 4) {
-                assert_equals(client.status, 200);
-                assert_equals(client.getResponseHeader(&quot;x-request-method&quot;),
-                              method);
</del><ins>+          client.onreadystatechange = t.step_func(() =&gt; {
+            if (client.readyState == 4) {
+              if (explicitType !== &quot;application/x-pony&quot; || safelistContentType) {
</ins><span class="cx">                 var { body: expectedBody, type: expectedType } = extractBody(body);
</span><del>-                if (setExplicitType) {
-                  expectedType = &quot;application/x-pony&quot;;
</del><ins>+                if (explicitType !== null) {
+                  expectedType = explicitType
</ins><span class="cx">                 }
</span><del>-                assert_equals(client.getResponseHeader(&quot;x-request-content-type&quot;),
-                              expectedType);
-                assert_equals(client.getResponseHeader(&quot;x-request-data&quot;),
-                              expectedBody);
-                test.done();
</del><ins>+                if (((code === &quot;301&quot; || code === &quot;302&quot;) &amp;&amp; method === &quot;POST&quot;) || code === &quot;303&quot;) {
+                  method = &quot;GET&quot;
+                  expectedBody = &quot;&quot;
+                }
+                assert_equals(client.status, 200);
+                assert_equals(client.getResponseHeader(&quot;x-request-method&quot;), method);
+                assert_equals(client.getResponseHeader(&quot;x-request-content-type&quot;), expectedType);
+                assert_equals(client.getResponseHeader(&quot;x-request-data&quot;), expectedBody);
+              } else {
+                // &quot;application/x-pony&quot; is not safelisted by corsenabled.py -&gt; network error
+                assert_equals(client.status, 0)
+                assert_equals(client.statusText, &quot;&quot;)
+                assert_equals(client.responseText, &quot;&quot;)
+                assert_equals(client.responseXML, null)
</ins><span class="cx">               }
</span><del>-            })
</del><ins>+              t.done();
+            }
+          })
+          let safelist = &quot;&quot;
+          if (safelistContentType) {
+            safelist = &quot;?safelist_content_type&quot;
</ins><span class="cx">           }
</span><del>-          client.open(method, &quot;resources/redirect.py?location=&quot;+encodeURIComponent(&quot;http://www2.&quot;+location.host+(location.pathname.replace(/[^\/]+$/, ''))+'resources/corsenabled.py')+&quot;&amp;code=&quot; + code)
-          if (setExplicitType) {
-            client.setRequestHeader(&quot;Content-Type&quot;, &quot;application/x-pony&quot;)
</del><ins>+          client.open(method, &quot;resources/redirect.py?location=&quot;+encodeURIComponent(&quot;http://www2.&quot;+location.host+(location.pathname.replace(/[^\/]+$/, ''))+'resources/corsenabled.py')+safelist+&quot;&amp;code=&quot; + code)
+          if (explicitType !== null) {
+            client.setRequestHeader(&quot;Content-Type&quot;, explicitType)
</ins><span class="cx">           }
</span><span class="cx">           client.send(body)
</span><del>-        })
</del><ins>+        }, document.title + &quot; (&quot; + name + &quot;)&quot;)
</ins><span class="cx">       }
</span><span class="cx">       redirect(&quot;301&quot;)
</span><ins>+      redirect(&quot;301&quot;, &quot;301 GET with explicit Content-Type&quot;, &quot;GET&quot;, null, &quot;application/x-pony&quot;)
+      redirect(&quot;301&quot;, &quot;301 GET with explicit Content-Type safelisted&quot;, &quot;GET&quot;, null, &quot;application/x-pony&quot;, true)
</ins><span class="cx">       redirect(&quot;302&quot;)
</span><span class="cx">       redirect(&quot;303&quot;)
</span><ins>+      redirect(&quot;303&quot;, &quot;303 LALA with string and explicit Content-Type safelisted&quot;, &quot;LALA&quot;, &quot;test&quot;, &quot;application/x-pony&quot;, true)
</ins><span class="cx">       redirect(&quot;307&quot;)
</span><del>-      redirect(&quot;307&quot;, &quot;307 post with null&quot;, &quot;POST&quot;, null, false);
-      redirect(&quot;307&quot;, &quot;307 post with string&quot;, &quot;POST&quot;, &quot;hello&quot;, false);
-      redirect(&quot;307&quot;, &quot;307 post with typed array&quot;, &quot;POST&quot;, new Uint8Array([65, 66, 67]), false);
</del><ins>+      redirect(&quot;307&quot;, &quot;307 post with null&quot;, &quot;POST&quot;, null)
+      redirect(&quot;307&quot;, &quot;307 post with string&quot;, &quot;POST&quot;, &quot;hello&quot;)
+      redirect(&quot;307&quot;, &quot;307 post with typed array&quot;, &quot;POST&quot;, new Uint8Array([65, 66, 67]))
+      redirect(&quot;301&quot;, &quot;301 POST with string and explicit Content-Type&quot;, &quot;POST&quot;, &quot;yoyo&quot;, &quot;application/x-pony&quot;)
+      redirect(&quot;301&quot;, &quot;301 POST with string and explicit Content-Type safelisted&quot;, &quot;POST&quot;, &quot;yoyo&quot;, &quot;application/x-pony&quot;, true)
+      redirect(&quot;302&quot;, &quot;302 POST with string and explicit Content-Type&quot;, &quot;POST&quot;, &quot;yoyo&quot;, &quot;application/x-pony&quot;)
+      redirect(&quot;307&quot;, &quot;307 POST with string and explicit Content-Type&quot;, &quot;POST&quot;, &quot;yoyo&quot;, &quot;application/x-pony&quot;)
+      redirect(&quot;307&quot;, &quot;307 FOO with string and explicit Content-Type&quot;, &quot;FOO&quot;, &quot;yoyo&quot;, &quot;application/x-pony&quot;)
+      redirect(&quot;308&quot;, &quot;308 POST with string and explicit Content-Type&quot;, &quot;POST&quot;, &quot;yoyo&quot;, &quot;application/x-pony&quot;)
+      redirect(&quot;308&quot;, &quot;308 FOO with string and explicit Content-Type&quot;, &quot;FOO&quot;, &quot;yoyo&quot;, &quot;application/x-pony&quot;)
+      redirect(&quot;308&quot;, &quot;308 FOO with string and explicit Content-Type text/plain&quot;, &quot;FOO&quot;, &quot;yoyo&quot;, &quot;text/plain&quot;)
+      redirect(&quot;308&quot;, &quot;308 FOO with string and explicit Content-Type multipart/form-data&quot;, &quot;FOO&quot;, &quot;yoyo&quot;, &quot;multipart/form-data&quot;)
+      redirect(&quot;308&quot;, &quot;308 FOO with string and explicit Content-Type safelisted&quot;, &quot;FOO&quot;, &quot;yoyo&quot;, &quot;application/thunderstorm&quot;, true)
+      redirect(&quot;307&quot;, &quot;307 POST with string and explicit Content-Type safelisted&quot;, &quot;POST&quot;, &quot;yoyo&quot;, &quot;application/thunderstorm&quot;, true)
</ins><span class="cx">     &lt;/script&gt;
</span><span class="cx">   &lt;/body&gt;
</span><span class="cx"> &lt;/html&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendsyncblocksasynchtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-sync-blocks-async.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-sync-blocks-async.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-sync-blocks-async.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,9 +1,6 @@
</span><span class="cx"> &lt;!DOCTYPE html&gt;
</span><span class="cx"> &lt;html&gt;
</span><span class="cx"> &lt;head&gt;
</span><del>-    &lt;!--  This behaviour is not explicitly spelled out in the spec.
-    It does say &quot;queue tasks&quot; under the &quot;if the synchronous flag is unset&quot; header in point 10 of the &quot;send&quot; algorithm..  --&gt;
-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-send()-method&quot; data-tested-assertations=&quot;following-sibling::ol/li[10]/dl/dd/dl/dd[2]/p[3]&quot; /&gt;
</del><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: sync requests should block events on pending async requests&lt;/title&gt;
</span><span class="lines">@@ -22,34 +19,24 @@
</span><span class="cx">         {
</span><span class="cx">             var xhr_async = new XMLHttpRequest()
</span><span class="cx">             xhr_async.open('GET', 'resources/delay.py?ms=1000', true) // first launch an async request, completes in 1 second
</span><del>-            xhr_async.onreadystatechange = function()
-            {
-                test.step(function()
-                {
-                     actual.push('async ' + xhr_async.readyState)
-                     if(xhr_async.readyState === 4 &amp;&amp; actual.indexOf('sync 4')&gt;-1){
-                        VerifyResult()
-                    }
-
-                });
-            };
</del><ins>+            xhr_async.onreadystatechange = test.step_func(() =&gt; {
+                actual.push('async ' + xhr_async.readyState)
+                if(xhr_async.readyState === 4 &amp;&amp; actual.indexOf('sync 4')&gt;-1){
+                    VerifyResult()
+                }
+            });
</ins><span class="cx">             xhr_async.send()
</span><span class="cx"> 
</span><del>-            setTimeout(function(){
</del><ins>+            test.step_timeout(() =&gt; {
</ins><span class="cx">                 var xhr_sync = new XMLHttpRequest();
</span><span class="cx">                 xhr_sync.open('GET', 'resources/delay.py?ms=2000', false) // here's a sync request that will take 2 seconds to finish
</span><del>-                xhr_sync.onreadystatechange = function()
-                {
-                    test.step(function()
-                    {
-                         actual.push('sync ' + xhr_sync.readyState)
-                         if(xhr_sync.readyState === 4 &amp;&amp; actual.indexOf('async 4')&gt;-1){
-                            VerifyResult()
-                        }
-                    });
-                };
</del><ins>+                xhr_sync.onreadystatechange = test.step_func(() =&gt; {
+                    actual.push('sync ' + xhr_sync.readyState)
+                    if(xhr_sync.readyState === 4 &amp;&amp; actual.indexOf('async 4')&gt;-1){
+                        VerifyResult()
+                    }
+                });
</ins><span class="cx">                 xhr_sync.send()
</span><del>-
</del><span class="cx">             }, 10);
</span><span class="cx"> 
</span><span class="cx">             function VerifyResult()
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendsynctimeouthtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-sync-timeout.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-sync-timeout.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-sync-timeout.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -5,7 +5,6 @@
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-send()-method&quot;/&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#same-origin-request-steps&quot; data-tested-assertations=&quot;following::DL[1]/DT[1]&quot;/&gt;
</del><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="lines">@@ -15,7 +14,7 @@
</span><span class="cx">       test.step(function() {
</span><span class="cx">         client = new XMLHttpRequest()
</span><span class="cx">         client.open(&quot;GET&quot;, &quot;folder.txt&quot;, false)
</span><del>-        setTimeout(function() { test.step(function() { hasrun = true }) }, 0)
</del><ins>+        test.step_timeout(() =&gt; { hasrun = true }, 0)
</ins><span class="cx">         client.onreadystatechange = function() {
</span><span class="cx">           test.step(function() {
</span><span class="cx">             assert_equals(client.readyState, 4)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderallowemptyvalueexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-empty-value-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-empty-value-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-empty-value-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> 
</span><del>-PASS XMLHttpRequest: setRequestHeader() - empty header () 
-PASS XMLHttpRequest: setRequestHeader() - empty header (null) 
-PASS XMLHttpRequest: setRequestHeader() - empty header (undefined) 
</del><ins>+FAIL XMLHttpRequest: setRequestHeader() - empty header () assert_equals: expected &quot;X-Empty: \n&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: setRequestHeader() - empty header (null) assert_equals: expected &quot;X-Empty: null\n&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: setRequestHeader() - empty header (undefined) assert_equals: expected &quot;X-Empty: undefined\n&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderallowemptyvaluehtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-empty-value.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-empty-value.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-empty-value.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: setRequestHeader() - empty header&lt;/title&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot; data-tested-assertations=&quot;/following::ol/li[4]/p[contains(@class,'note')] /following::ol/li[6]&quot; /&gt;
</del><ins>+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot;&gt;
</ins><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="lines">@@ -15,7 +15,7 @@
</span><span class="cx">           client.open(&quot;POST&quot;, &quot;resources/inspect-headers.py?filter_name=X-Empty&quot;, false)
</span><span class="cx">           client.setRequestHeader('X-Empty', value)
</span><span class="cx">           client.send(null)
</span><del>-          assert_equals(client.responseText, 'x-empty: '+ String(value).toLowerCase()+'\n' )
</del><ins>+          assert_equals(client.responseText, 'X-Empty: ' + value + '\n' )
</ins><span class="cx">         }, document.title + &quot; (&quot; + value + &quot;)&quot;)
</span><span class="cx">       }
</span><span class="cx">       request(&quot;&quot;)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderallowwhitespaceinvalueexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-whitespace-in-value-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-whitespace-in-value-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-whitespace-in-value-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> 
</span><del>-PASS XMLHttpRequest: setRequestHeader() - header value with whitespace ( ) 
-PASS XMLHttpRequest: setRequestHeader() - header value with whitespace ( t) 
-PASS XMLHttpRequest: setRequestHeader() - header value with whitespace (t ) 
-PASS XMLHttpRequest: setRequestHeader() - header value with whitespace ( t ) 
</del><ins>+FAIL XMLHttpRequest: setRequestHeader() - header value with whitespace ( ) assert_equals: expected &quot;X-Empty: \n&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: setRequestHeader() - header value with whitespace ( t) assert_equals: expected &quot;X-Empty: t\n&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: setRequestHeader() - header value with whitespace (t ) assert_equals: expected &quot;X-Empty: t\n&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: setRequestHeader() - header value with whitespace ( t ) assert_equals: expected &quot;X-Empty: t\n&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderallowwhitespaceinvaluehtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-whitespace-in-value.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-whitespace-in-value.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-allow-whitespace-in-value.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: setRequestHeader() - header value with whitespace&lt;/title&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot; data-tested-assertations=&quot;/following::ol/li[4]/p[contains(@class,'note')] /following::ol/li[6]&quot; /&gt;
</del><ins>+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot;&gt;
</ins><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="lines">@@ -15,7 +15,7 @@
</span><span class="cx">           client.open(&quot;POST&quot;, &quot;resources/inspect-headers.py?filter_name=X-Empty&quot;, false)
</span><span class="cx">           client.setRequestHeader('X-Empty', value)
</span><span class="cx">           client.send(null)
</span><del>-          assert_equals(client.responseText, 'x-empty: '+ String(value.trim()).toLowerCase()+'\n' )
</del><ins>+          assert_equals(client.responseText, 'X-Empty: ' + value.trim() + '\n' )
</ins><span class="cx">         }, document.title + &quot; (&quot; + value + &quot;)&quot;)
</span><span class="cx">       }
</span><span class="cx">       request(&quot; &quot;)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheadercaseinsensitiveexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-case-insensitive-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-case-insensitive-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-case-insensitive-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-PASS XMLHttpRequest: setRequestHeader() - headers that differ in case 
</del><ins>+FAIL XMLHttpRequest: setRequestHeader() - headers that differ in case assert_equals: expected &quot;x-test,&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheadercaseinsensitivehtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-case-insensitive.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-case-insensitive.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-case-insensitive.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: setRequestHeader() - headers that differ in case&lt;/title&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot; data-tested-assertations=&quot;/following::ol/li[6] /following::ol/li[7]&quot; /&gt;  
</del><ins>+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot;&gt;
</ins><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheadercontenttypehtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: setRequestHeader() - Content-Type header&lt;/title&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot; data-tested-assertations=&quot;/following::ol/li[4]/p[contains(@class,'note')] /following::ol/li[6]&quot; /&gt;
</del><ins>+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot;&gt;
</ins><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="lines">@@ -11,12 +11,8 @@
</span><span class="cx">     &lt;script&gt;
</span><span class="cx">       function request(inputGenerator, headersToSend, expectedType, title) {
</span><span class="cx">         test(function() {
</span><del>-          try {
-            var toSend = inputGenerator();
-          } catch(e) {
-            assert_unreached(&quot;Skipping test as could not create a &quot; + inputGenerator.name.replace(&quot;_&quot;, &quot;&quot;) + &quot;; &quot;);
-          }
-          var client = new XMLHttpRequest()
</del><ins>+          const toSend = inputGenerator(),
+                client = new XMLHttpRequest()
</ins><span class="cx">           client.open(&quot;POST&quot;, &quot;resources/inspect-headers.py?filter_name=Content-Type&quot;, false)
</span><span class="cx">           for(header in headersToSend) {
</span><span class="cx">             if (headersToSend.hasOwnProperty(header)) {
</span><span class="lines">@@ -25,15 +21,13 @@
</span><span class="cx">           }
</span><span class="cx">           client.send(toSend)
</span><span class="cx"> 
</span><del>-          var responseType = client.responseText.replace(&quot;\n&quot;, &quot;&quot;).replace(&quot;; &quot;, &quot;;&quot;).toLowerCase(); // don't care about case or space after semicolon for charset
</del><ins>+          const responseType = client.responseText
</ins><span class="cx">           if (expectedType === undefined || expectedType === null) {
</span><span class="cx">             assert_equals(responseType, &quot;&quot;);
</span><span class="cx">           } else if (expectedType instanceof RegExp) {
</span><del>-            if (!expectedType.ignoreCase) expectedType = new RegExp(expectedType, &quot;i&quot;); // always ignore case; the regex itself will have to remember to handle the optional space after the semicolon for charset
</del><span class="cx">             assert_regexp_match(responseType, expectedType);
</span><span class="cx">           } else {
</span><del>-            expectedType = &quot;content-type: &quot; + String(expectedType ? expectedType.trim().replace(&quot;; &quot;, &quot;;&quot;) : expectedType).toLowerCase()
-            assert_equals(responseType, expectedType);
</del><ins>+            assert_equals(responseType, &quot;Content-Type: &quot; + expectedType + &quot;\n&quot;);
</ins><span class="cx">           }
</span><span class="cx">         }, title)
</span><span class="cx">       }
</span><span class="lines">@@ -46,7 +40,7 @@
</span><span class="cx">       request(
</span><span class="cx">         function _String() { return &quot;&quot;; },
</span><span class="cx">         {&quot;Content-Type&quot;: &quot; &quot;},
</span><del>-        &quot; &quot;,
</del><ins>+        &quot;&quot;,
</ins><span class="cx">         'setRequestHeader(&quot; &quot;) sends the string &quot; &quot;'
</span><span class="cx">       )
</span><span class="cx">       request(
</span><span class="lines">@@ -130,7 +124,7 @@
</span><span class="cx">       request(
</span><span class="cx">         function _Blob() { return new Blob([&quot;&lt;xml/&gt;&quot;], {type : &quot;application/xml;charset=ASCII&quot;}); },
</span><span class="cx">         {},
</span><del>-        &quot;application/xml;charset=ASCII&quot;,
</del><ins>+        &quot;application/xml;charset=ascii&quot;, // new Blob lowercases the type argument
</ins><span class="cx">         &quot;Blob request with set type uses that it for Content-Type unless setRequestHeader()&quot;
</span><span class="cx">       )
</span><span class="cx">       request(
</span><span class="lines">@@ -184,8 +178,8 @@
</span><span class="cx">       request(
</span><span class="cx">         function _FormData() { return new FormData(); },
</span><span class="cx">         {},
</span><del>-        /multipart\/form-data;boundary=(.*)/,
-        'FormData request has correct default Content-Type of &quot;multipart\/form-data;boundary=_&quot;'
</del><ins>+        /multipart\/form-data; boundary=(.*)/,
+        'FormData request has correct default Content-Type of &quot;multipart\/form-data; boundary=_&quot;'
</ins><span class="cx">       )
</span><span class="cx">       request(
</span><span class="cx">         function _FormData() { return new FormData(); },
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderheaderallowedexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-allowed-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-allowed-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-allowed-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -3,13 +3,13 @@
</span><span class="cx"> CONSOLE MESSAGE: line 16: Refused to set unsafe header &quot;Content-Transfer-Encoding&quot;
</span><span class="cx"> CONSOLE MESSAGE: line 17: Refused to set unsafe header &quot;Content-Transfer-Encoding&quot;
</span><span class="cx"> 
</span><del>-PASS XMLHttpRequest: setRequestHeader() - headers that are allowed (Authorization) 
-PASS XMLHttpRequest: setRequestHeader() - headers that are allowed (Pragma) 
-FAIL XMLHttpRequest: setRequestHeader() - headers that are allowed (User-Agent) assert_equals: expected &quot;user-agent,&quot; but got &quot;&quot;
-FAIL XMLHttpRequest: setRequestHeader() - headers that are allowed (Content-Transfer-Encoding) assert_equals: expected &quot;content-transfer-encoding,&quot; but got &quot;&quot;
-PASS XMLHttpRequest: setRequestHeader() - headers that are allowed (Content-Type) 
-PASS XMLHttpRequest: setRequestHeader() - headers that are allowed (Overwrite) 
-PASS XMLHttpRequest: setRequestHeader() - headers that are allowed (If) 
-PASS XMLHttpRequest: setRequestHeader() - headers that are allowed (Status-URI) 
-PASS XMLHttpRequest: setRequestHeader() - headers that are allowed (X-Pink-Unicorn) 
</del><ins>+FAIL XMLHttpRequest: setRequestHeader() - headers that are allowed (Authorization) assert_equals: expected &quot;Authorization,&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: setRequestHeader() - headers that are allowed (Pragma) assert_equals: expected &quot;Pragma,&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: setRequestHeader() - headers that are allowed (User-Agent) assert_equals: expected &quot;User-Agent,&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: setRequestHeader() - headers that are allowed (Content-Transfer-Encoding) assert_equals: expected &quot;Content-Transfer-Encoding,&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: setRequestHeader() - headers that are allowed (Content-Type) assert_equals: expected &quot;Content-Type,&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: setRequestHeader() - headers that are allowed (Overwrite) assert_equals: expected &quot;Overwrite,&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: setRequestHeader() - headers that are allowed (If) assert_equals: expected &quot;If,&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: setRequestHeader() - headers that are allowed (Status-URI) assert_equals: expected &quot;Status-URI,&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
+FAIL XMLHttpRequest: setRequestHeader() - headers that are allowed (X-Pink-Unicorn) assert_equals: expected &quot;X-Pink-Unicorn,&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderheaderallowedhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-allowed.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-allowed.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-allowed.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: setRequestHeader() - headers that are allowed&lt;/title&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot; data-tested-assertations=&quot;/following::ol/li[6] /following::ol/li[7]&quot; /&gt;
</del><ins>+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot;&gt;
</ins><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="lines">@@ -16,7 +16,7 @@
</span><span class="cx">           client.setRequestHeader(header, &quot;t1&quot;)
</span><span class="cx">           client.setRequestHeader(header, &quot;t2&quot;)
</span><span class="cx">           client.send(null)
</span><del>-          assert_equals(client.responseText, header.toLowerCase() + &quot;,&quot;)
</del><ins>+          assert_equals(client.responseText, header + &quot;,&quot;)
</ins><span class="cx">         }, document.title + &quot; (&quot; + header + &quot;)&quot;)
</span><span class="cx">       }
</span><span class="cx">       request(&quot;Authorization&quot;)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderheaderforbiddenexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-forbidden-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-forbidden-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-forbidden-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -16,9 +16,10 @@
</span><span class="cx"> CONSOLE MESSAGE: line 31: Refused to set unsafe header &quot;Upgrade&quot;
</span><span class="cx"> CONSOLE MESSAGE: line 32: Refused to set unsafe header &quot;Via&quot;
</span><span class="cx"> CONSOLE MESSAGE: line 33: Refused to set unsafe header &quot;Proxy-&quot;
</span><del>-CONSOLE MESSAGE: line 34: Refused to set unsafe header &quot;Proxy-Authorization&quot;
-CONSOLE MESSAGE: line 35: Refused to set unsafe header &quot;Sec-&quot;
-CONSOLE MESSAGE: line 36: Refused to set unsafe header &quot;Sec-X&quot;
</del><ins>+CONSOLE MESSAGE: line 34: Refused to set unsafe header &quot;Proxy-LIES&quot;
+CONSOLE MESSAGE: line 35: Refused to set unsafe header &quot;Proxy-Authorization&quot;
+CONSOLE MESSAGE: line 36: Refused to set unsafe header &quot;Sec-&quot;
+CONSOLE MESSAGE: line 37: Refused to set unsafe header &quot;Sec-X&quot;
</ins><span class="cx"> 
</span><del>-PASS XMLHttpRequest: setRequestHeader() - headers that are forbidden 
</del><ins>+FAIL XMLHttpRequest: setRequestHeader() - headers that are forbidden assert_equals: expected &quot;&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderheaderforbiddenhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-forbidden.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-forbidden.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-header-forbidden.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: setRequestHeader() - headers that are forbidden&lt;/title&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot; data-tested-assertations=&quot;/following::ol/li[5]&quot; /&gt;
</del><ins>+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot;&gt;
</ins><span class="cx"> 
</span><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx">         client.setRequestHeader(&quot;Upgrade&quot;, &quot;TEST&quot;)
</span><span class="cx">         client.setRequestHeader(&quot;Via&quot;, &quot;TEST&quot;)
</span><span class="cx">         client.setRequestHeader(&quot;Proxy-&quot;, &quot;TEST&quot;)
</span><ins>+        client.setRequestHeader(&quot;Proxy-LIES&quot;, &quot;TEST&quot;)
</ins><span class="cx">         client.setRequestHeader(&quot;Proxy-Authorization&quot;, &quot;TEST&quot;)
</span><span class="cx">         client.setRequestHeader(&quot;Sec-&quot;, &quot;TEST&quot;)
</span><span class="cx">         client.setRequestHeader(&quot;Sec-X&quot;, &quot;TEST&quot;)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderopensetrequestheaderexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-open-setrequestheader-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-open-setrequestheader-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-open-setrequestheader-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-PASS XMLHttpRequest: setRequestHeader() and open() 
</del><ins>+FAIL XMLHttpRequest: setRequestHeader() and open() assert_equals: Set headers record should have been cleared by open. expected &quot;X-appended-to-this: True\n&quot; but got &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsetrequestheaderopensetrequestheaderhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-open-setrequestheader.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-open-setrequestheader.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-open-setrequestheader.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -6,13 +6,13 @@
</span><span class="cx">   &lt;title&gt;XMLHttpRequest: setRequestHeader() and open()&lt;/title&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-open()-method&quot; data-tested-assertations=&quot;following::OL[1]/LI[14]/ul[1]/li[4]&quot; /&gt;
-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot; data-tested-assertations=&quot;following::OL[1]/LI[6] following::ol[1]/li[7]&quot; /&gt;
</del><ins>+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-open()-method&quot;&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-setrequestheader()-method&quot;&gt;
</ins><span class="cx"> &lt;/head&gt;
</span><span class="cx"> &lt;body&gt;
</span><span class="cx">     &lt;p id=&quot;log&quot;&gt;&lt;/p&gt;
</span><span class="cx"> &lt;script type=&quot;text/javascript&quot;&gt;
</span><del>-var test = async_test();
</del><ins>+async_test(test =&gt; {
</ins><span class="cx"> 
</span><span class="cx"> var url = &quot;resources/inspect-headers.py&quot;;
</span><span class="cx"> 
</span><span class="lines">@@ -22,14 +22,12 @@
</span><span class="cx"> xhr.open(&quot;GET&quot;, url + &quot;?filter_name=x-appended-to-this&quot;);
</span><span class="cx"> xhr.setRequestHeader(&quot;X-appended-to-this&quot;, &quot;True&quot;);
</span><span class="cx"> 
</span><del>-xhr.onreadystatechange = function() {
-    if (this.readyState == 4) {
-        test.step(function (){
-            assert_equals(xhr.responseText, &quot;x-appended-to-this: True\n&quot;, &quot;Set headers record should have been cleared by open.&quot;);
-            test_standard_header();
-        });
</del><ins>+xhr.onreadystatechange = test.step_func(() =&gt; {
+    if (xhr.readyState == 4) {
+        assert_equals(xhr.responseText, &quot;X-appended-to-this: True\n&quot;, &quot;Set headers record should have been cleared by open.&quot;);
+        test_standard_header();
</ins><span class="cx">     }
</span><del>-}
</del><ins>+})
</ins><span class="cx"> 
</span><span class="cx"> xhr.send();
</span><span class="cx"> 
</span><span class="lines">@@ -41,20 +39,15 @@
</span><span class="cx">     xhr.open(&quot;GET&quot;, url + &quot;?filter_name=accept&quot;);
</span><span class="cx">     xhr.setRequestHeader(&quot;Accept&quot;, &quot;bar/foo&quot;);
</span><span class="cx"> 
</span><del>-    xhr.onreadystatechange = function() {
-        if (this.readyState == 4) {
-            test.step(function (){
-                assert_equals(xhr.responseText, &quot;accept: bar/foo\n&quot;, &quot;Set headers record should have been cleared by open.&quot;);
-                test.done();
-            });
</del><ins>+    xhr.onreadystatechange = test.step_func(() =&gt; {
+        if (xhr.readyState == 4) {
+            assert_equals(xhr.responseText, &quot;Accept: bar/foo\n&quot;, &quot;Set headers record should have been cleared by open.&quot;);
+            test.done();
</ins><span class="cx">         }
</span><del>-    }
</del><ins>+    })
</ins><span class="cx"> 
</span><span class="cx">     xhr.send();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-
</del><ins>+})
</ins><span class="cx"> &lt;/script&gt;
</span><del>-&lt;/pre&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequeststatuserrorhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/status-error.htm (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/status-error.htm        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/status-error.htm        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -5,7 +5,7 @@
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#handler-xhr-onerror&quot; data-tested-assertations=&quot;../..&quot; /&gt;
</span><del>-    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-status-attribute&quot; data-tested-assertations=&quot;/following::ol/li[3]&quot; /&gt;  
</del><ins>+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-status-attribute&quot; data-tested-assertations=&quot;/following::ol/li[3]&quot; /&gt;
</ins><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;p&gt;This shouldn't be tested inside a tunnel.&lt;/p&gt;
</span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> 
</span><span class="cx">             if (client.readyState == client.DONE)
</span><span class="cx">               /* Give extra time for a bogus error event to pop up */
</span><del>-              setTimeout(test.step_func(function() { test.done() } ), 100)
</del><ins>+              test.step_timeout(() =&gt; { test.done() }, 100)
</ins><span class="cx">           })
</span><span class="cx">           client.onerror = test.step_func(function() {
</span><span class="cx">             assert_unreached(&quot;HTTP error should not throw error event&quot;)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesttemplateelementexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/template-element-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/template-element-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/template-element-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+
+PASS XMLHttpRequest: template element parsing 
+PASS XMLHttpRequest: template element parsing 1 
+PASS XMLHttpRequest: template element parsing 2 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesttemplateelementhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/template-element.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/template-element.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/template-element.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;XMLHttpRequest: template element parsing&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;script&gt;
+async_test(t =&gt; {
+  const client = new XMLHttpRequest
+  client.open(&quot;GET&quot;, &quot;data:text/xml,&lt;template xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;test/&gt;&lt;/template&gt;&quot;)
+  client.send()
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.responseXML.documentElement.childElementCount, 0)
+    assert_equals(client.responseXML.documentElement.content.firstChild.localName, &quot;test&quot;)
+  })
+})
+
+async_test(t =&gt; {
+  const client = new XMLHttpRequest
+  client.open(&quot;GET&quot;, &quot;data:text/xml,&lt;template&gt;&lt;test/&gt;&lt;/template&gt;&quot;)
+  client.send()
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.responseXML.documentElement.childElementCount, 1)
+    assert_equals(client.responseXML.documentElement.firstChild.localName, &quot;test&quot;)
+  })
+})
+
+async_test(t =&gt; {
+  const client = new XMLHttpRequest
+  client.open(&quot;GET&quot;, &quot;data:text/xml,&lt;template xmlns='http://www.w3.org/2000/svg'&gt;&lt;test/&gt;&lt;/template&gt;&quot;)
+  client.send()
+  client.onload = t.step_func_done(() =&gt; {
+    assert_equals(client.responseXML.documentElement.childElementCount, 1)
+    assert_equals(client.responseXML.documentElement.firstChild.localName, &quot;test&quot;)
+  })
+})
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesttimeoutmultiplefetchesexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/timeout-multiple-fetches-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/timeout-multiple-fetches-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/timeout-multiple-fetches-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+PASS Redirects should not reset the timer 
+PASS CORS preflights should not reset the timer 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesttimeoutmultiplefetcheshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/timeout-multiple-fetches.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/timeout-multiple-fetches.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/timeout-multiple-fetches.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;XMLHttpRequest: timeout, redirects, and CORS preflights&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;script src=/common/get-host-info.sub.js&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;script&gt;
+async_test(t =&gt; {
+  const client = new XMLHttpRequest
+  client.open(&quot;GET&quot;, &quot;resources/redirect.py?delay=500&amp;location=delay.py&quot;) // 500 + 500 = 1000
+  client.timeout = 1000
+  client.send()
+  client.ontimeout = t.step_func_done(() =&gt; {
+    assert_equals(client.readyState, 4)
+  })
+  client.onload = t.unreached_func(&quot;load event fired&quot;)
+}, &quot;Redirects should not reset the timer&quot;)
+
+async_test(t =&gt; {
+  const client = new XMLHttpRequest
+  client.open(&quot;YO&quot;, get_host_info().HTTP_REMOTE_ORIGIN + &quot;/XMLHttpRequest/resources/delay.py&quot;)
+  client.timeout = 1000
+  client.send()
+  client.ontimeout = t.step_func_done(() =&gt; {
+    assert_equals(client.readyState, 4)
+  })
+  client.onload = t.unreached_func(&quot;load event fired&quot;)
+}, &quot;CORS preflights should not reset the timer&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -17,6 +17,7 @@
</span><span class="cx"> List of files:
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/FormData-append.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/OWNERS
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/README.md
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.any.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-receive.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-send.htm
</span><span class="lines">@@ -39,6 +40,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-error.sub.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-load.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadend.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart-upload.htm
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-loadstart.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-progress.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-readystate-sync-open.htm
</span><span class="lines">@@ -54,8 +56,10 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/formdata-has.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/formdata-set.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/formdata.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-cl.htm
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-cookies.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-status.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders.htm
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getresponseheader-case-insensitive.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getresponseheader-chunked-trailer.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/getresponseheader-cookies-and-more.htm
</span><span class="lines">@@ -66,8 +70,11 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/headers-normalize-response.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/historical.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/interfaces.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/loadstart-and-state.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-after-abort.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-after-setrequestheader.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-event.htm
+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-processing.htm
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-method-bogus.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-method-case-insensitive.htm
</span><span class="lines">@@ -77,6 +84,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-open-send.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-open-sync-send.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-referer.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-send-during-abort.htm
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-send-open.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-sync-open-send.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-about-blank-window.htm
</span><span class="lines">@@ -83,7 +91,6 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-base-inserted-after-open.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-base-inserted.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-base.htm
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-bogus.htm
</del><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-encoding.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-fragment.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-javascript-window-2.htm
</span><span class="lines">@@ -94,8 +101,10 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-multi-window-5.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-multi-window-6.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-multi-window.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin.htm
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-worker-simple.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-user-password-non-same-origin.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-blob.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-done-state.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-headers-received-state-force-shiftjis.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-invalid-mime-type.htm
</span><span class="lines">@@ -104,7 +113,6 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-open-state-force-xml.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-unsent-state-force-shiftjis.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/progress-events-response-data-gzip.htm
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/readme.txt
</del><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/response-data-arraybuffer.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/response-data-blob.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/response-data-deflate.htm
</span><span class="lines">@@ -190,7 +198,9 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/status-async.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/status-basic.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/status-error.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/template-element.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/timeout-cors-async.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/timeout-multiple-fetches.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/timeout-sync.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-basic.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-eventtarget.htm
</span><span class="lines">@@ -205,6 +215,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-abortedonmain.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-overrides.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-overridesexpires.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-simple.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-synconmain.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-twice.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestxmlhttprequesttimeoutreusedexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS XHR2 Timeout Property Tests 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestxmlhttprequesttimeoutreusedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+ &lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+    &lt;meta charset=&quot;utf-8&quot; /&gt;
+    &lt;title&gt;XHR2 Timeout Property Tests&lt;/title&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#timeout-error&quot; /&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-timeout-attribute&quot; data-tested-assertations=&quot;following::ol[1]/li[2]&quot; /&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#handler-xhr-ontimeout&quot; data-tested-assertations=&quot;../..&quot;/&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#timeout-error&quot; data-tested-assertations=&quot;..&quot;/&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#request-error&quot; data-tested-assertations=&quot;following::ol[1]/li[9]&quot;/&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method&quot; data-tested-assertations=&quot;following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/.. following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/../following-sibling::dd following::dt[1] following::dd[1]&quot; /&gt;
+    &lt;meta name=timeout content=long&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+    &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+    &lt;script type=&quot;text/javascript&quot;&gt;
+
+function startRequest() {
+    xhr.open(&quot;GET&quot;, &quot;./resources/content.py?content=Hi&quot;, true);
+    xhr.timeout = 2000;
+    setTimeout(function () {
+      xhr.send();
+    }, 1000);
+}
+
+var test = async_test();
+test.step(function()
+{
+    var count = 0;
+    xhr = new XMLHttpRequest();
+    xhr.onload = function () {
+        assert_equals(xhr.response, &quot;Hi&quot;);
+        if (++count == 2) {
+            test.done();
+        }
+    }
+    xhr.ontimeout = function () {
+      assert_unreached(&quot;HTTP error should not timeout&quot;);
+    }
+    startRequest();
+    setTimeout(startRequest, 3500);
+});
+
+    &lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscheck_stabilitypy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/check_stability.py (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/check_stability.py        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/check_stability.py        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> import zipfile
</span><span class="cx"> from abc import ABCMeta, abstractmethod
</span><span class="cx"> from cStringIO import StringIO as CStringIO
</span><del>-from collections import defaultdict
</del><ins>+from collections import defaultdict, OrderedDict
</ins><span class="cx"> from ConfigParser import RawConfigParser
</span><span class="cx"> from io import BytesIO, StringIO
</span><span class="cx"> 
</span><span class="lines">@@ -137,8 +137,8 @@
</span><span class="cx">         count[0] += length
</span><span class="cx"> 
</span><span class="cx">         if count[0] &gt; capacity:
</span><del>-            sys.stdout.disable()
-            sys.stderr.disable()
</del><ins>+            wrapped_stdout.disable()
+            wrapped_stderr.disable()
</ins><span class="cx">             handle.write(msg[0:capacity - count[0]])
</span><span class="cx">             handle.flush()
</span><span class="cx">             stderr.write(&quot;\n%s\n&quot; % warning_msg)
</span><span class="lines">@@ -146,8 +146,10 @@
</span><span class="cx"> 
</span><span class="cx">         return True
</span><span class="cx"> 
</span><del>-    sys.stdout = FilteredIO(sys.stdout, on_write)
-    sys.stderr = FilteredIO(sys.stderr, on_write)
</del><ins>+    # Store local references to the replaced streams to guard against the case
+    # where other code replace the global references.
+    sys.stdout = wrapped_stdout = FilteredIO(sys.stdout, on_write)
+    sys.stderr = wrapped_stderr = FilteredIO(sys.stderr, on_write)
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class Browser(object):
</span><span class="lines">@@ -183,7 +185,11 @@
</span><span class="cx">     def install(self):
</span><span class="cx">         &quot;&quot;&quot;Install Firefox.&quot;&quot;&quot;
</span><span class="cx">         call(&quot;pip&quot;, &quot;install&quot;, &quot;-r&quot;, os.path.join(wptrunner_root, &quot;requirements_firefox.txt&quot;))
</span><del>-        resp = get(&quot;https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-53.0a1.en-US.linux-x86_64.tar.bz2&quot;)
</del><ins>+        index = get(&quot;https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/&quot;)
+        latest = re.compile(&quot;&lt;a[^&gt;]*&gt;(firefox-\d+\.\d(?:\w\d)?.en-US.linux-x86_64\.tar\.bz2)&lt;/a&gt;&quot;)
+        filename = latest.search(index.text).group(1)
+        resp = get(&quot;https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/%s&quot; %
+                   filename)
</ins><span class="cx">         untar(resp.raw)
</span><span class="cx"> 
</span><span class="cx">         if not os.path.exists(&quot;profiles&quot;):
</span><span class="lines">@@ -483,13 +489,44 @@
</span><span class="cx">         Subclasses reader.LogHandler.
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         def __init__(self):
</span><del>-            self.results = defaultdict(lambda: defaultdict(lambda: defaultdict(int)))
</del><ins>+            self.results = OrderedDict()
</ins><span class="cx"> 
</span><ins>+        def find_or_create_test(self, data):
+            test_name = data[&quot;test&quot;]
+            if self.results.get(test_name):
+                return self.results[test_name]
+
+            test = {
+                &quot;subtests&quot;: OrderedDict(),
+                &quot;status&quot;: defaultdict(int)
+            }
+            self.results[test_name] = test
+            return test
+
+        def find_or_create_subtest(self, data):
+            test = self.find_or_create_test(data)
+            subtest_name = data[&quot;subtest&quot;]
+
+            if test[&quot;subtests&quot;].get(subtest_name):
+                return test[&quot;subtests&quot;][subtest_name]
+
+            subtest = {
+                &quot;status&quot;: defaultdict(int),
+                &quot;messages&quot;: set()
+            }
+            test[&quot;subtests&quot;][subtest_name] = subtest
+
+            return subtest
+
</ins><span class="cx">         def test_status(self, data):
</span><del>-            self.results[data[&quot;test&quot;]][data.get(&quot;subtest&quot;)][data[&quot;status&quot;]] += 1
</del><ins>+            subtest = self.find_or_create_subtest(data)
+            subtest[&quot;status&quot;][data[&quot;status&quot;]] += 1
+            if data.get(&quot;message&quot;):
+                subtest[&quot;messages&quot;].add(data[&quot;message&quot;])
</ins><span class="cx"> 
</span><span class="cx">         def test_end(self, data):
</span><del>-            self.results[data[&quot;test&quot;]][None][data[&quot;status&quot;]] += 1
</del><ins>+            test = self.find_or_create_test(data)
+            test[&quot;status&quot;][data[&quot;status&quot;]] += 1
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def is_inconsistent(results_dict, iterations):
</span><span class="lines">@@ -504,10 +541,10 @@
</span><span class="cx">     for key, value in sorted(results_dict.items()):
</span><span class="cx">         rv.append(&quot;%s%s&quot; %
</span><span class="cx">                   (key, &quot;: %s/%s&quot; % (value, iterations) if value != iterations else &quot;&quot;))
</span><del>-    rv = &quot;, &quot;.join(rv)
</del><span class="cx">     if total_results &lt; iterations:
</span><span class="cx">         rv.append(&quot;MISSING: %s/%s&quot; % (iterations - total_results, iterations))
</span><del>-    if len(results_dict) &gt; 1 or total_results != iterations:
</del><ins>+    rv = &quot;, &quot;.join(rv)
+    if is_inconsistent(results_dict, iterations):
</ins><span class="cx">         rv = &quot;**%s**&quot; % rv
</span><span class="cx">     return rv
</span><span class="cx"> 
</span><span class="lines">@@ -518,10 +555,12 @@
</span><span class="cx">     handler = LogHandler()
</span><span class="cx">     reader.handle_log(reader.read(log), handler)
</span><span class="cx">     results = handler.results
</span><del>-    for test, test_results in results.iteritems():
-        for subtest, result in test_results.iteritems():
-            if is_inconsistent(result, iterations):
-                inconsistent.append((test, subtest, result))
</del><ins>+    for test_name, test in results.iteritems():
+        if is_inconsistent(test[&quot;status&quot;], iterations):
+            inconsistent.append((test_name, None, test[&quot;status&quot;], None))
+        for subtest_name, subtest in test[&quot;subtests&quot;].iteritems():
+            if is_inconsistent(subtest[&quot;status&quot;], iterations):
+                inconsistent.append((test_name, subtest_name, subtest[&quot;status&quot;], subtest[&quot;messages&quot;]))
</ins><span class="cx">     return results, inconsistent
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -568,40 +607,56 @@
</span><span class="cx"> def write_inconsistent(inconsistent, iterations):
</span><span class="cx">     &quot;&quot;&quot;Output inconsistent tests to logger.error.&quot;&quot;&quot;
</span><span class="cx">     logger.error(&quot;## Unstable results ##\n&quot;)
</span><del>-    strings = [(&quot;`%s`&quot; % markdown_adjust(test), (&quot;`%s`&quot; % markdown_adjust(subtest)) if subtest else &quot;&quot;, err_string(results, iterations))
-               for test, subtest, results in inconsistent]
-    table([&quot;Test&quot;, &quot;Subtest&quot;, &quot;Results&quot;], strings, logger.error)
</del><ins>+    strings = [(
+        &quot;`%s`&quot; % markdown_adjust(test),
+        (&quot;`%s`&quot; % markdown_adjust(subtest)) if subtest else &quot;&quot;,
+        err_string(results, iterations),
+        (&quot;`%s`&quot; % markdown_adjust(&quot;;&quot;.join(messages))) if len(messages) else &quot;&quot;
+    )
+               for test, subtest, results, messages in inconsistent]
+    table([&quot;Test&quot;, &quot;Subtest&quot;, &quot;Results&quot;, &quot;Messages&quot;], strings, logger.error)
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def write_results(results, iterations, comment_pr):
</span><span class="cx">     &quot;&quot;&quot;Output all test results to logger.info.&quot;&quot;&quot;
</span><ins>+    pr_number = None
+    if comment_pr:
+        try:
+            pr_number = int(comment_pr)
+        except ValueError:
+            pass
</ins><span class="cx">     logger.info(&quot;## All results ##\n&quot;)
</span><del>-    for test, test_results in results.iteritems():
</del><ins>+    if pr_number:
+        logger.info(&quot;&lt;details&gt;\n&quot;)
+        logger.info(&quot;&lt;summary&gt;%i %s ran&lt;/summary&gt;\n\n&quot; % (len(results),
+                                                          &quot;tests&quot; if len(results) &gt; 1
+                                                          else &quot;test&quot;))
+
+    for test_name, test in results.iteritems():
</ins><span class="cx">         baseurl = &quot;http://w3c-test.org/submissions&quot;
</span><del>-        if &quot;https&quot; in os.path.splitext(test)[0].split(&quot;.&quot;)[1:]:
</del><ins>+        if &quot;https&quot; in os.path.splitext(test_name)[0].split(&quot;.&quot;)[1:]:
</ins><span class="cx">             baseurl = &quot;https://w3c-test.org/submissions&quot;
</span><del>-        pr_number = None
-        if comment_pr:
-            try:
-                pr_number = int(comment_pr)
-            except ValueError:
-                pass
</del><span class="cx">         if pr_number:
</span><span class="cx">             logger.info(&quot;&lt;details&gt;\n&quot;)
</span><span class="cx">             logger.info('&lt;summary&gt;&lt;a href=&quot;%s/%s%s&quot;&gt;%s&lt;/a&gt;&lt;/summary&gt;\n\n' %
</span><del>-                        (baseurl, pr_number, test, test))
</del><ins>+                        (baseurl, pr_number, test_name, test_name))
</ins><span class="cx">         else:
</span><del>-            logger.info(&quot;### %s ###&quot; % test)
-        parent = test_results.pop(None)
-        strings = [(&quot;&quot;, err_string(parent, iterations))]
-        strings.extend((((&quot;`%s`&quot; % markdown_adjust(subtest)) if subtest
-                         else &quot;&quot;, err_string(results, iterations))
-                        for subtest, results in test_results.iteritems()))
-        table([&quot;Subtest&quot;, &quot;Results&quot;], strings, logger.info)
</del><ins>+            logger.info(&quot;### %s ###&quot; % test_name)
+        strings = [(&quot;&quot;, err_string(test[&quot;status&quot;], iterations), &quot;&quot;)]
+
+        strings.extend(((
+            (&quot;`%s`&quot; % markdown_adjust(subtest_name)) if subtest else &quot;&quot;,
+            err_string(subtest[&quot;status&quot;], iterations),
+            (&quot;`%s`&quot; % markdown_adjust(';'.join(subtest[&quot;messages&quot;]))) if len(subtest[&quot;messages&quot;]) else &quot;&quot;
+        ) for subtest_name, subtest in test[&quot;subtests&quot;].items()))
+        table([&quot;Subtest&quot;, &quot;Results&quot;, &quot;Messages&quot;], strings, logger.info)
</ins><span class="cx">         if pr_number:
</span><span class="cx">             logger.info(&quot;&lt;/details&gt;\n&quot;)
</span><span class="cx"> 
</span><ins>+    if pr_number:
+        logger.info(&quot;&lt;/details&gt;\n&quot;)
</ins><span class="cx"> 
</span><ins>+
</ins><span class="cx"> def get_parser():
</span><span class="cx">     &quot;&quot;&quot;Create and return script-specific argument parser.&quot;&quot;&quot;
</span><span class="cx">     parser = argparse.ArgumentParser()
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommongethostinfosubjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/get-host-info.sub.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/get-host-info.sub.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/get-host-info.sub.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -5,6 +5,7 @@
</span><span class="cx">   var HTTPS_PORT = '{{ports[https][0]}}';
</span><span class="cx">   var ORIGINAL_HOST = '{{host}}';
</span><span class="cx">   var REMOTE_HOST = (ORIGINAL_HOST === 'localhost') ? '127.0.0.1' : ('www1.' + ORIGINAL_HOST);
</span><ins>+  var OTHER_HOST = '{{domains[www2]}}';
</ins><span class="cx"> 
</span><span class="cx">   return {
</span><span class="cx">     HTTP_PORT: HTTP_PORT,
</span><span class="lines">@@ -21,6 +22,8 @@
</span><span class="cx">     HTTP_REMOTE_ORIGIN_WITH_DIFFERENT_PORT: 'http://' + REMOTE_HOST + ':' + HTTP_PORT2,
</span><span class="cx">     HTTPS_REMOTE_ORIGIN: 'https://' + REMOTE_HOST + ':' + HTTPS_PORT,
</span><span class="cx">     HTTPS_REMOTE_ORIGIN_WITH_CREDS: 'https://foo:bar@' + REMOTE_HOST + ':' + HTTPS_PORT,
</span><ins>+    UNAUTHENTICATED_ORIGIN: 'http://' + OTHER_HOST + ':' + HTTP_PORT,
+    AUTHENTICATED_ORIGIN: 'https://' + OTHER_HOST + ':' + HTTPS_PORT
</ins><span class="cx">   };
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomOWNERS"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/OWNERS (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/OWNERS        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/OWNERS        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,5 +1,4 @@
</span><span class="cx"> @ayg
</span><span class="cx"> @jdm
</span><del>-@Ms2ger
</del><span class="cx"> @zcorpan
</span><span class="cx"> @zqzhang
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomlistsDOMTokenListcoverageforattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -34,41 +34,6 @@
</span><span class="cx"> PASS output.classList in null namespace should be DOMTokenList. 
</span><span class="cx"> PASS td.classList in null namespace should be DOMTokenList. 
</span><span class="cx"> PASS th.classList in null namespace should be DOMTokenList. 
</span><del>-FAIL a.dropzone in http://www.w3.org/1999/xhtml namespace should be DOMTokenList. assert_equals: expected &quot;[object DOMTokenList]&quot; but got &quot;[object Undefined]&quot;
-FAIL area.dropzone in http://www.w3.org/1999/xhtml namespace should be DOMTokenList. assert_equals: expected &quot;[object DOMTokenList]&quot; but got &quot;[object Undefined]&quot;
-FAIL link.dropzone in http://www.w3.org/1999/xhtml namespace should be DOMTokenList. assert_equals: expected &quot;[object DOMTokenList]&quot; but got &quot;[object Undefined]&quot;
-FAIL iframe.dropzone in http://www.w3.org/1999/xhtml namespace should be DOMTokenList. assert_equals: expected &quot;[object DOMTokenList]&quot; but got &quot;[object Undefined]&quot;
-FAIL output.dropzone in http://www.w3.org/1999/xhtml namespace should be DOMTokenList. assert_equals: expected &quot;[object DOMTokenList]&quot; but got &quot;[object Undefined]&quot;
-FAIL td.dropzone in http://www.w3.org/1999/xhtml namespace should be DOMTokenList. assert_equals: expected &quot;[object DOMTokenList]&quot; but got &quot;[object Undefined]&quot;
-FAIL th.dropzone in http://www.w3.org/1999/xhtml namespace should be DOMTokenList. assert_equals: expected &quot;[object DOMTokenList]&quot; but got &quot;[object Undefined]&quot;
-PASS a.dropzone in http://www.w3.org/2000/svg namespace should be undefined. 
-PASS area.dropzone in http://www.w3.org/2000/svg namespace should be undefined. 
-PASS link.dropzone in http://www.w3.org/2000/svg namespace should be undefined. 
-PASS iframe.dropzone in http://www.w3.org/2000/svg namespace should be undefined. 
-PASS output.dropzone in http://www.w3.org/2000/svg namespace should be undefined. 
-PASS td.dropzone in http://www.w3.org/2000/svg namespace should be undefined. 
-PASS th.dropzone in http://www.w3.org/2000/svg namespace should be undefined. 
-PASS a.dropzone in http://www.w3.org/1998/Math/MathML namespace should be undefined. 
-PASS area.dropzone in http://www.w3.org/1998/Math/MathML namespace should be undefined. 
-PASS link.dropzone in http://www.w3.org/1998/Math/MathML namespace should be undefined. 
-PASS iframe.dropzone in http://www.w3.org/1998/Math/MathML namespace should be undefined. 
-PASS output.dropzone in http://www.w3.org/1998/Math/MathML namespace should be undefined. 
-PASS td.dropzone in http://www.w3.org/1998/Math/MathML namespace should be undefined. 
-PASS th.dropzone in http://www.w3.org/1998/Math/MathML namespace should be undefined. 
-PASS a.dropzone in http://example.com/ namespace should be undefined. 
-PASS area.dropzone in http://example.com/ namespace should be undefined. 
-PASS link.dropzone in http://example.com/ namespace should be undefined. 
-PASS iframe.dropzone in http://example.com/ namespace should be undefined. 
-PASS output.dropzone in http://example.com/ namespace should be undefined. 
-PASS td.dropzone in http://example.com/ namespace should be undefined. 
-PASS th.dropzone in http://example.com/ namespace should be undefined. 
-PASS a.dropzone in null namespace should be undefined. 
-PASS area.dropzone in null namespace should be undefined. 
-PASS link.dropzone in null namespace should be undefined. 
-PASS iframe.dropzone in null namespace should be undefined. 
-PASS output.dropzone in null namespace should be undefined. 
-PASS td.dropzone in null namespace should be undefined. 
-PASS th.dropzone in null namespace should be undefined. 
</del><span class="cx"> PASS a.htmlFor in http://www.w3.org/1999/xhtml namespace should be undefined. 
</span><span class="cx"> PASS area.htmlFor in http://www.w3.org/1999/xhtml namespace should be undefined. 
</span><span class="cx"> PASS link.htmlFor in http://www.w3.org/1999/xhtml namespace should be undefined. 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomlistsDOMTokenListcoverageforattributeshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -11,7 +11,6 @@
</span><span class="cx">   // Defined in DOM
</span><span class="cx">   {attr: &quot;classList&quot;, sup: [&quot;anyElement&quot;]},
</span><span class="cx">   // Defined in HTML
</span><del>-  {attr: &quot;dropzone&quot;, sup: [&quot;anyHTMLElement&quot;]},
</del><span class="cx">   {attr: &quot;htmlFor&quot;, sup: [&quot;output&quot;]},
</span><span class="cx">   {attr: &quot;relList&quot;, sup: [&quot;a&quot;, &quot;area&quot;, &quot;link&quot;]},
</span><span class="cx">   {attr: &quot;sandbox&quot;, sup: [&quot;iframe&quot;]},
</span><span class="lines">@@ -27,7 +26,7 @@
</span><span class="cx"> 
</span><span class="cx"> var elements = [&quot;a&quot;, &quot;area&quot;, &quot;link&quot;, &quot;iframe&quot;, &quot;output&quot;, &quot;td&quot;, &quot;th&quot;];
</span><span class="cx"> function testAttr(pair, new_el){
</span><del>-  return (pair.attr === &quot;classList&quot; || (new_el.namespaceURI === &quot;http://www.w3.org/1999/xhtml&quot; &amp;&amp; (pair.attr === &quot;dropzone&quot; || pair.sup.indexOf(new_el.localName) != -1)));
</del><ins>+  return (pair.attr === &quot;classList&quot; || (new_el.namespaceURI === &quot;http://www.w3.org/1999/xhtml&quot; &amp;&amp; pair.sup.indexOf(new_el.localName) != -1));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> pairs.forEach(function(pair) {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementmatchesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,7 +1,9 @@
</span><span class="cx"> This test requires JavaScript.
</span><span class="cx"> 
</span><span class="cx"> PASS Selectors-API Level 2 Test Suite: HTML with Selectors Level 3 
</span><ins>+PASS Document should not support matches 
</ins><span class="cx"> PASS Detached Element supports matches 
</span><ins>+PASS Fragment should not support matches 
</ins><span class="cx"> PASS In-document Element supports matches 
</span><span class="cx"> PASS DIV Element.matches(null) 
</span><span class="cx"> PASS DIV Element.matches(undefined) 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementmatcheshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -38,6 +38,8 @@
</span><span class="cx">    * The level2-lib.js file contains all the common test functions for running each of the aforementioned tests
</span><span class="cx">    */
</span><span class="cx"> 
</span><ins>+  var method = &quot;matches&quot;;
+
</ins><span class="cx">   var docType  = &quot;html&quot;; // Only run tests suitable for HTML
</span><span class="cx"> 
</span><span class="cx">   // Prepare the nodes for testing
</span><span class="lines">@@ -64,24 +66,24 @@
</span><span class="cx">   fragment.appendChild(element.cloneNode(true));
</span><span class="cx"> 
</span><span class="cx">   // Setup Tests
</span><del>-  interfaceCheckMatches(&quot;Document&quot;, doc);
-  interfaceCheckMatches(&quot;Detached Element&quot;, detached);
-  interfaceCheckMatches(&quot;Fragment&quot;, fragment);
-  interfaceCheckMatches(&quot;In-document Element&quot;, element);
</del><ins>+  interfaceCheckMatches(method, &quot;Document&quot;, doc);
+  interfaceCheckMatches(method, &quot;Detached Element&quot;, detached);
+  interfaceCheckMatches(method, &quot;Fragment&quot;, fragment);
+  interfaceCheckMatches(method, &quot;In-document Element&quot;, element);
</ins><span class="cx"> 
</span><del>-  runSpecialMatchesTests(&quot;DIV Element&quot;, element);
-  runSpecialMatchesTests(&quot;NULL Element&quot;, document.createElement(&quot;null&quot;));
-  runSpecialMatchesTests(&quot;UNDEFINED Element&quot;, document.createElement(&quot;undefined&quot;));
</del><ins>+  runSpecialMatchesTests(method, &quot;DIV Element&quot;, element);
+  runSpecialMatchesTests(method, &quot;NULL Element&quot;, document.createElement(&quot;null&quot;));
+  runSpecialMatchesTests(method, &quot;UNDEFINED Element&quot;, document.createElement(&quot;undefined&quot;));
</ins><span class="cx"> 
</span><del>-  runInvalidSelectorTestMatches(&quot;Document&quot;, doc, invalidSelectors);
-  runInvalidSelectorTestMatches(&quot;Detached Element&quot;, detached, invalidSelectors);
-  runInvalidSelectorTestMatches(&quot;Fragment&quot;, fragment, invalidSelectors);
-  runInvalidSelectorTestMatches(&quot;In-document Element&quot;, element, invalidSelectors);
</del><ins>+  runInvalidSelectorTestMatches(method, &quot;Document&quot;, doc, invalidSelectors);
+  runInvalidSelectorTestMatches(method, &quot;Detached Element&quot;, detached, invalidSelectors);
+  runInvalidSelectorTestMatches(method, &quot;Fragment&quot;, fragment, invalidSelectors);
+  runInvalidSelectorTestMatches(method, &quot;In-document Element&quot;, element, invalidSelectors);
</ins><span class="cx"> 
</span><del>-  runMatchesTest(&quot;In-document&quot;, doc, validSelectors, &quot;html&quot;);
-  runMatchesTest(&quot;Detached&quot;, detached, validSelectors, &quot;html&quot;);
-  runMatchesTest(&quot;Fragment&quot;, fragment, validSelectors, &quot;html&quot;);
</del><ins>+  runMatchesTest(method, &quot;In-document&quot;, doc, validSelectors, &quot;html&quot;);
+  runMatchesTest(method, &quot;Detached&quot;, detached, validSelectors, &quot;html&quot;);
+  runMatchesTest(method, &quot;Fragment&quot;, fragment, validSelectors, &quot;html&quot;);
</ins><span class="cx"> 
</span><del>-  runMatchesTest(&quot;In-document&quot;, doc, scopedSelectors, &quot;html&quot;);
</del><ins>+  runMatchesTest(method, &quot;In-document&quot;, doc, scopedSelectors, &quot;html&quot;);
</ins><span class="cx"> }
</span><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementmatchesjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,36 +1,40 @@
</span><span class="cx"> /*
</span><span class="cx">  * Check that the matches() method exists on the given Node
</span><span class="cx">  */
</span><del>-function interfaceCheckMatches(type, obj) {
</del><ins>+function interfaceCheckMatches(method, type, obj) {
</ins><span class="cx">   if (obj.nodeType === obj.ELEMENT_NODE) {
</span><span class="cx">     test(function() {
</span><del>-      assert_idl_attribute(obj, &quot;matches&quot;, type + &quot; supports matches&quot;);
-    }, type + &quot; supports matches&quot;)
</del><ins>+      assert_idl_attribute(obj, method, type + &quot; supports &quot; + method);
+    }, type + &quot; supports &quot; + method)
+  } else {
+    test(function() {
+      assert_false(method in obj, type + &quot; supports &quot; + method);
+    }, type + &quot; should not support &quot; + method)
</ins><span class="cx">   }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function runSpecialMatchesTests(type, element) {
</del><ins>+function runSpecialMatchesTests(method, type, element) {
</ins><span class="cx">   test(function() { // 1
</span><span class="cx">     if (element.tagName.toLowerCase() === &quot;null&quot;) {
</span><del>-      assert_true(element.matches(null), &quot;An element with the tag name '&quot; + element.tagName.toLowerCase() + &quot;' should match.&quot;);
</del><ins>+      assert_true(element[method](null), &quot;An element with the tag name '&quot; + element.tagName.toLowerCase() + &quot;' should match.&quot;);
</ins><span class="cx">     } else {
</span><del>-      assert_false(element.matches(null), &quot;An element with the tag name '&quot; + element.tagName.toLowerCase() + &quot;' should not match.&quot;);
</del><ins>+      assert_false(element[method](null), &quot;An element with the tag name '&quot; + element.tagName.toLowerCase() + &quot;' should not match.&quot;);
</ins><span class="cx">     }
</span><del>-  }, type + &quot;.matches(null)&quot;)
</del><ins>+  }, type + &quot;.&quot; + method + &quot;(null)&quot;)
</ins><span class="cx"> 
</span><span class="cx">   test(function() { // 2
</span><span class="cx">     if (element.tagName.toLowerCase() === &quot;undefined&quot;) {
</span><del>-      assert_true(element.matches(undefined), &quot;An element with the tag name '&quot; + element.tagName.toLowerCase() + &quot;' should match.&quot;);
</del><ins>+      assert_true(element[method](undefined), &quot;An element with the tag name '&quot; + element.tagName.toLowerCase() + &quot;' should match.&quot;);
</ins><span class="cx">     } else {
</span><del>-      assert_false(element.matches(undefined), &quot;An element with the tag name '&quot; + element.tagName.toLowerCase() + &quot;' should not match.&quot;);
</del><ins>+      assert_false(element[method](undefined), &quot;An element with the tag name '&quot; + element.tagName.toLowerCase() + &quot;' should not match.&quot;);
</ins><span class="cx">     }
</span><del>-  }, type + &quot;.matches(undefined)&quot;)
</del><ins>+  }, type + &quot;.&quot; + method + &quot;(undefined)&quot;)
</ins><span class="cx"> 
</span><span class="cx">   test(function() { // 3
</span><span class="cx">     assert_throws(TypeError(), function() {
</span><del>-      element.matches();
</del><ins>+      element[method]();
</ins><span class="cx">     }, &quot;This should throw a TypeError.&quot;)
</span><del>-  }, type + &quot;.matches no parameter&quot;)
</del><ins>+  }, type + &quot;.&quot; + method + &quot; no parameter&quot;)
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /*
</span><span class="lines">@@ -37,7 +41,7 @@
</span><span class="cx">  * Execute queries with the specified invalid selectors for matches()
</span><span class="cx">  * Only run these tests when errors are expected. Don't run for valid selector tests.
</span><span class="cx">  */
</span><del>-function runInvalidSelectorTestMatches(type, root, selectors) {
</del><ins>+function runInvalidSelectorTestMatches(method, type, root, selectors) {
</ins><span class="cx">   if (root.nodeType === root.ELEMENT_NODE) {
</span><span class="cx">     for (var i = 0; i &lt; selectors.length; i++) {
</span><span class="cx">       var s = selectors[i];
</span><span class="lines">@@ -46,14 +50,14 @@
</span><span class="cx"> 
</span><span class="cx">       test(function() {
</span><span class="cx">         assert_throws(&quot;SyntaxError&quot;, function() {
</span><del>-          root.matches(q)
</del><ins>+          root[method](q)
</ins><span class="cx">         })
</span><del>-      }, type + &quot;.matches: &quot; + n + &quot;: &quot; + q);
</del><ins>+      }, type + &quot;.&quot; + method + &quot;: &quot; + n + &quot;: &quot; + q);
</ins><span class="cx">     }
</span><span class="cx">   }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function runMatchesTest(type, root, selectors, docType) {
</del><ins>+function runMatchesTest(method, type, root, selectors, docType) {
</ins><span class="cx">   var nodeType = getNodeType(root);
</span><span class="cx"> 
</span><span class="cx">   for (var i = 0; i &lt; selectors.length; i++) {
</span><span class="lines">@@ -75,7 +79,7 @@
</span><span class="cx">           for (j = 0; j &lt; e.length; j++) {
</span><span class="cx">             element = root.querySelector(&quot;#&quot; + e[j]);
</span><span class="cx">             refNode = root.querySelector(ctx);
</span><del>-            assert_true(element.matches(q, refNode), &quot;The element #&quot; + e[j] + &quot; should match the selector.&quot;)
</del><ins>+            assert_true(element[method](q, refNode), &quot;The element #&quot; + e[j] + &quot; should match the selector.&quot;)
</ins><span class="cx">           }
</span><span class="cx"> 
</span><span class="cx">           if (u) {
</span><span class="lines">@@ -82,10 +86,10 @@
</span><span class="cx">             for (j = 0; j &lt; u.length; j++) {
</span><span class="cx">               element = root.querySelector(&quot;#&quot; + u[j]);
</span><span class="cx">               refNode = root.querySelector(ctx);
</span><del>-              assert_false(element.matches(q, refNode), &quot;The element #&quot; + u[j] + &quot; should not match the selector.&quot;)
</del><ins>+              assert_false(element[method](q, refNode), &quot;The element #&quot; + u[j] + &quot; should not match the selector.&quot;)
</ins><span class="cx">             }
</span><span class="cx">           }
</span><del>-        }, type + &quot; Element.matches: &quot; + n + &quot; (with refNode Element): &quot; + q);
</del><ins>+        }, type + &quot; Element.&quot; + method + &quot;: &quot; + n + &quot; (with refNode Element): &quot; + q);
</ins><span class="cx">       }
</span><span class="cx"> 
</span><span class="cx">       if (ref) {
</span><span class="lines">@@ -94,7 +98,7 @@
</span><span class="cx">           for (j = 0; j &lt; e.length; j++) {
</span><span class="cx">             element = root.querySelector(&quot;#&quot; + e[j]);
</span><span class="cx">             refNodes = root.querySelectorAll(ref);
</span><del>-            assert_true(element.matches(q, refNodes), &quot;The element #&quot; + e[j] + &quot; should match the selector.&quot;)
</del><ins>+            assert_true(element[method](q, refNodes), &quot;The element #&quot; + e[j] + &quot; should match the selector.&quot;)
</ins><span class="cx">           }
</span><span class="cx"> 
</span><span class="cx">           if (u) {
</span><span class="lines">@@ -101,10 +105,10 @@
</span><span class="cx">             for (j = 0; j &lt; u.length; j++) {
</span><span class="cx">               element = root.querySelector(&quot;#&quot; + u[j]);
</span><span class="cx">               refNodes = root.querySelectorAll(ref);
</span><del>-              assert_false(element.matches(q, refNodes), &quot;The element #&quot; + u[j] + &quot; should not match the selector.&quot;)
</del><ins>+              assert_false(element[method](q, refNodes), &quot;The element #&quot; + u[j] + &quot; should not match the selector.&quot;)
</ins><span class="cx">             }
</span><span class="cx">           }
</span><del>-        }, type + &quot; Element.matches: &quot; + n + &quot; (with refNodes NodeList): &quot; + q);
</del><ins>+        }, type + &quot; Element.&quot; + method + &quot;: &quot; + n + &quot; (with refNodes NodeList): &quot; + q);
</ins><span class="cx">       }
</span><span class="cx"> 
</span><span class="cx">       if (!ctx &amp;&amp; !ref) {
</span><span class="lines">@@ -111,16 +115,16 @@
</span><span class="cx">         test(function() {
</span><span class="cx">           for (var j = 0; j &lt; e.length; j++) {
</span><span class="cx">             var element = root.querySelector(&quot;#&quot; + e[j]);
</span><del>-            assert_true(element.matches(q), &quot;The element #&quot; + e[j] + &quot; should match the selector.&quot;)
</del><ins>+            assert_true(element[method](q), &quot;The element #&quot; + e[j] + &quot; should match the selector.&quot;)
</ins><span class="cx">           }
</span><span class="cx"> 
</span><span class="cx">           if (u) {
</span><span class="cx">             for (j = 0; j &lt; u.length; j++) {
</span><span class="cx">               element = root.querySelector(&quot;#&quot; + u[j]);
</span><del>-              assert_false(element.matches(q), &quot;The element #&quot; + u[j] + &quot; should not match the selector.&quot;)
</del><ins>+              assert_false(element[method](q), &quot;The element #&quot; + u[j] + &quot; should not match the selector.&quot;)
</ins><span class="cx">             }
</span><span class="cx">           }
</span><del>-        }, type + &quot; Element.matches: &quot; + n + &quot; (with no refNodes): &quot; + q);
</del><ins>+        }, type + &quot; Element.&quot; + method + &quot;: &quot; + n + &quot; (with no refNodes): &quot; + q);
</ins><span class="cx">       }
</span><span class="cx">     }
</span><span class="cx">   }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementwebkitMatchesSelectorexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,739 @@
</span><ins>+This test requires JavaScript.
+
+PASS Selectors-API Level 2 Test Suite: HTML with Selectors Level 3 
+PASS Document should not support webkitMatchesSelector 
+PASS Detached Element supports webkitMatchesSelector 
+PASS Fragment should not support webkitMatchesSelector 
+PASS In-document Element supports webkitMatchesSelector 
+PASS DIV Element.webkitMatchesSelector(null) 
+PASS DIV Element.webkitMatchesSelector(undefined) 
+PASS DIV Element.webkitMatchesSelector no parameter 
+PASS NULL Element.webkitMatchesSelector(null) 
+PASS NULL Element.webkitMatchesSelector(undefined) 
+PASS NULL Element.webkitMatchesSelector no parameter 
+PASS UNDEFINED Element.webkitMatchesSelector(null) 
+PASS UNDEFINED Element.webkitMatchesSelector(undefined) 
+PASS UNDEFINED Element.webkitMatchesSelector no parameter 
+PASS Detached Element.webkitMatchesSelector: Empty String:  
+PASS Detached Element.webkitMatchesSelector: Invalid character: [ 
+PASS Detached Element.webkitMatchesSelector: Invalid character: ] 
+PASS Detached Element.webkitMatchesSelector: Invalid character: ( 
+PASS Detached Element.webkitMatchesSelector: Invalid character: ) 
+PASS Detached Element.webkitMatchesSelector: Invalid character: { 
+PASS Detached Element.webkitMatchesSelector: Invalid character: } 
+PASS Detached Element.webkitMatchesSelector: Invalid character: &lt; 
+PASS Detached Element.webkitMatchesSelector: Invalid character: &gt; 
+PASS Detached Element.webkitMatchesSelector: Invalid ID: # 
+PASS Detached Element.webkitMatchesSelector: Invalid group of selectors: div, 
+PASS Detached Element.webkitMatchesSelector: Invalid class: . 
+PASS Detached Element.webkitMatchesSelector: Invalid class: .5cm 
+PASS Detached Element.webkitMatchesSelector: Invalid class: ..test 
+PASS Detached Element.webkitMatchesSelector: Invalid class: .foo..quux 
+PASS Detached Element.webkitMatchesSelector: Invalid class: .bar. 
+PASS Detached Element.webkitMatchesSelector: Invalid combinator: div &amp; address, p 
+PASS Detached Element.webkitMatchesSelector: Invalid combinator: div ++ address, p 
+PASS Detached Element.webkitMatchesSelector: Invalid combinator: div ~~ address, p 
+PASS Detached Element.webkitMatchesSelector: Invalid [att=value] selector: [*=test] 
+PASS Detached Element.webkitMatchesSelector: Invalid [att=value] selector: [*|*=test] 
+PASS Detached Element.webkitMatchesSelector: Invalid [att=value] selector: [class= space unquoted ] 
+PASS Detached Element.webkitMatchesSelector: Unknown pseudo-class: div:example 
+PASS Detached Element.webkitMatchesSelector: Unknown pseudo-class: :example 
+PASS Detached Element.webkitMatchesSelector: Unknown pseudo-element: div::example 
+PASS Detached Element.webkitMatchesSelector: Unknown pseudo-element: ::example 
+PASS Detached Element.webkitMatchesSelector: Invalid pseudo-element: :::before 
+PASS Detached Element.webkitMatchesSelector: Undeclared namespace: ns|div 
+PASS Detached Element.webkitMatchesSelector: Undeclared namespace: :not(ns|div) 
+PASS Detached Element.webkitMatchesSelector: Invalid namespace: ^|div 
+PASS Detached Element.webkitMatchesSelector: Invalid namespace: $|div 
+PASS In-document Element.webkitMatchesSelector: Empty String:  
+PASS In-document Element.webkitMatchesSelector: Invalid character: [ 
+PASS In-document Element.webkitMatchesSelector: Invalid character: ] 
+PASS In-document Element.webkitMatchesSelector: Invalid character: ( 
+PASS In-document Element.webkitMatchesSelector: Invalid character: ) 
+PASS In-document Element.webkitMatchesSelector: Invalid character: { 
+PASS In-document Element.webkitMatchesSelector: Invalid character: } 
+PASS In-document Element.webkitMatchesSelector: Invalid character: &lt; 
+PASS In-document Element.webkitMatchesSelector: Invalid character: &gt; 
+PASS In-document Element.webkitMatchesSelector: Invalid ID: # 
+PASS In-document Element.webkitMatchesSelector: Invalid group of selectors: div, 
+PASS In-document Element.webkitMatchesSelector: Invalid class: . 
+PASS In-document Element.webkitMatchesSelector: Invalid class: .5cm 
+PASS In-document Element.webkitMatchesSelector: Invalid class: ..test 
+PASS In-document Element.webkitMatchesSelector: Invalid class: .foo..quux 
+PASS In-document Element.webkitMatchesSelector: Invalid class: .bar. 
+PASS In-document Element.webkitMatchesSelector: Invalid combinator: div &amp; address, p 
+PASS In-document Element.webkitMatchesSelector: Invalid combinator: div ++ address, p 
+PASS In-document Element.webkitMatchesSelector: Invalid combinator: div ~~ address, p 
+PASS In-document Element.webkitMatchesSelector: Invalid [att=value] selector: [*=test] 
+PASS In-document Element.webkitMatchesSelector: Invalid [att=value] selector: [*|*=test] 
+PASS In-document Element.webkitMatchesSelector: Invalid [att=value] selector: [class= space unquoted ] 
+PASS In-document Element.webkitMatchesSelector: Unknown pseudo-class: div:example 
+PASS In-document Element.webkitMatchesSelector: Unknown pseudo-class: :example 
+PASS In-document Element.webkitMatchesSelector: Unknown pseudo-element: div::example 
+PASS In-document Element.webkitMatchesSelector: Unknown pseudo-element: ::example 
+PASS In-document Element.webkitMatchesSelector: Invalid pseudo-element: :::before 
+PASS In-document Element.webkitMatchesSelector: Undeclared namespace: ns|div 
+PASS In-document Element.webkitMatchesSelector: Undeclared namespace: :not(ns|div) 
+PASS In-document Element.webkitMatchesSelector: Invalid namespace: ^|div 
+PASS In-document Element.webkitMatchesSelector: Invalid namespace: $|div 
+PASS In-document Element.webkitMatchesSelector: Type selector, matching html element (with no refNodes): html 
+PASS In-document Element.webkitMatchesSelector: Type selector, matching body element (with no refNodes): body 
+PASS In-document Element.webkitMatchesSelector: Universal selector, matching all children of element with specified ID (with no refNodes): #universal&gt;* 
+PASS In-document Element.webkitMatchesSelector: Universal selector, matching all grandchildren of element with specified ID (with no refNodes): #universal&gt;*&gt;* 
+PASS In-document Element.webkitMatchesSelector: Universal selector, matching all descendants of element with specified ID (with no refNodes): #universal * 
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with value (with no refNodes): .attr-presence-div1[align] 
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with empty value (with no refNodes): .attr-presence-div2[align] 
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching title attribute, case insensitivity (with no refNodes): #attr-presence [TiTlE] 
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching custom data-* attribute (with no refNodes): [data-attr-presence] 
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching attribute with non-ASCII characters (with no refNodes): ul[data-中文] 
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching option with selected attribute (with no refNodes): #attr-presence-select2 option[selected] 
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align=&quot;center&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=&quot;&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value=&quot;\e9&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-value_foo=&quot;\e9&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type='hidden'],#attr-value input[type='radio'] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type=&quot;hidden&quot;],#attr-value input[type='radio'] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type=hidden],#attr-value input[type=radio] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching attribute with value using non-ASCII characters (with no refNodes): [data-attr-value=中文] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching class attribute with value (with no refNodes): #attr-whitespace [class~=&quot;div1&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-whitespace~=&quot;\0000e9&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-whitespace_foo~=&quot;\e9&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~='bookmark'],  #attr-whitespace a[rel~='nofollow'] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~=&quot;bookmark&quot;],#attr-whitespace a[rel~='nofollow'] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~=bookmark],    #attr-whitespace a[rel~=nofollow] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with no refNodes): #attr-whitespace [title~=中文] 
+PASS In-document Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with exact value (with no refNodes): #attr-hyphen-div2[lang|=&quot;fr&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with partial value (with no refNodes): #attr-hyphen-div3[lang|=&quot;en&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute begins with selector, matching href attributes beginning with specified substring (with no refNodes): #attr-begins a[href^=&quot;http://www&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute begins with selector, matching lang attributes beginning with specified substring,  (with no refNodes): #attr-begins [lang^=&quot;en-&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=' apple'] 
+PASS In-document Element.webkitMatchesSelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=&quot; apple&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute ends with selector, matching href attributes ending with specified substring (with no refNodes): #attr-ends a[href$=&quot;.org&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute ends with selector, matching lang attributes ending with specified substring,  (with no refNodes): #attr-ends [lang$=&quot;-CH&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$='apple '] 
+PASS In-document Element.webkitMatchesSelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$=&quot;apple &quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching href attributes beginning with specified substring (with no refNodes): #attr-contains a[href*=&quot;http://www&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching href attributes ending with specified substring (with no refNodes): #attr-contains a[href*=&quot;.org&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching href attributes containing specified substring (with no refNodes): #attr-contains a[href*=&quot;.example.&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes beginning with specified substring,  (with no refNodes): #attr-contains [lang*=&quot;en-&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes ending with specified substring,  (with no refNodes): #attr-contains [lang*=&quot;-CH&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=' apple'] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*='orange '] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*='ple banana ora'] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=&quot; apple&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=&quot;orange &quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*=&quot;ple banana ora&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*= apple] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=orange ] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*= banana ] 
+PASS In-document Element.webkitMatchesSelector: :root pseudo-class selector, matching document root element (with no refNodes): :root 
+PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching the third child element (with no refNodes): #pseudo-nth-table1 :nth-child(3) 
+PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every third child element (with no refNodes): #pseudo-nth li:nth-child(3n) 
+PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every second child element, starting from the fourth (with no refNodes): #pseudo-nth li:nth-child(2n+4) 
+PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every fourth child element, starting from the third (with no refNodes): #pseudo-nth-p1 :nth-child(4n-1) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-child selector, matching the third last child element (with no refNodes): #pseudo-nth-table1 :nth-last-child(3) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-child selector, matching every third child element from the end (with no refNodes): #pseudo-nth li:nth-last-child(3n) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last (with no refNodes): #pseudo-nth li:nth-last-child(2n+4) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last (with no refNodes): #pseudo-nth-p1 :nth-last-child(4n-1) 
+PASS In-document Element.webkitMatchesSelector: :nth-of-type selector, matching the third em element (with no refNodes): #pseudo-nth-p1 em:nth-of-type(3) 
+PASS In-document Element.webkitMatchesSelector: :nth-of-type selector, matching every second element of their type (with no refNodes): #pseudo-nth-p1 :nth-of-type(2n) 
+PASS In-document Element.webkitMatchesSelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first (with no refNodes): #pseudo-nth-p1 span:nth-of-type(2n-1) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-of-type selector, matching the thrid last em element (with no refNodes): #pseudo-nth-p1 em:nth-last-of-type(3) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-of-type selector, matching every second last element of their type (with no refNodes): #pseudo-nth-p1 :nth-last-of-type(2n) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last (with no refNodes): #pseudo-nth-p1 span:nth-last-of-type(2n-1) 
+PASS In-document Element.webkitMatchesSelector: :first-of-type selector, matching the first em element (with no refNodes): #pseudo-nth-p1 em:first-of-type 
+PASS In-document Element.webkitMatchesSelector: :first-of-type selector, matching the first of every type of element (with no refNodes): #pseudo-nth-p1 :first-of-type 
+PASS In-document Element.webkitMatchesSelector: :first-of-type selector, matching the first td element in each table row (with no refNodes): #pseudo-nth-table1 tr :first-of-type 
+PASS In-document Element.webkitMatchesSelector: :last-of-type selector, matching the last em elemnet (with no refNodes): #pseudo-nth-p1 em:last-of-type 
+PASS In-document Element.webkitMatchesSelector: :last-of-type selector, matching the last of every type of element (with no refNodes): #pseudo-nth-p1 :last-of-type 
+PASS In-document Element.webkitMatchesSelector: :last-of-type selector, matching the last td element in each table row (with no refNodes): #pseudo-nth-table1 tr :last-of-type 
+PASS In-document Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first child div element (with no refNodes): #pseudo-first-child div:first-child 
+PASS In-document Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-first-child span:first-child 
+PASS In-document Element.webkitMatchesSelector: :last-child pseudo-class selector, matching last child div element (with no refNodes): #pseudo-last-child div:last-child 
+PASS In-document Element.webkitMatchesSelector: :last-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-last-child span:last-child 
+PASS In-document Element.webkitMatchesSelector: :pseudo-only-child pseudo-class selector, matching all only-child elements (with no refNodes): #pseudo-only :only-child 
+PASS In-document Element.webkitMatchesSelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type (with no refNodes): #pseudo-only :only-of-type 
+PASS In-document Element.webkitMatchesSelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type (with no refNodes): #pseudo-only em:only-of-type 
+PASS In-document Element.webkitMatchesSelector: :empty pseudo-class selector, matching empty p elements (with no refNodes): #pseudo-empty p:empty 
+PASS In-document Element.webkitMatchesSelector: :empty pseudo-class selector, matching all empty elements (with no refNodes): #pseudo-empty :empty 
+PASS In-document Element.webkitMatchesSelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes (with no refNodes): #pseudo-link :link, #pseudo-link :visited 
+PASS In-document Element.webkitMatchesSelector: :link and :visited pseudo-class selectors, matching link elements with href attributes (with no refNodes): #head :link, #head :visited 
+PASS In-document Element.webkitMatchesSelector: :target pseudo-class selector, matching the element referenced by the URL fragment identifier (with no refNodes): :target 
+PASS In-document Element.webkitMatchesSelector: :lang pseudo-class selector, matching inherited language (with no refNodes): #pseudo-lang-div1:lang(en) 
+PASS In-document Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr) 
+PASS In-document Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en) 
+PASS In-document Element.webkitMatchesSelector: :enabled pseudo-class selector, matching all enabled form controls (with no refNodes): #pseudo-ui :enabled 
+PASS In-document Element.webkitMatchesSelector: :enabled pseudo-class selector, matching all disabled form controls (with no refNodes): #pseudo-ui :disabled 
+PASS In-document Element.webkitMatchesSelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes (with no refNodes): #pseudo-ui :checked 
+PASS In-document Element.webkitMatchesSelector: :not pseudo-class selector, matching  (with no refNodes): #not&gt;:not(div) 
+PASS In-document Element.webkitMatchesSelector: :not pseudo-class selector, matching  (with no refNodes): #not * :not(:first-child) 
+PASS In-document Element.webkitMatchesSelector: Class selector, matching element with specified class (with no refNodes): .class-p 
+PASS In-document Element.webkitMatchesSelector: Class selector, chained, matching only elements with all specified classes (with no refNodes): #class .apple.orange.banana 
+PASS In-document Element.webkitMatchesSelector: Class Selector, chained, with type selector (with no refNodes): div.apple.banana.orange 
+PASS In-document Element.webkitMatchesSelector: Class selector, matching element with class value using non-ASCII characters (1) (with no refNodes): .台北Táiběi 
+PASS In-document Element.webkitMatchesSelector: Class selector, matching multiple elements with class value using non-ASCII characters (with no refNodes): .台北 
+PASS In-document Element.webkitMatchesSelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1) (with no refNodes): .台北Táiběi.台北 
+PASS In-document Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (with no refNodes): .foo\:bar 
+PASS In-document Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (with no refNodes): .test\.foo\[5\]bar 
+PASS In-document Element.webkitMatchesSelector: ID selector, matching element with specified id (with no refNodes): #id #id-div1 
+PASS In-document Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div1 
+PASS In-document Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div2 
+PASS In-document Element.webkitMatchesSelector: ID Selector, chained, with type selector (with no refNodes): div#id-div1, div#id-div2 
+PASS In-document Element.webkitMatchesSelector: ID selector, matching multiple elements with duplicate id (with no refNodes): #id-li-duplicate 
+PASS In-document Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (1) (with no refNodes): #台北Táiběi 
+PASS In-document Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (2) (with no refNodes): #台北 
+PASS In-document Element.webkitMatchesSelector: ID selector, matching id values using non-ASCII characters (1) (with no refNodes): #台北Táiběi, #台北 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element that is a descendant of an element with id (with no refNodes): #descendant div 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): body #descendant-div1 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): div #descendant-div1 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element with id (with no refNodes): #descendant #descendant-div2 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with id (with no refNodes): #descendant .descendant-div2 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1 .descendant-div3 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, whitespace characters (with no refNodes): #descendant        \r
+#descendant-div2 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element that is a descendant of an element with id (with no refNodes): #descendant&gt;&gt;div 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with id that is a descendant of an element (with no refNodes): body&gt;&gt;#descendant-div1 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with id that is a descendant of an element (with no refNodes): div&gt;&gt;#descendant-div1 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with id that is a descendant of an element with id (with no refNodes): #descendant&gt;&gt;#descendant-div2 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with class that is a descendant of an element with id (with no refNodes): #descendant&gt;&gt;.descendant-div2 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1&gt;&gt;.descendant-div3 
+PASS In-document Element.webkitMatchesSelector: Child combinator, matching element that is a child of an element with id (with no refNodes): #child&gt;div 
+PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element (with no refNodes): div&gt;#child-div1 
+PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with id (with no refNodes): #child&gt;#child-div1 
+PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with class (with no refNodes): #child-div1&gt;.child-div2 
+PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with class that is a child of an element with class (with no refNodes): .child-div1&gt;.child-div2 
+PASS In-document Element.webkitMatchesSelector: Child combinator, surrounded by whitespace (with no refNodes): #child-div1        \r
+&gt;        \r
+#child-div2 
+PASS In-document Element.webkitMatchesSelector: Child combinator, whitespace after (with no refNodes): #child-div1&gt;        \r
+#child-div2 
+PASS In-document Element.webkitMatchesSelector: Child combinator, whitespace before (with no refNodes): #child-div1        \r
+&gt;#child-div2 
+PASS In-document Element.webkitMatchesSelector: Child combinator, no whitespace (with no refNodes): #child-div1&gt;#child-div2 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+div 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (with no refNodes): div+#adjacent-div4 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+#adjacent-div4 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+.adjacent-div4 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class (with no refNodes): .adjacent-div2+.adjacent-div4 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (with no refNodes): #adjacent div+p 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, surrounded by whitespace (with no refNodes): #adjacent-p2        \r
++        \r
+#adjacent-p3 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace after (with no refNodes): #adjacent-p2+        \r
+#adjacent-p3 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace before (with no refNodes): #adjacent-p2        \r
++#adjacent-p3 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, no whitespace (with no refNodes): #adjacent-p2+#adjacent-p3 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element that is a sibling of an element with id (with no refNodes): #sibling-div2~div 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element (with no refNodes): div~#sibling-div4 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element with id (with no refNodes): #sibling-div2~#sibling-div4 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element with class that is a sibling of an element with id (with no refNodes): #sibling-div2~.sibling-div 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching p element that is a sibling of a div element (with no refNodes): #sibling div~p 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, surrounded by whitespace (with no refNodes): #sibling-p2        \r
+~        \r
+#sibling-p3 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, whitespace after (with no refNodes): #sibling-p2~        \r
+#sibling-p3 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, whitespace before (with no refNodes): #sibling-p2        \r
+~#sibling-p3 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, no whitespace (with no refNodes): #sibling-p2~#sibling-p3 
+PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, surrounded by whitespace (with no refNodes): #group em        \r 
+,        \r 
+#group strong 
+PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace after (with no refNodes): #group em,        \r
+#group strong 
+PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace before (with no refNodes): #group em        \r
+,#group strong 
+PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, no whitespace (with no refNodes): #group em,#group strong 
+PASS Detached Element.webkitMatchesSelector: Universal selector, matching all children of element with specified ID (with no refNodes): #universal&gt;* 
+PASS Detached Element.webkitMatchesSelector: Universal selector, matching all grandchildren of element with specified ID (with no refNodes): #universal&gt;*&gt;* 
+PASS Detached Element.webkitMatchesSelector: Universal selector, matching all descendants of element with specified ID (with no refNodes): #universal * 
+PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with value (with no refNodes): .attr-presence-div1[align] 
+PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with empty value (with no refNodes): .attr-presence-div2[align] 
+PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching title attribute, case insensitivity (with no refNodes): #attr-presence [TiTlE] 
+PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching custom data-* attribute (with no refNodes): [data-attr-presence] 
+PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching attribute with non-ASCII characters (with no refNodes): ul[data-中文] 
+PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching option with selected attribute (with no refNodes): #attr-presence-select2 option[selected] 
+PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected] 
+PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align=&quot;center&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=&quot;&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value=&quot;\e9&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-value_foo=&quot;\e9&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type='hidden'],#attr-value input[type='radio'] 
+PASS Detached Element.webkitMatchesSelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type=&quot;hidden&quot;],#attr-value input[type='radio'] 
+PASS Detached Element.webkitMatchesSelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type=hidden],#attr-value input[type=radio] 
+PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching attribute with value using non-ASCII characters (with no refNodes): [data-attr-value=中文] 
+PASS Detached Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching class attribute with value (with no refNodes): #attr-whitespace [class~=&quot;div1&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-whitespace~=&quot;\0000e9&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-whitespace_foo~=&quot;\e9&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~='bookmark'],  #attr-whitespace a[rel~='nofollow'] 
+PASS Detached Element.webkitMatchesSelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~=&quot;bookmark&quot;],#attr-whitespace a[rel~='nofollow'] 
+PASS Detached Element.webkitMatchesSelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~=bookmark],    #attr-whitespace a[rel~=nofollow] 
+PASS Detached Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with no refNodes): #attr-whitespace [title~=中文] 
+PASS Detached Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with exact value (with no refNodes): #attr-hyphen-div2[lang|=&quot;fr&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with partial value (with no refNodes): #attr-hyphen-div3[lang|=&quot;en&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute begins with selector, matching href attributes beginning with specified substring (with no refNodes): #attr-begins a[href^=&quot;http://www&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute begins with selector, matching lang attributes beginning with specified substring,  (with no refNodes): #attr-begins [lang^=&quot;en-&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=' apple'] 
+PASS Detached Element.webkitMatchesSelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=&quot; apple&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute ends with selector, matching href attributes ending with specified substring (with no refNodes): #attr-ends a[href$=&quot;.org&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute ends with selector, matching lang attributes ending with specified substring,  (with no refNodes): #attr-ends [lang$=&quot;-CH&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$='apple '] 
+PASS Detached Element.webkitMatchesSelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$=&quot;apple &quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector, matching href attributes beginning with specified substring (with no refNodes): #attr-contains a[href*=&quot;http://www&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector, matching href attributes ending with specified substring (with no refNodes): #attr-contains a[href*=&quot;.org&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector, matching href attributes containing specified substring (with no refNodes): #attr-contains a[href*=&quot;.example.&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes beginning with specified substring,  (with no refNodes): #attr-contains [lang*=&quot;en-&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes ending with specified substring,  (with no refNodes): #attr-contains [lang*=&quot;-CH&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=' apple'] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*='orange '] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*='ple banana ora'] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=&quot; apple&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=&quot;orange &quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*=&quot;ple banana ora&quot;] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*= apple] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=orange ] 
+PASS Detached Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*= banana ] 
+PASS Detached Element.webkitMatchesSelector: :nth-child selector, matching the third child element (with no refNodes): #pseudo-nth-table1 :nth-child(3) 
+PASS Detached Element.webkitMatchesSelector: :nth-child selector, matching every third child element (with no refNodes): #pseudo-nth li:nth-child(3n) 
+PASS Detached Element.webkitMatchesSelector: :nth-child selector, matching every second child element, starting from the fourth (with no refNodes): #pseudo-nth li:nth-child(2n+4) 
+PASS Detached Element.webkitMatchesSelector: :nth-child selector, matching every fourth child element, starting from the third (with no refNodes): #pseudo-nth-p1 :nth-child(4n-1) 
+PASS Detached Element.webkitMatchesSelector: :nth-last-child selector, matching the third last child element (with no refNodes): #pseudo-nth-table1 :nth-last-child(3) 
+PASS Detached Element.webkitMatchesSelector: :nth-last-child selector, matching every third child element from the end (with no refNodes): #pseudo-nth li:nth-last-child(3n) 
+PASS Detached Element.webkitMatchesSelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last (with no refNodes): #pseudo-nth li:nth-last-child(2n+4) 
+PASS Detached Element.webkitMatchesSelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last (with no refNodes): #pseudo-nth-p1 :nth-last-child(4n-1) 
+PASS Detached Element.webkitMatchesSelector: :nth-of-type selector, matching the third em element (with no refNodes): #pseudo-nth-p1 em:nth-of-type(3) 
+PASS Detached Element.webkitMatchesSelector: :nth-of-type selector, matching every second element of their type (with no refNodes): #pseudo-nth-p1 :nth-of-type(2n) 
+PASS Detached Element.webkitMatchesSelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first (with no refNodes): #pseudo-nth-p1 span:nth-of-type(2n-1) 
+PASS Detached Element.webkitMatchesSelector: :nth-last-of-type selector, matching the thrid last em element (with no refNodes): #pseudo-nth-p1 em:nth-last-of-type(3) 
+PASS Detached Element.webkitMatchesSelector: :nth-last-of-type selector, matching every second last element of their type (with no refNodes): #pseudo-nth-p1 :nth-last-of-type(2n) 
+PASS Detached Element.webkitMatchesSelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last (with no refNodes): #pseudo-nth-p1 span:nth-last-of-type(2n-1) 
+PASS Detached Element.webkitMatchesSelector: :first-of-type selector, matching the first em element (with no refNodes): #pseudo-nth-p1 em:first-of-type 
+PASS Detached Element.webkitMatchesSelector: :first-of-type selector, matching the first of every type of element (with no refNodes): #pseudo-nth-p1 :first-of-type 
+PASS Detached Element.webkitMatchesSelector: :first-of-type selector, matching the first td element in each table row (with no refNodes): #pseudo-nth-table1 tr :first-of-type 
+PASS Detached Element.webkitMatchesSelector: :last-of-type selector, matching the last em elemnet (with no refNodes): #pseudo-nth-p1 em:last-of-type 
+PASS Detached Element.webkitMatchesSelector: :last-of-type selector, matching the last of every type of element (with no refNodes): #pseudo-nth-p1 :last-of-type 
+PASS Detached Element.webkitMatchesSelector: :last-of-type selector, matching the last td element in each table row (with no refNodes): #pseudo-nth-table1 tr :last-of-type 
+PASS Detached Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first child div element (with no refNodes): #pseudo-first-child div:first-child 
+PASS Detached Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-first-child span:first-child 
+PASS Detached Element.webkitMatchesSelector: :last-child pseudo-class selector, matching last child div element (with no refNodes): #pseudo-last-child div:last-child 
+PASS Detached Element.webkitMatchesSelector: :last-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-last-child span:last-child 
+PASS Detached Element.webkitMatchesSelector: :pseudo-only-child pseudo-class selector, matching all only-child elements (with no refNodes): #pseudo-only :only-child 
+PASS Detached Element.webkitMatchesSelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type (with no refNodes): #pseudo-only :only-of-type 
+PASS Detached Element.webkitMatchesSelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type (with no refNodes): #pseudo-only em:only-of-type 
+PASS Detached Element.webkitMatchesSelector: :empty pseudo-class selector, matching empty p elements (with no refNodes): #pseudo-empty p:empty 
+PASS Detached Element.webkitMatchesSelector: :empty pseudo-class selector, matching all empty elements (with no refNodes): #pseudo-empty :empty 
+PASS Detached Element.webkitMatchesSelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes (with no refNodes): #pseudo-link :link, #pseudo-link :visited 
+PASS Detached Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr) 
+PASS Detached Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en) 
+PASS Detached Element.webkitMatchesSelector: :enabled pseudo-class selector, matching all enabled form controls (with no refNodes): #pseudo-ui :enabled 
+PASS Detached Element.webkitMatchesSelector: :enabled pseudo-class selector, matching all disabled form controls (with no refNodes): #pseudo-ui :disabled 
+PASS Detached Element.webkitMatchesSelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes (with no refNodes): #pseudo-ui :checked 
+PASS Detached Element.webkitMatchesSelector: :not pseudo-class selector, matching  (with no refNodes): #not&gt;:not(div) 
+PASS Detached Element.webkitMatchesSelector: :not pseudo-class selector, matching  (with no refNodes): #not * :not(:first-child) 
+PASS Detached Element.webkitMatchesSelector: Class selector, matching element with specified class (with no refNodes): .class-p 
+PASS Detached Element.webkitMatchesSelector: Class selector, chained, matching only elements with all specified classes (with no refNodes): #class .apple.orange.banana 
+PASS Detached Element.webkitMatchesSelector: Class Selector, chained, with type selector (with no refNodes): div.apple.banana.orange 
+PASS Detached Element.webkitMatchesSelector: Class selector, matching element with class value using non-ASCII characters (1) (with no refNodes): .台北Táiběi 
+PASS Detached Element.webkitMatchesSelector: Class selector, matching multiple elements with class value using non-ASCII characters (with no refNodes): .台北 
+PASS Detached Element.webkitMatchesSelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1) (with no refNodes): .台北Táiběi.台北 
+PASS Detached Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (with no refNodes): .foo\:bar 
+PASS Detached Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (with no refNodes): .test\.foo\[5\]bar 
+PASS Detached Element.webkitMatchesSelector: ID selector, matching element with specified id (with no refNodes): #id #id-div1 
+PASS Detached Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div1 
+PASS Detached Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div2 
+PASS Detached Element.webkitMatchesSelector: ID Selector, chained, with type selector (with no refNodes): div#id-div1, div#id-div2 
+PASS Detached Element.webkitMatchesSelector: ID selector, matching multiple elements with duplicate id (with no refNodes): #id-li-duplicate 
+PASS Detached Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (1) (with no refNodes): #台北Táiběi 
+PASS Detached Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (2) (with no refNodes): #台北 
+PASS Detached Element.webkitMatchesSelector: ID selector, matching id values using non-ASCII characters (1) (with no refNodes): #台北Táiběi, #台北 
+PASS Detached Element.webkitMatchesSelector: Descendant combinator, matching element that is a descendant of an element with id (with no refNodes): #descendant div 
+PASS Detached Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): div #descendant-div1 
+PASS Detached Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element with id (with no refNodes): #descendant #descendant-div2 
+PASS Detached Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with id (with no refNodes): #descendant .descendant-div2 
+PASS Detached Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1 .descendant-div3 
+PASS Detached Element.webkitMatchesSelector: Descendant combinator, whitespace characters (with no refNodes): #descendant        \r
+#descendant-div2 
+PASS Detached Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element that is a descendant of an element with id (with no refNodes): #descendant&gt;&gt;div 
+PASS Detached Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with id that is a descendant of an element (with no refNodes): div&gt;&gt;#descendant-div1 
+PASS Detached Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with id that is a descendant of an element with id (with no refNodes): #descendant&gt;&gt;#descendant-div2 
+PASS Detached Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with class that is a descendant of an element with id (with no refNodes): #descendant&gt;&gt;.descendant-div2 
+PASS Detached Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1&gt;&gt;.descendant-div3 
+PASS Detached Element.webkitMatchesSelector: Child combinator, matching element that is a child of an element with id (with no refNodes): #child&gt;div 
+PASS Detached Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element (with no refNodes): div&gt;#child-div1 
+PASS Detached Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with id (with no refNodes): #child&gt;#child-div1 
+PASS Detached Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with class (with no refNodes): #child-div1&gt;.child-div2 
+PASS Detached Element.webkitMatchesSelector: Child combinator, matching element with class that is a child of an element with class (with no refNodes): .child-div1&gt;.child-div2 
+PASS Detached Element.webkitMatchesSelector: Child combinator, surrounded by whitespace (with no refNodes): #child-div1        \r
+&gt;        \r
+#child-div2 
+PASS Detached Element.webkitMatchesSelector: Child combinator, whitespace after (with no refNodes): #child-div1&gt;        \r
+#child-div2 
+PASS Detached Element.webkitMatchesSelector: Child combinator, whitespace before (with no refNodes): #child-div1        \r
+&gt;#child-div2 
+PASS Detached Element.webkitMatchesSelector: Child combinator, no whitespace (with no refNodes): #child-div1&gt;#child-div2 
+PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+div 
+PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (with no refNodes): div+#adjacent-div4 
+PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+#adjacent-div4 
+PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+.adjacent-div4 
+PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class (with no refNodes): .adjacent-div2+.adjacent-div4 
+PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (with no refNodes): #adjacent div+p 
+PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, surrounded by whitespace (with no refNodes): #adjacent-p2        \r
++        \r
+#adjacent-p3 
+PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace after (with no refNodes): #adjacent-p2+        \r
+#adjacent-p3 
+PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace before (with no refNodes): #adjacent-p2        \r
++#adjacent-p3 
+PASS Detached Element.webkitMatchesSelector: Adjacent sibling combinator, no whitespace (with no refNodes): #adjacent-p2+#adjacent-p3 
+PASS Detached Element.webkitMatchesSelector: General sibling combinator, matching element that is a sibling of an element with id (with no refNodes): #sibling-div2~div 
+PASS Detached Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element (with no refNodes): div~#sibling-div4 
+PASS Detached Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element with id (with no refNodes): #sibling-div2~#sibling-div4 
+PASS Detached Element.webkitMatchesSelector: General sibling combinator, matching element with class that is a sibling of an element with id (with no refNodes): #sibling-div2~.sibling-div 
+PASS Detached Element.webkitMatchesSelector: General sibling combinator, matching p element that is a sibling of a div element (with no refNodes): #sibling div~p 
+PASS Detached Element.webkitMatchesSelector: General sibling combinator, surrounded by whitespace (with no refNodes): #sibling-p2        \r
+~        \r
+#sibling-p3 
+PASS Detached Element.webkitMatchesSelector: General sibling combinator, whitespace after (with no refNodes): #sibling-p2~        \r
+#sibling-p3 
+PASS Detached Element.webkitMatchesSelector: General sibling combinator, whitespace before (with no refNodes): #sibling-p2        \r
+~#sibling-p3 
+PASS Detached Element.webkitMatchesSelector: General sibling combinator, no whitespace (with no refNodes): #sibling-p2~#sibling-p3 
+PASS Detached Element.webkitMatchesSelector: Syntax, group of selectors separator, surrounded by whitespace (with no refNodes): #group em        \r 
+,        \r 
+#group strong 
+PASS Detached Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace after (with no refNodes): #group em,        \r
+#group strong 
+PASS Detached Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace before (with no refNodes): #group em        \r
+,#group strong 
+PASS Detached Element.webkitMatchesSelector: Syntax, group of selectors separator, no whitespace (with no refNodes): #group em,#group strong 
+PASS Fragment Element.webkitMatchesSelector: Universal selector, matching all children of element with specified ID (with no refNodes): #universal&gt;* 
+PASS Fragment Element.webkitMatchesSelector: Universal selector, matching all grandchildren of element with specified ID (with no refNodes): #universal&gt;*&gt;* 
+PASS Fragment Element.webkitMatchesSelector: Universal selector, matching all descendants of element with specified ID (with no refNodes): #universal * 
+PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with value (with no refNodes): .attr-presence-div1[align] 
+PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with empty value (with no refNodes): .attr-presence-div2[align] 
+PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching title attribute, case insensitivity (with no refNodes): #attr-presence [TiTlE] 
+PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching custom data-* attribute (with no refNodes): [data-attr-presence] 
+PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching attribute with non-ASCII characters (with no refNodes): ul[data-中文] 
+PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching option with selected attribute (with no refNodes): #attr-presence-select2 option[selected] 
+PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected] 
+PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align=&quot;center&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=&quot;&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value=&quot;\e9&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-value_foo=&quot;\e9&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type='hidden'],#attr-value input[type='radio'] 
+PASS Fragment Element.webkitMatchesSelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type=&quot;hidden&quot;],#attr-value input[type='radio'] 
+PASS Fragment Element.webkitMatchesSelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes (with no refNodes): #attr-value input[type=hidden],#attr-value input[type=radio] 
+PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching attribute with value using non-ASCII characters (with no refNodes): [data-attr-value=中文] 
+PASS Fragment Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching class attribute with value (with no refNodes): #attr-whitespace [class~=&quot;div1&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-whitespace~=&quot;\0000e9&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with no refNodes): [data-attr-whitespace_foo~=&quot;\e9&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~='bookmark'],  #attr-whitespace a[rel~='nofollow'] 
+PASS Fragment Element.webkitMatchesSelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~=&quot;bookmark&quot;],#attr-whitespace a[rel~='nofollow'] 
+PASS Fragment Element.webkitMatchesSelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes (with no refNodes): #attr-whitespace a[rel~=bookmark],    #attr-whitespace a[rel~=nofollow] 
+PASS Fragment Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with no refNodes): #attr-whitespace [title~=中文] 
+PASS Fragment Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with exact value (with no refNodes): #attr-hyphen-div2[lang|=&quot;fr&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with partial value (with no refNodes): #attr-hyphen-div3[lang|=&quot;en&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute begins with selector, matching href attributes beginning with specified substring (with no refNodes): #attr-begins a[href^=&quot;http://www&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute begins with selector, matching lang attributes beginning with specified substring,  (with no refNodes): #attr-begins [lang^=&quot;en-&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=' apple'] 
+PASS Fragment Element.webkitMatchesSelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-begins [class^=&quot; apple&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute ends with selector, matching href attributes ending with specified substring (with no refNodes): #attr-ends a[href$=&quot;.org&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute ends with selector, matching lang attributes ending with specified substring,  (with no refNodes): #attr-ends [lang$=&quot;-CH&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$='apple '] 
+PASS Fragment Element.webkitMatchesSelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-ends [class$=&quot;apple &quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector, matching href attributes beginning with specified substring (with no refNodes): #attr-contains a[href*=&quot;http://www&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector, matching href attributes ending with specified substring (with no refNodes): #attr-contains a[href*=&quot;.org&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector, matching href attributes containing specified substring (with no refNodes): #attr-contains a[href*=&quot;.example.&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes beginning with specified substring,  (with no refNodes): #attr-contains [lang*=&quot;en-&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes ending with specified substring,  (with no refNodes): #attr-contains [lang*=&quot;-CH&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=' apple'] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*='orange '] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*='ple banana ora'] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*=&quot; apple&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=&quot;orange &quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*=&quot;ple banana ora&quot;] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with no refNodes): #attr-contains [class*= apple] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with no refNodes): #attr-contains [class*=orange ] 
+PASS Fragment Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with no refNodes): #attr-contains [class*= banana ] 
+PASS Fragment Element.webkitMatchesSelector: :nth-child selector, matching the third child element (with no refNodes): #pseudo-nth-table1 :nth-child(3) 
+PASS Fragment Element.webkitMatchesSelector: :nth-child selector, matching every third child element (with no refNodes): #pseudo-nth li:nth-child(3n) 
+PASS Fragment Element.webkitMatchesSelector: :nth-child selector, matching every second child element, starting from the fourth (with no refNodes): #pseudo-nth li:nth-child(2n+4) 
+PASS Fragment Element.webkitMatchesSelector: :nth-child selector, matching every fourth child element, starting from the third (with no refNodes): #pseudo-nth-p1 :nth-child(4n-1) 
+PASS Fragment Element.webkitMatchesSelector: :nth-last-child selector, matching the third last child element (with no refNodes): #pseudo-nth-table1 :nth-last-child(3) 
+PASS Fragment Element.webkitMatchesSelector: :nth-last-child selector, matching every third child element from the end (with no refNodes): #pseudo-nth li:nth-last-child(3n) 
+PASS Fragment Element.webkitMatchesSelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last (with no refNodes): #pseudo-nth li:nth-last-child(2n+4) 
+PASS Fragment Element.webkitMatchesSelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last (with no refNodes): #pseudo-nth-p1 :nth-last-child(4n-1) 
+PASS Fragment Element.webkitMatchesSelector: :nth-of-type selector, matching the third em element (with no refNodes): #pseudo-nth-p1 em:nth-of-type(3) 
+PASS Fragment Element.webkitMatchesSelector: :nth-of-type selector, matching every second element of their type (with no refNodes): #pseudo-nth-p1 :nth-of-type(2n) 
+PASS Fragment Element.webkitMatchesSelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first (with no refNodes): #pseudo-nth-p1 span:nth-of-type(2n-1) 
+PASS Fragment Element.webkitMatchesSelector: :nth-last-of-type selector, matching the thrid last em element (with no refNodes): #pseudo-nth-p1 em:nth-last-of-type(3) 
+PASS Fragment Element.webkitMatchesSelector: :nth-last-of-type selector, matching every second last element of their type (with no refNodes): #pseudo-nth-p1 :nth-last-of-type(2n) 
+PASS Fragment Element.webkitMatchesSelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last (with no refNodes): #pseudo-nth-p1 span:nth-last-of-type(2n-1) 
+PASS Fragment Element.webkitMatchesSelector: :first-of-type selector, matching the first em element (with no refNodes): #pseudo-nth-p1 em:first-of-type 
+PASS Fragment Element.webkitMatchesSelector: :first-of-type selector, matching the first of every type of element (with no refNodes): #pseudo-nth-p1 :first-of-type 
+PASS Fragment Element.webkitMatchesSelector: :first-of-type selector, matching the first td element in each table row (with no refNodes): #pseudo-nth-table1 tr :first-of-type 
+PASS Fragment Element.webkitMatchesSelector: :last-of-type selector, matching the last em elemnet (with no refNodes): #pseudo-nth-p1 em:last-of-type 
+PASS Fragment Element.webkitMatchesSelector: :last-of-type selector, matching the last of every type of element (with no refNodes): #pseudo-nth-p1 :last-of-type 
+PASS Fragment Element.webkitMatchesSelector: :last-of-type selector, matching the last td element in each table row (with no refNodes): #pseudo-nth-table1 tr :last-of-type 
+PASS Fragment Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first child div element (with no refNodes): #pseudo-first-child div:first-child 
+PASS Fragment Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-first-child span:first-child 
+PASS Fragment Element.webkitMatchesSelector: :last-child pseudo-class selector, matching last child div element (with no refNodes): #pseudo-last-child div:last-child 
+PASS Fragment Element.webkitMatchesSelector: :last-child pseudo-class selector, matching first-child of multiple elements (with no refNodes): #pseudo-last-child span:last-child 
+PASS Fragment Element.webkitMatchesSelector: :pseudo-only-child pseudo-class selector, matching all only-child elements (with no refNodes): #pseudo-only :only-child 
+PASS Fragment Element.webkitMatchesSelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type (with no refNodes): #pseudo-only :only-of-type 
+PASS Fragment Element.webkitMatchesSelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type (with no refNodes): #pseudo-only em:only-of-type 
+PASS Fragment Element.webkitMatchesSelector: :empty pseudo-class selector, matching empty p elements (with no refNodes): #pseudo-empty p:empty 
+PASS Fragment Element.webkitMatchesSelector: :empty pseudo-class selector, matching all empty elements (with no refNodes): #pseudo-empty :empty 
+PASS Fragment Element.webkitMatchesSelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes (with no refNodes): #pseudo-link :link, #pseudo-link :visited 
+PASS Fragment Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with exact value (with no refNodes): #pseudo-lang-div2:lang(fr) 
+PASS Fragment Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with partial value (with no refNodes): #pseudo-lang-div3:lang(en) 
+PASS Fragment Element.webkitMatchesSelector: :enabled pseudo-class selector, matching all enabled form controls (with no refNodes): #pseudo-ui :enabled 
+PASS Fragment Element.webkitMatchesSelector: :enabled pseudo-class selector, matching all disabled form controls (with no refNodes): #pseudo-ui :disabled 
+PASS Fragment Element.webkitMatchesSelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes (with no refNodes): #pseudo-ui :checked 
+PASS Fragment Element.webkitMatchesSelector: :not pseudo-class selector, matching  (with no refNodes): #not&gt;:not(div) 
+PASS Fragment Element.webkitMatchesSelector: :not pseudo-class selector, matching  (with no refNodes): #not * :not(:first-child) 
+PASS Fragment Element.webkitMatchesSelector: Class selector, matching element with specified class (with no refNodes): .class-p 
+PASS Fragment Element.webkitMatchesSelector: Class selector, chained, matching only elements with all specified classes (with no refNodes): #class .apple.orange.banana 
+PASS Fragment Element.webkitMatchesSelector: Class Selector, chained, with type selector (with no refNodes): div.apple.banana.orange 
+PASS Fragment Element.webkitMatchesSelector: Class selector, matching element with class value using non-ASCII characters (1) (with no refNodes): .台北Táiběi 
+PASS Fragment Element.webkitMatchesSelector: Class selector, matching multiple elements with class value using non-ASCII characters (with no refNodes): .台北 
+PASS Fragment Element.webkitMatchesSelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (1) (with no refNodes): .台北Táiběi.台北 
+PASS Fragment Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (with no refNodes): .foo\:bar 
+PASS Fragment Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (with no refNodes): .test\.foo\[5\]bar 
+PASS Fragment Element.webkitMatchesSelector: ID selector, matching element with specified id (with no refNodes): #id #id-div1 
+PASS Fragment Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div1 
+PASS Fragment Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (with no refNodes): #id-div1, #id-div2 
+PASS Fragment Element.webkitMatchesSelector: ID Selector, chained, with type selector (with no refNodes): div#id-div1, div#id-div2 
+PASS Fragment Element.webkitMatchesSelector: ID selector, matching multiple elements with duplicate id (with no refNodes): #id-li-duplicate 
+PASS Fragment Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (1) (with no refNodes): #台北Táiběi 
+PASS Fragment Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (2) (with no refNodes): #台北 
+PASS Fragment Element.webkitMatchesSelector: ID selector, matching id values using non-ASCII characters (1) (with no refNodes): #台北Táiběi, #台北 
+PASS Fragment Element.webkitMatchesSelector: Descendant combinator, matching element that is a descendant of an element with id (with no refNodes): #descendant div 
+PASS Fragment Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element (with no refNodes): div #descendant-div1 
+PASS Fragment Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element with id (with no refNodes): #descendant #descendant-div2 
+PASS Fragment Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with id (with no refNodes): #descendant .descendant-div2 
+PASS Fragment Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1 .descendant-div3 
+PASS Fragment Element.webkitMatchesSelector: Descendant combinator, whitespace characters (with no refNodes): #descendant        \r
+#descendant-div2 
+PASS Fragment Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element that is a descendant of an element with id (with no refNodes): #descendant&gt;&gt;div 
+PASS Fragment Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with id that is a descendant of an element (with no refNodes): div&gt;&gt;#descendant-div1 
+PASS Fragment Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with id that is a descendant of an element with id (with no refNodes): #descendant&gt;&gt;#descendant-div2 
+PASS Fragment Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with class that is a descendant of an element with id (with no refNodes): #descendant&gt;&gt;.descendant-div2 
+PASS Fragment Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1&gt;&gt;.descendant-div3 
+PASS Fragment Element.webkitMatchesSelector: Child combinator, matching element that is a child of an element with id (with no refNodes): #child&gt;div 
+PASS Fragment Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element (with no refNodes): div&gt;#child-div1 
+PASS Fragment Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with id (with no refNodes): #child&gt;#child-div1 
+PASS Fragment Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with class (with no refNodes): #child-div1&gt;.child-div2 
+PASS Fragment Element.webkitMatchesSelector: Child combinator, matching element with class that is a child of an element with class (with no refNodes): .child-div1&gt;.child-div2 
+PASS Fragment Element.webkitMatchesSelector: Child combinator, surrounded by whitespace (with no refNodes): #child-div1        \r
+&gt;        \r
+#child-div2 
+PASS Fragment Element.webkitMatchesSelector: Child combinator, whitespace after (with no refNodes): #child-div1&gt;        \r
+#child-div2 
+PASS Fragment Element.webkitMatchesSelector: Child combinator, whitespace before (with no refNodes): #child-div1        \r
+&gt;#child-div2 
+PASS Fragment Element.webkitMatchesSelector: Child combinator, no whitespace (with no refNodes): #child-div1&gt;#child-div2 
+PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+div 
+PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (with no refNodes): div+#adjacent-div4 
+PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+#adjacent-div4 
+PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id (with no refNodes): #adjacent-div2+.adjacent-div4 
+PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class (with no refNodes): .adjacent-div2+.adjacent-div4 
+PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (with no refNodes): #adjacent div+p 
+PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, surrounded by whitespace (with no refNodes): #adjacent-p2        \r
++        \r
+#adjacent-p3 
+PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace after (with no refNodes): #adjacent-p2+        \r
+#adjacent-p3 
+PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace before (with no refNodes): #adjacent-p2        \r
++#adjacent-p3 
+PASS Fragment Element.webkitMatchesSelector: Adjacent sibling combinator, no whitespace (with no refNodes): #adjacent-p2+#adjacent-p3 
+PASS Fragment Element.webkitMatchesSelector: General sibling combinator, matching element that is a sibling of an element with id (with no refNodes): #sibling-div2~div 
+PASS Fragment Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element (with no refNodes): div~#sibling-div4 
+PASS Fragment Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element with id (with no refNodes): #sibling-div2~#sibling-div4 
+PASS Fragment Element.webkitMatchesSelector: General sibling combinator, matching element with class that is a sibling of an element with id (with no refNodes): #sibling-div2~.sibling-div 
+PASS Fragment Element.webkitMatchesSelector: General sibling combinator, matching p element that is a sibling of a div element (with no refNodes): #sibling div~p 
+PASS Fragment Element.webkitMatchesSelector: General sibling combinator, surrounded by whitespace (with no refNodes): #sibling-p2        \r
+~        \r
+#sibling-p3 
+PASS Fragment Element.webkitMatchesSelector: General sibling combinator, whitespace after (with no refNodes): #sibling-p2~        \r
+#sibling-p3 
+PASS Fragment Element.webkitMatchesSelector: General sibling combinator, whitespace before (with no refNodes): #sibling-p2        \r
+~#sibling-p3 
+PASS Fragment Element.webkitMatchesSelector: General sibling combinator, no whitespace (with no refNodes): #sibling-p2~#sibling-p3 
+PASS Fragment Element.webkitMatchesSelector: Syntax, group of selectors separator, surrounded by whitespace (with no refNodes): #group em        \r 
+,        \r 
+#group strong 
+PASS Fragment Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace after (with no refNodes): #group em,        \r
+#group strong 
+PASS Fragment Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace before (with no refNodes): #group em        \r
+,#group strong 
+PASS Fragment Element.webkitMatchesSelector: Syntax, group of selectors separator, no whitespace (with no refNodes): #group em,#group strong 
+FAIL In-document Element.webkitMatchesSelector: Universal selector, matching all children of the specified reference element (with refNode Element): &gt;* The string did not match the expected pattern.
+FAIL In-document Element.webkitMatchesSelector: Universal selector, matching all grandchildren of the specified reference element (with refNode Element): &gt;*&gt;* The string did not match the expected pattern.
+FAIL In-document Element.webkitMatchesSelector: Universal selector, matching all descendants of the specified reference element (with refNode Element): * assert_false: The element #universal should not match the selector. expected false got true
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with value (with refNode Element): .attr-presence-div1[align] 
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching align attribute with empty value (with refNode Element): .attr-presence-div2[align] 
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching title attribute, case insensitivity (with refNode Element): [TiTlE] 
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching custom data-* attribute (with refNode Element): [data-attr-presence] 
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching attribute with non-ASCII characters (with refNode Element): ul[data-中文] 
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching option with selected attribute (with refNode Element): #attr-presence-select2 option[selected] 
+PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching multiple options with selected attributes (with refNode Element): #attr-presence-select3 option[selected] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value (with refNode Element): [align=&quot;center&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching align attribute with empty value (with refNode Element): [align=&quot;&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with unicode escaped value (with refNode Element): [data-attr-value=&quot;\e9&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with escaped character (with refNode Element): [data-attr-value_foo=&quot;\e9&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector with single-quoted value, matching multiple inputs with type attributes (with refNode Element): input[type='hidden'],#attr-value input[type='radio'] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector with double-quoted value, matching multiple inputs with type attributes (with refNode Element): input[type=&quot;hidden&quot;],#attr-value input[type='radio'] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector with unquoted value, matching multiple inputs with type attributes (with refNode Element): input[type=hidden],#attr-value input[type=radio] 
+PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching attribute with value using non-ASCII characters (with refNode Element): [data-attr-value=中文] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching class attribute with value (with refNode Element): [class~=&quot;div1&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with unicode escaped value (with refNode Element): [data-attr-whitespace~=&quot;\0000e9&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching custom data-* attribute with escaped character (with refNode Element): [data-attr-whitespace_foo~=&quot;\e9&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector with single-quoted value, matching multiple links with rel attributes (with refNode Element): a[rel~='bookmark'],  #attr-whitespace a[rel~='nofollow'] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector with double-quoted value, matching multiple links with rel attributes (with refNode Element): a[rel~=&quot;bookmark&quot;],#attr-whitespace a[rel~='nofollow'] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector with unquoted value, matching multiple links with rel attributes (with refNode Element): a[rel~=bookmark],    #attr-whitespace a[rel~=nofollow] 
+PASS In-document Element.webkitMatchesSelector: Attribute whitespace-separated list selector, matching title attribute with value using non-ASCII characters (with refNode Element): [title~=中文] 
+PASS In-document Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with exact value (with refNode Element): #attr-hyphen-div2[lang|=&quot;fr&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute hyphen-separated list selector, matching lang attribute with partial value (with refNode Element): #attr-hyphen-div3[lang|=&quot;en&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute begins with selector, matching href attributes beginning with specified substring (with refNode Element): a[href^=&quot;http://www&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute begins with selector, matching lang attributes beginning with specified substring,  (with refNode Element): [lang^=&quot;en-&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class^=' apple'] 
+PASS In-document Element.webkitMatchesSelector: Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class^=&quot; apple&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute ends with selector, matching href attributes ending with specified substring (with refNode Element): a[href$=&quot;.org&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute ends with selector, matching lang attributes ending with specified substring,  (with refNode Element): [lang$=&quot;-CH&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring (with refNode Element): [class$='apple '] 
+PASS In-document Element.webkitMatchesSelector: Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring (with refNode Element): [class$=&quot;apple &quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching href attributes beginning with specified substring (with refNode Element): a[href*=&quot;http://www&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching href attributes ending with specified substring (with refNode Element): a[href*=&quot;.org&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching href attributes containing specified substring (with refNode Element): a[href*=&quot;.example.&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes beginning with specified substring,  (with refNode Element): [lang*=&quot;en-&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector, matching lang attributes ending with specified substring,  (with refNode Element): [lang*=&quot;-CH&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class*=' apple'] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring (with refNode Element): [class*='orange '] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with single-quoted value, matching class attribute containing specified substring (with refNode Element): [class*='ple banana ora'] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute beginning with specified substring (with refNode Element): [class*=&quot; apple&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute ending with specified substring (with refNode Element): [class*=&quot;orange &quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with double-quoted value, matching class attribute containing specified substring (with refNode Element): [class*=&quot;ple banana ora&quot;] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute beginning with specified substring (with refNode Element): [class*= apple] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute ending with specified substring (with refNode Element): [class*=orange ] 
+PASS In-document Element.webkitMatchesSelector: Attribute contains selector with unquoted value, matching class attribute containing specified substring (with refNode Element): [class*= banana ] 
+PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching the third child element (with refNode Element): :nth-child(3) 
+PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every third child element (with refNode Element): li:nth-child(3n) 
+PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every second child element, starting from the fourth (with refNode Element): li:nth-child(2n+4) 
+PASS In-document Element.webkitMatchesSelector: :nth-child selector, matching every fourth child element, starting from the third (with refNode Element): :nth-child(4n-1) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-child selector, matching the third last child element (with refNode Element): :nth-last-child(3) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-child selector, matching every third child element from the end (with refNode Element): li:nth-last-child(3n) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-child selector, matching every second child element from the end, starting from the fourth last (with refNode Element): li:nth-last-child(2n+4) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-child selector, matching every fourth element from the end, starting from the third last (with refNode Element): :nth-last-child(4n-1) 
+PASS In-document Element.webkitMatchesSelector: :nth-of-type selector, matching the third em element (with refNode Element): em:nth-of-type(3) 
+PASS In-document Element.webkitMatchesSelector: :nth-of-type selector, matching every second element of their type (with refNode Element): :nth-of-type(2n) 
+PASS In-document Element.webkitMatchesSelector: :nth-of-type selector, matching every second elemetn of their type, starting from the first (with refNode Element): span:nth-of-type(2n-1) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-of-type selector, matching the thrid last em element (with refNode Element): em:nth-last-of-type(3) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-of-type selector, matching every second last element of their type (with refNode Element): :nth-last-of-type(2n) 
+PASS In-document Element.webkitMatchesSelector: :nth-last-of-type selector, matching every second last element of their type, starting from the last (with refNode Element): span:nth-last-of-type(2n-1) 
+PASS In-document Element.webkitMatchesSelector: :first-of-type selector, matching the first em element (with refNode Element): em:first-of-type 
+PASS In-document Element.webkitMatchesSelector: :first-of-type selector, matching the first of every type of element (with refNode Element): :first-of-type 
+PASS In-document Element.webkitMatchesSelector: :first-of-type selector, matching the first td element in each table row (with refNode Element): tr :first-of-type 
+PASS In-document Element.webkitMatchesSelector: :last-of-type selector, matching the last em elemnet (with refNode Element): em:last-of-type 
+PASS In-document Element.webkitMatchesSelector: :last-of-type selector, matching the last of every type of element (with refNode Element): :last-of-type 
+PASS In-document Element.webkitMatchesSelector: :last-of-type selector, matching the last td element in each table row (with refNode Element): tr :last-of-type 
+PASS In-document Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first child div element (with refNode Element): div:first-child 
+PASS In-document Element.webkitMatchesSelector: :first-child pseudo-class selector, matching first-child of multiple elements (with refNode Element): span:first-child 
+PASS In-document Element.webkitMatchesSelector: :last-child pseudo-class selector, matching last child div element (with refNode Element): div:last-child 
+PASS In-document Element.webkitMatchesSelector: :last-child pseudo-class selector, matching first-child of multiple elements (with refNode Element): span:last-child 
+PASS In-document Element.webkitMatchesSelector: :pseudo-only-child pseudo-class selector, matching all only-child elements (with refNode Element): :only-child 
+PASS In-document Element.webkitMatchesSelector: :pseudo-only-of-type pseudo-class selector, matching all elements with no siblings of the same type (with refNode Element):  :only-of-type 
+PASS In-document Element.webkitMatchesSelector: :pseudo-only-of-type pseudo-class selector, matching em elements with no siblings of the same type (with refNode Element):  em:only-of-type 
+PASS In-document Element.webkitMatchesSelector: :empty pseudo-class selector, matching empty p elements (with refNode Element): p:empty 
+PASS In-document Element.webkitMatchesSelector: :empty pseudo-class selector, matching all empty elements (with refNode Element): :empty 
+PASS In-document Element.webkitMatchesSelector: :link and :visited pseudo-class selectors, matching a and area elements with href attributes (with refNode Element):  :link, #pseudo-link :visited 
+PASS In-document Element.webkitMatchesSelector: :link and :visited pseudo-class selectors, matching link elements with href attributes (with refNode Element):  :link, #head :visited 
+PASS In-document Element.webkitMatchesSelector: :lang pseudo-class selector, matching inherited language (1) (with no refNodes): #pseudo-lang-div1:lang(en) 
+PASS In-document Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with exact value (1) (with no refNodes): #pseudo-lang-div2:lang(fr) 
+PASS In-document Element.webkitMatchesSelector: :lang pseudo-class selector, matching specified language with partial value (1) (with no refNodes): #pseudo-lang-div3:lang(en) 
+PASS In-document Element.webkitMatchesSelector: :enabled pseudo-class selector, matching all enabled form controls (1) (with no refNodes): #pseudo-ui :enabled 
+PASS In-document Element.webkitMatchesSelector: :enabled pseudo-class selector, matching all disabled form controls (1) (with no refNodes): #pseudo-ui :disabled 
+PASS In-document Element.webkitMatchesSelector: :checked pseudo-class selector, matching checked radio buttons and checkboxes (1) (with no refNodes): #pseudo-ui :checked 
+PASS In-document Element.webkitMatchesSelector: :not pseudo-class selector, matching (1) (with no refNodes): #not&gt;:not(div) 
+PASS In-document Element.webkitMatchesSelector: :not pseudo-class selector, matching (1) (with no refNodes): #not * :not(:first-child) 
+PASS In-document Element.webkitMatchesSelector: Class selector, matching element with specified class (1) (with no refNodes): .class-p 
+PASS In-document Element.webkitMatchesSelector: Class selector, chained, matching only elements with all specified classes (1) (with no refNodes): #class .apple.orange.banana 
+PASS In-document Element.webkitMatchesSelector: Class Selector, chained, with type selector (1) (with no refNodes): div.apple.banana.orange 
+PASS In-document Element.webkitMatchesSelector: Class selector, matching element with class value using non-ASCII characters (2) (with no refNodes): .台北Táiběi 
+PASS In-document Element.webkitMatchesSelector: Class selector, matching multiple elements with class value using non-ASCII characters (1) (with no refNodes): .台北 
+PASS In-document Element.webkitMatchesSelector: Class selector, chained, matching element with multiple class values using non-ASCII characters (2) (with no refNodes): .台北Táiběi.台北 
+PASS In-document Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (1) (with no refNodes): .foo\:bar 
+PASS In-document Element.webkitMatchesSelector: Class selector, matching element with class with escaped character (1) (with no refNodes): .test\.foo\[5\]bar 
+PASS In-document Element.webkitMatchesSelector: ID selector, matching element with specified id (1) (with no refNodes): #id #id-div1 
+PASS In-document Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (1) (with no refNodes): #id-div1, #id-div1 
+PASS In-document Element.webkitMatchesSelector: ID selector, chained, matching element with specified id (1) (with no refNodes): #id-div1, #id-div2 
+PASS In-document Element.webkitMatchesSelector: ID Selector, chained, with type selector (1) (with no refNodes): div#id-div1, div#id-div2 
+PASS In-document Element.webkitMatchesSelector: ID selector, matching multiple elements with duplicate id (1) (with no refNodes): #id-li-duplicate 
+PASS In-document Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (3) (with no refNodes): #台北Táiběi 
+PASS In-document Element.webkitMatchesSelector: ID selector, matching id value using non-ASCII characters (4) (with no refNodes): #台北 
+PASS In-document Element.webkitMatchesSelector: ID selector, matching id values using non-ASCII characters (2) (with no refNodes): #台北Táiběi, #台北 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element that is a descendant of an element with id (1) (with no refNodes): #descendant div 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element (1) (with no refNodes): body #descendant-div1 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element (1) (with no refNodes): div #descendant-div1 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with id that is a descendant of an element with id (1) (with no refNodes): #descendant #descendant-div2 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with id (1) (with no refNodes): #descendant .descendant-div2 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, matching element with class that is a descendant of an element with class (1) (with no refNodes): .descendant-div1 .descendant-div3 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, whitespace characters (1) (with no refNodes): #descendant        \r
+#descendant-div2 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element that is a descendant of an element with id (1) (with no refNodes): #descendant&gt;&gt;div 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with id that is a descendant of an element (1) (with no refNodes): body&gt;&gt;#descendant-div1 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with id that is a descendant of an element (1) (with no refNodes): div&gt;&gt;#descendant-div1 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with id that is a descendant of an element with id (1) (with no refNodes): #descendant&gt;&gt;#descendant-div2 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator '&gt;&gt;', matching element with class that is a descendant of an element with id (1) (with no refNodes): #descendant&gt;&gt;.descendant-div2 
+PASS In-document Element.webkitMatchesSelector: Descendant combinator, '&gt;&gt;', matching element with class that is a descendant of an element with class (1) (with no refNodes): .descendant-div1&gt;&gt;.descendant-div3 
+PASS In-document Element.webkitMatchesSelector: Child combinator, matching element that is a child of an element with id (1) (with no refNodes): #child&gt;div 
+PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element (1) (with no refNodes): div&gt;#child-div1 
+PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with id (1) (with no refNodes): #child&gt;#child-div1 
+PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element with class (1) (with no refNodes): #child-div1&gt;.child-div2 
+PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with class that is a child of an element with class (1) (with no refNodes): .child-div1&gt;.child-div2 
+PASS In-document Element.webkitMatchesSelector: Child combinator, surrounded by whitespace (1) (with no refNodes): #child-div1        \r
+&gt;        \r
+#child-div2 
+PASS In-document Element.webkitMatchesSelector: Child combinator, whitespace after (1) (with no refNodes): #child-div1&gt;        \r
+#child-div2 
+PASS In-document Element.webkitMatchesSelector: Child combinator, whitespace before (1) (with no refNodes): #child-div1        \r
+&gt;#child-div2 
+PASS In-document Element.webkitMatchesSelector: Child combinator, no whitespace (1) (with no refNodes): #child-div1&gt;#child-div2 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element that is an adjacent sibling of an element with id (1) (with no refNodes): #adjacent-div2+div 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element (1) (with no refNodes): div+#adjacent-div4 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with id that is an adjacent sibling of an element with id (1) (with no refNodes): #adjacent-div2+#adjacent-div4 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with id (1) (with no refNodes): #adjacent-div2+.adjacent-div4 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching element with class that is an adjacent sibling of an element with class (1) (with no refNodes): .adjacent-div2+.adjacent-div4 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, matching p element that is an adjacent sibling of a div element (1) (with no refNodes): #adjacent div+p 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, surrounded by whitespace (1) (with no refNodes): #adjacent-p2        \r
++        \r
+#adjacent-p3 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace after (1) (with no refNodes): #adjacent-p2+        \r
+#adjacent-p3 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, whitespace before (1) (with no refNodes): #adjacent-p2        \r
++#adjacent-p3 
+PASS In-document Element.webkitMatchesSelector: Adjacent sibling combinator, no whitespace (1) (with no refNodes): #adjacent-p2+#adjacent-p3 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element that is a sibling of an element with id (1) (with no refNodes): #sibling-div2~div 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element (1) (with no refNodes): div~#sibling-div4 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element with id that is a sibling of an element with id (1) (with no refNodes): #sibling-div2~#sibling-div4 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching element with class that is a sibling of an element with id (1) (with no refNodes): #sibling-div2~.sibling-div 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, matching p element that is a sibling of a div element (1) (with no refNodes): #sibling div~p 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, surrounded by whitespace (1) (with no refNodes): #sibling-p2        \r
+~        \r
+#sibling-p3 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, whitespace after (1) (with no refNodes): #sibling-p2~        \r
+#sibling-p3 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, whitespace before (1) (with no refNodes): #sibling-p2        \r
+~#sibling-p3 
+PASS In-document Element.webkitMatchesSelector: General sibling combinator, no whitespace (1) (with no refNodes): #sibling-p2~#sibling-p3 
+PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, surrounded by whitespace (1) (with no refNodes): #group em        \r 
+,        \r 
+#group strong 
+PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace after (1) (with no refNodes): #group em,        \r
+#group strong 
+PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, whitespace before (1) (with no refNodes): #group em        \r
+,#group strong 
+PASS In-document Element.webkitMatchesSelector: Syntax, group of selectors separator, no whitespace (1) (with no refNodes): #group em,#group strong 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementwebkitMatchesSelectorhtmlfromrev213880trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementmatcheshtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector.html (from rev 213880, trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches.html) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,89 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;UTF-8&quot;&gt;
+&lt;title&gt;Selectors-API Level 2 Test Suite: HTML with Selectors Level 3&lt;/title&gt;
+&lt;!--  Selectors API Test Suite Version 3  --&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/dom/nodes/selectors.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/dom/nodes/ParentNode-querySelector-All.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;Element-matches.js&quot;&gt;&lt;/script&gt;
+&lt;style&gt;iframe { visibility: hidden; position: absolute; }&lt;/style&gt;
+
+&lt;div id=&quot;log&quot;&gt;This test requires JavaScript.&lt;/div&gt;
+
+&lt;script&gt;
+async_test(function() {
+  var frame = document.createElement(&quot;iframe&quot;);
+  frame.onload = this.step_func_done(init);
+  frame.src = &quot;/dom/nodes/ParentNode-querySelector-All-content.html#target&quot;;
+  document.body.appendChild(frame);
+});
+
+function init(e) {
+  /*
+   * This test suite tests Selectors API methods in 4 different contexts:
+   * 1. Document node
+   * 2. In-document Element node
+   * 3. Detached Element node (an element with no parent, not in the document)
+   * 4. Document Fragment node
+   *
+   * For each context, the following tests are run:
+   *
+   * The interface check tests ensure that each type of node exposes the Selectors API methods.
+   *
+   * The matches() tests are run
+   * All the selectors tested for both the valid and invalid selector tests are found in selectors.js.
+   * See comments in that file for documentation of the format used.
+   *
+   * The level2-lib.js file contains all the common test functions for running each of the aforementioned tests
+   */
+
+  var method = &quot;webkitMatchesSelector&quot;;
+
+  var docType  = &quot;html&quot;; // Only run tests suitable for HTML
+
+  // Prepare the nodes for testing
+  var doc = e.target.contentDocument;                 // Document Node tests
+
+  var element = doc.getElementById(&quot;root&quot;);   // In-document Element Node tests
+
+  //Setup the namespace tests
+  setupSpecialElements(doc, element);
+
+  var outOfScope = element.cloneNode(true);   // Append this to the body before running the in-document
+                                               // Element tests, but after running the Document tests. This
+                                               // tests that no elements that are not descendants of element
+                                               // are selected.
+
+  traverse(outOfScope, function(elem) {        // Annotate each element as being a clone; used for verifying
+    elem.setAttribute(&quot;data-clone&quot;, &quot;&quot;);     // that none of these elements ever match.
+  });
+
+
+  var detached = element.cloneNode(true);     // Detached Element Node tests
+
+  var fragment = doc.createDocumentFragment(); // Fragment Node tests
+  fragment.appendChild(element.cloneNode(true));
+
+  // Setup Tests
+  interfaceCheckMatches(method, &quot;Document&quot;, doc);
+  interfaceCheckMatches(method, &quot;Detached Element&quot;, detached);
+  interfaceCheckMatches(method, &quot;Fragment&quot;, fragment);
+  interfaceCheckMatches(method, &quot;In-document Element&quot;, element);
+
+  runSpecialMatchesTests(method, &quot;DIV Element&quot;, element);
+  runSpecialMatchesTests(method, &quot;NULL Element&quot;, document.createElement(&quot;null&quot;));
+  runSpecialMatchesTests(method, &quot;UNDEFINED Element&quot;, document.createElement(&quot;undefined&quot;));
+
+  runInvalidSelectorTestMatches(method, &quot;Document&quot;, doc, invalidSelectors);
+  runInvalidSelectorTestMatches(method, &quot;Detached Element&quot;, detached, invalidSelectors);
+  runInvalidSelectorTestMatches(method, &quot;Fragment&quot;, fragment, invalidSelectors);
+  runInvalidSelectorTestMatches(method, &quot;In-document Element&quot;, element, invalidSelectors);
+
+  runMatchesTest(method, &quot;In-document&quot;, doc, validSelectors, &quot;html&quot;);
+  runMatchesTest(method, &quot;Detached&quot;, detached, validSelectors, &quot;html&quot;);
+  runMatchesTest(method, &quot;Fragment&quot;, fragment, validSelectors, &quot;html&quot;);
+
+  runMatchesTest(method, &quot;In-document&quot;, doc, scopedSelectors, &quot;html&quot;);
+}
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodelookupNamespaceURIexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-lookupNamespaceURI-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-lookupNamespaceURI-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-lookupNamespaceURI-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -9,6 +9,14 @@
</span><span class="cx"> PASS DocumentFragment is in default namespace, prefix &quot;&quot; 
</span><span class="cx"> PASS DocumentFragment is in default namespace, prefix &quot;foo&quot; 
</span><span class="cx"> PASS DocumentFragment is in default namespace, prefix &quot;xmlns&quot; 
</span><ins>+PASS DocumentType should have null nemspace, prefix null 
+PASS DocumentType should have null namespace, prefix &quot;&quot; 
+PASS DocumentType should have null namespace, prefix &quot;foo&quot; 
+PASS DocumentType should have null namespace, prefix &quot;xmlns&quot; 
+PASS DocumentType is in default namespace, prefix null 
+PASS DocumentType is in default namespace, prefix &quot;&quot; 
+PASS DocumentType is in default namespace, prefix &quot;foo&quot; 
+PASS DocumentType is in default namespace, prefix &quot;xmlns&quot; 
</ins><span class="cx"> PASS Element should have null namespace, prefix null 
</span><span class="cx"> PASS Element should have null namespace, prefix &quot;&quot; 
</span><span class="cx"> PASS Element should not have namespace matching prefix with namespaceURI value 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodelookupNamespaceURIhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-lookupNamespaceURI.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-lookupNamespaceURI.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-lookupNamespaceURI.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -32,8 +32,16 @@
</span><span class="cx"> isDefaultNamespace(frag, 'foo', false, 'DocumentFragment is in default namespace, prefix &quot;foo&quot;');
</span><span class="cx"> isDefaultNamespace(frag, 'xmlns', false, 'DocumentFragment is in default namespace, prefix &quot;xmlns&quot;');
</span><span class="cx"> 
</span><ins>+var docType = document.doctype;
+lookupNamespaceURI(docType, null, null, 'DocumentType should have null nemspace, prefix null');
+lookupNamespaceURI(docType, '', null, 'DocumentType should have null namespace, prefix &quot;&quot;');
+lookupNamespaceURI(docType, 'foo', null, 'DocumentType should have null namespace, prefix &quot;foo&quot;');
+lookupNamespaceURI(docType, 'xmlns', null, 'DocumentType should have null namespace, prefix &quot;xmlns&quot;');
+isDefaultNamespace(docType, null, true, 'DocumentType is in default namespace, prefix null');
+isDefaultNamespace(docType, '', true, 'DocumentType is in default namespace, prefix &quot;&quot;');
+isDefaultNamespace(docType, 'foo', false, 'DocumentType is in default namespace, prefix &quot;foo&quot;');
+isDefaultNamespace(docType, 'xmlns', false, 'DocumentType is in default namespace, prefix &quot;xmlns&quot;');
</ins><span class="cx"> 
</span><del>-
</del><span class="cx"> var fooElem = document.createElementNS('fooNamespace', 'prefix:elem');
</span><span class="cx"> fooElem.setAttribute('bar', 'value');
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -104,6 +104,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-siblingElement-null-xhtml.xhtml
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-siblingElement-null.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-tagName.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-attributes.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-characterData.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-childList.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchOWNERS"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/OWNERS (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/OWNERS        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/OWNERS        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,2 +1,3 @@
</span><span class="cx"> @jdm
</span><span class="cx"> @youennf
</span><ins>+@annevk
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchREADMEmd"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/README.md (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/README.md                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/README.md        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+Tests for the [Fetch Standard](https://fetch.spec.whatwg.org/).
+
+More Fetch tests can be found in
+
+* /cors
+* /XMLHttpRequest
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestreferrerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><span class="cx"> 
</span><del>-PASS Fetch: fetch() respects Request referrer value 
-PASS Fetch: fetch() respects Request referrer value 1 
</del><ins>+PASS about:client referrer 
+PASS url referrer 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestreferrerredirectedworkerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-redirected-worker-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-redirected-worker-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-redirected-worker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+PASS about:client referrer 
+PASS url referrer 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestreferrerredirectedworkerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-redirected-worker.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-redirected-worker.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-redirected-worker.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;meta charset=&quot;utf-8&quot;&gt;
+    &lt;title&gt;Fetch in worker: referrer header&lt;/title&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;script&gt;
+      let finalURL = &quot;/fetch/api/basic/request-referrer.js&quot;;
+      let url = &quot;/fetch/api/resources/redirect.py?location=&quot; +
+                encodeURIComponent(finalURL);
+      fetch_tests_from_worker(new Worker(url));
+    &lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestreferrerworkerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-worker-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-worker-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-worker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+PASS about:client referrer 
+PASS url referrer 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestreferrerworkerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-worker.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-worker.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-worker.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;meta charset=&quot;utf-8&quot;&gt;
+    &lt;title&gt;Fetch in worker: referrer header&lt;/title&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;script&gt;
+      fetch_tests_from_worker(new Worker(&quot;request-referrer.js&quot;));
+    &lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestreferrerjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx">   importScripts(&quot;../resources/utils.js&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function testReferrer(referrer, expected) {
</del><ins>+function testReferrer(referrer, expected, desc) {
</ins><span class="cx">   promise_test(function(test) {
</span><span class="cx">     var url = RESOURCES_DIR + &quot;inspect-headers.py?headers=referer&quot;
</span><span class="cx">     var req = new Request(url, { referrer: referrer });
</span><span class="lines">@@ -17,12 +17,12 @@
</span><span class="cx">         assert_equals(actual, &quot;&quot;, &quot;request's referer should be empty&quot;);
</span><span class="cx">       }
</span><span class="cx">     });
</span><del>-  });
</del><ins>+  }, desc);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-testReferrer(&quot;about:client&quot;, window.location.href);
</del><ins>+testReferrer(&quot;about:client&quot;, self.location.href, 'about:client referrer');
</ins><span class="cx"> 
</span><del>-var fooURL = new URL(&quot;./foo&quot;, window.location).href;
-testReferrer(fooURL, fooURL);
</del><ins>+var fooURL = new URL(&quot;./foo&quot;, self.location).href;
+testReferrer(fooURL, fooURL, 'url referrer');
</ins><span class="cx"> 
</span><span class="cx"> done();
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestuploadexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -10,7 +10,7 @@
</span><span class="cx"> PASS Fetch with POST with Float64Array body 
</span><span class="cx"> PASS Fetch with POST with DataView body 
</span><span class="cx"> PASS Fetch with POST with Blob body with mime type 
</span><del>-FAIL Fetch with POST with ReadableStream promise_test: Unhandled rejection with value: object &quot;TypeError: ReadableStream uploading is not supported&quot;
</del><ins>+FAIL Fetch with POST with ReadableStream assert_equals: expected &quot;Test&quot; but got &quot;&quot;
</ins><span class="cx"> FAIL Fetch with POST with ReadableStream containing String undefined is not an object (evaluating 'promise.then')
</span><span class="cx"> FAIL Fetch with POST with ReadableStream containing null undefined is not an object (evaluating 'promise.then')
</span><span class="cx"> FAIL Fetch with POST with ReadableStream containing number undefined is not an object (evaluating 'promise.then')
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestuploadworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-worker-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-worker-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-worker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -10,7 +10,7 @@
</span><span class="cx"> PASS Fetch with POST with Float64Array body 
</span><span class="cx"> PASS Fetch with POST with DataView body 
</span><span class="cx"> PASS Fetch with POST with Blob body with mime type 
</span><del>-FAIL Fetch with POST with ReadableStream promise_test: Unhandled rejection with value: object &quot;TypeError: ReadableStream uploading is not supported&quot;
</del><ins>+FAIL Fetch with POST with ReadableStream assert_equals: expected &quot;Test&quot; but got &quot;&quot;
</ins><span class="cx"> FAIL Fetch with POST with ReadableStream containing String undefined is not an object (evaluating 'promise.then')
</span><span class="cx"> FAIL Fetch with POST with ReadableStream containing null undefined is not an object (evaluating 'promise.then')
</span><span class="cx"> FAIL Fetch with POST with ReadableStream containing number undefined is not an object (evaluating 'promise.then')
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicrequestuploadjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -3,11 +3,10 @@
</span><span class="cx">   importScripts(&quot;../resources/utils.js&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function testUpload(desc, url, method, body, expectedBody) {
</del><ins>+function testUpload(desc, url, method, createBody, expectedBody) {
</ins><span class="cx">   var requestInit = {&quot;method&quot;: method}
</span><span class="cx">   promise_test(function(test){
</span><del>-    if (typeof body === &quot;function&quot;)
-      body = body();
</del><ins>+    let body = createBody();
</ins><span class="cx">     if (body)
</span><span class="cx">       requestInit[&quot;body&quot;] = body;
</span><span class="cx">     return fetch(url, requestInit).then(function(resp) {
</span><span class="lines">@@ -18,11 +17,10 @@
</span><span class="cx">   }, desc);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function testUploadFailure(desc, url, method, body) {
</del><ins>+function testUploadFailure(desc, url, method, createBody) {
</ins><span class="cx">   const requestInit = {&quot;method&quot;: method};
</span><span class="cx">   promise_test(test =&gt; {
</span><del>-    if (typeof body === &quot;function&quot;)
-      body = body();
</del><ins>+    let body = createBody();
</ins><span class="cx">     if (body)
</span><span class="cx">       requestInit[&quot;body&quot;] = body;
</span><span class="cx">     return promise_rejects(new TypeError(), fetch(url, requestInit));
</span><span class="lines">@@ -31,41 +29,99 @@
</span><span class="cx"> 
</span><span class="cx"> var url = RESOURCES_DIR + &quot;echo-content.py&quot;
</span><span class="cx"> 
</span><del>-testUpload(&quot;Fetch with PUT with body&quot;, url, &quot;PUT&quot;, &quot;Request's body&quot;, &quot;Request's body&quot;);
-testUpload(&quot;Fetch with POST with text body&quot;, url, &quot;POST&quot;, &quot;Request's body&quot;, &quot;Request's body&quot;);
-testUpload(&quot;Fetch with POST with URLSearchParams body&quot;, url, &quot;POST&quot;, function() { return new URLSearchParams(&quot;name=value&quot;); }, &quot;name=value&quot;);
-testUpload(&quot;Fetch with POST with Blob body&quot;, url, &quot;POST&quot;, new Blob([&quot;Test&quot;]), &quot;Test&quot;);
-testUpload(&quot;Fetch with POST with ArrayBuffer body&quot;, url, &quot;POST&quot;, new ArrayBuffer(4), &quot;\0\0\0\0&quot;);
-testUpload(&quot;Fetch with POST with Uint8Array body&quot;, url, &quot;POST&quot;, new Uint8Array(4), &quot;\0\0\0\0&quot;);
-testUpload(&quot;Fetch with POST with Int8Array body&quot;, url, &quot;POST&quot;, new Int8Array(4), &quot;\0\0\0\0&quot;);
-testUpload(&quot;Fetch with POST with Float32Array body&quot;, url, &quot;POST&quot;, new Float32Array(1), &quot;\0\0\0\0&quot;);
-testUpload(&quot;Fetch with POST with Float64Array body&quot;, url, &quot;POST&quot;, new Float64Array(1), &quot;\0\0\0\0\0\0\0\0&quot;);
-testUpload(&quot;Fetch with POST with DataView body&quot;, url, &quot;POST&quot;, new DataView(new ArrayBuffer(8), 0, 4), &quot;\0\0\0\0&quot;);
-testUpload(&quot;Fetch with POST with Blob body with mime type&quot;, url, &quot;POST&quot;, new Blob([&quot;Test&quot;], { type: &quot;text/maybe&quot; }), &quot;Test&quot;);
-testUpload(&quot;Fetch with POST with ReadableStream&quot;, url, &quot;POST&quot;, new ReadableStream({start: controller =&gt; {
-    const encoder = new TextEncoder();
-    controller.enqueue(encoder.encode(&quot;Test&quot;));
-    controller.close();
-  }}), &quot;Test&quot;);
-testUploadFailure(&quot;Fetch with POST with ReadableStream containing String&quot;, url, &quot;POST&quot;, new ReadableStream({start: controller =&gt; {
-    controller.enqueue(&quot;Test&quot;);
-    controller.close();
-  }}));
-testUploadFailure(&quot;Fetch with POST with ReadableStream containing null&quot;, url, &quot;POST&quot;, new ReadableStream({start: controller =&gt; {
-    controller.enqueue(null);
-    controller.close();
-  }}));
-testUploadFailure(&quot;Fetch with POST with ReadableStream containing number&quot;, url, &quot;POST&quot;, new ReadableStream({start: controller =&gt; {
-    controller.enqueue(99);
-    controller.close();
-  }}));
-testUploadFailure(&quot;Fetch with POST with ReadableStream containing ArrayBuffer&quot;, url, &quot;POST&quot;, new ReadableStream({start: controller =&gt; {
-    controller.enqueue(new ArrayBuffer());
-    controller.close();
-  }}));
-testUploadFailure(&quot;Fetch with POST with ReadableStream containing Blob&quot;, url, &quot;POST&quot;, new ReadableStream({start: controller =&gt; {
-    controller.enqueue(new Blob());
-    controller.close();
-  }}));
</del><ins>+testUpload(&quot;Fetch with PUT with body&quot;, url,
+  &quot;PUT&quot;,
+  () =&gt; &quot;Request's body&quot;,
+  &quot;Request's body&quot;);
+testUpload(&quot;Fetch with POST with text body&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; &quot;Request's body&quot;,
+  &quot;Request's body&quot;);
+testUpload(&quot;Fetch with POST with URLSearchParams body&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; new URLSearchParams(&quot;name=value&quot;),
+  &quot;name=value&quot;);
+testUpload(&quot;Fetch with POST with Blob body&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; new Blob([&quot;Test&quot;]),
+  &quot;Test&quot;);
+testUpload(&quot;Fetch with POST with ArrayBuffer body&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; new ArrayBuffer(4),
+  &quot;\0\0\0\0&quot;);
+testUpload(&quot;Fetch with POST with Uint8Array body&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; new Uint8Array(4),
+  &quot;\0\0\0\0&quot;);
+testUpload(&quot;Fetch with POST with Int8Array body&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; new Int8Array(4),
+  &quot;\0\0\0\0&quot;);
+testUpload(&quot;Fetch with POST with Float32Array body&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; new Float32Array(1),
+  &quot;\0\0\0\0&quot;);
+testUpload(&quot;Fetch with POST with Float64Array body&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; new Float64Array(1),
+  &quot;\0\0\0\0\0\0\0\0&quot;);
+testUpload(&quot;Fetch with POST with DataView body&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; new DataView(new ArrayBuffer(8), 0, 4),
+  &quot;\0\0\0\0&quot;);
+testUpload(&quot;Fetch with POST with Blob body with mime type&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; new Blob([&quot;Test&quot;], { type: &quot;text/maybe&quot; }),
+  &quot;Test&quot;);
+testUpload(&quot;Fetch with POST with ReadableStream&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; {
+    new ReadableStream({start: controller =&gt; {
+      const encoder = new TextEncoder();
+      controller.enqueue(encoder.encode(&quot;Test&quot;));
+      controller.close();
+    }})
+  },
+  &quot;Test&quot;);
+testUploadFailure(&quot;Fetch with POST with ReadableStream containing String&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; {
+    new ReadableStream({start: controller =&gt; {
+      controller.enqueue(&quot;Test&quot;);
+      controller.close();
+    }})
+  });
+testUploadFailure(&quot;Fetch with POST with ReadableStream containing null&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; {
+    new ReadableStream({start: controller =&gt; {
+      controller.enqueue(null);
+      controller.close();
+    }})
+  });
+testUploadFailure(&quot;Fetch with POST with ReadableStream containing number&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; {
+    new ReadableStream({start: controller =&gt; {
+      controller.enqueue(99);
+      controller.close();
+    }})
+  });
+testUploadFailure(&quot;Fetch with POST with ReadableStream containing ArrayBuffer&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; {
+    new ReadableStream({start: controller =&gt; {
+      controller.enqueue(new ArrayBuffer());
+      controller.close();
+    }})
+  });
+testUploadFailure(&quot;Fetch with POST with ReadableStream containing Blob&quot;, url,
+  &quot;POST&quot;,
+  () =&gt; {
+    new ReadableStream({start: controller =&gt; {
+      controller.enqueue(new Blob());
+      controller.close();
+    }})
+  });
</ins><span class="cx"> 
</span><span class="cx"> done();
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -42,6 +42,8 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-headers-worker.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.js
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-redirected-worker.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer-worker.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-worker.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsexposestarexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+FAIL Basic Access-Control-Expose-Headers: * support assert_equals: expected (string) &quot;X&quot; but got (object) null
+PASS Cannot use * for credentialed fetches 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsexposestarworkerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-worker-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-worker-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-worker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+FAIL Basic Access-Control-Expose-Headers: * support assert_equals: expected (string) &quot;X&quot; but got (object) null
+PASS Cannot use * for credentialed fetches 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsexposestarworkerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-worker.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-worker.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-worker.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;meta charset=&quot;utf-8&quot;&gt;
+    &lt;title&gt;Fetch in worker: Access-Control-Expose-Headers: *&lt;/title&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;script&gt;
+      fetch_tests_from_worker(new Worker(&quot;cors-expose-star.js?pipe=sub&quot;));
+    &lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsexposestarhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;meta charset=&quot;utf-8&quot;&gt;
+    &lt;title&gt;Fetch: Access-Control-Expose-Headers: *&lt;/title&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;script src=&quot;../resources/utils.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;cors-expose-star.js?pipe=sub&quot;&gt;&lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsexposestarjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.js (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.js                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,31 @@
</span><ins>+if (this.document === undefined) {
+  importScripts(&quot;/resources/testharness.js&quot;);
+  importScripts(&quot;../resources/utils.js&quot;);
+}
+
+const url = &quot;http://{{host}}:{{ports[http][1]}}&quot; + dirname(location.pathname) + RESOURCES_DIR + &quot;top.txt&quot;,
+      sharedHeaders = &quot;?pipe=header(Access-Control-Expose-Headers,*)|header(Test,X)|header(Set-Cookie,X)|&quot;
+
+promise_test(() =&gt; {
+  const headers = &quot;header(Access-Control-Allow-Origin,*)&quot;
+  return fetch(url + sharedHeaders + headers).then(resp =&gt; {
+    assert_equals(resp.status, 200)
+    assert_equals(resp.type , &quot;cors&quot;)
+    assert_equals(resp.headers.get(&quot;test&quot;), &quot;X&quot;)
+    assert_equals(resp.headers.get(&quot;set-cookie&quot;), null)
+  })
+}, &quot;Basic Access-Control-Expose-Headers: * support&quot;)
+
+promise_test(() =&gt; {
+  const origin = location.origin, // assuming an ASCII origin
+        headers = &quot;header(Access-Control-Allow-Origin,&quot; + origin + &quot;)|header(Access-Control-Allow-Credentials,true)&quot;
+  return fetch(url + sharedHeaders + headers, { credentials:&quot;include&quot; }).then(resp =&gt; {
+    assert_equals(resp.status, 200)
+    assert_equals(resp.type , &quot;cors&quot;)
+    assert_equals(resp.headers.get(&quot;content-type&quot;), &quot;text/plain&quot;) // safelisted
+    assert_equals(resp.headers.get(&quot;test&quot;), null)
+    assert_equals(resp.headers.get(&quot;set-cookie&quot;), null)
+  })
+}, &quot;Cannot use * for credentialed fetches&quot;)
+
+done();
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorspreflightstarexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+CONSOLE MESSAGE: Fetch API cannot load http://127.0.0.1:8800/fetch/api/resources/preflight.py?allow_methods=*&amp;allow_headers=x-test&amp;. Method SUPER is not allowed by Access-Control-Allow-Methods.
+CONSOLE MESSAGE: Fetch API cannot load http://127.0.0.1:8800/fetch/api/resources/preflight.py?allow_methods=*&amp;allow_headers=*&amp;. Method OK is not allowed by Access-Control-Allow-Methods.
+CONSOLE MESSAGE: Fetch API cannot load http://127.0.0.1:8800/fetch/api/resources/preflight.py?origin=http://localhost:8800&amp;credentials&amp;allow_methods=*&amp;allow_headers=*&amp;. Method OK is not allowed by Access-Control-Allow-Methods.
+
+PASS CORS that succeeds with credentials: false; method: GET (allowed: get); header: X-Test,1 (allowed: x-test) 
+FAIL CORS that succeeds with credentials: false; method: SUPER (allowed: *); header: X-Test,1 (allowed: x-test) promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL CORS that succeeds with credentials: false; method: OK (allowed: *); header: X-Test,1 (allowed: *) promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+PASS CORS that fails with credentials: true; method: OK (allowed: *); header: X-Test,1 (allowed: *) 
+FAIL CORS that fails with credentials: true; method: GET (allowed: *); header: undefined (allowed: ) assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL CORS that fails with credentials: true; method: GET (allowed: *); header: undefined (allowed: *) assert_unreached: Should have rejected: undefined Reached unreachable code
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorspreflightstarworkerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star-worker-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star-worker-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star-worker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+
+PASS CORS that succeeds with credentials: false; method: GET (allowed: get); header: X-Test,1 (allowed: x-test) 
+FAIL CORS that succeeds with credentials: false; method: SUPER (allowed: *); header: X-Test,1 (allowed: x-test) promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL CORS that succeeds with credentials: false; method: OK (allowed: *); header: X-Test,1 (allowed: *) promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+PASS CORS that fails with credentials: true; method: OK (allowed: *); header: X-Test,1 (allowed: *) 
+FAIL CORS that fails with credentials: true; method: GET (allowed: *); header: undefined (allowed: ) assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL CORS that fails with credentials: true; method: GET (allowed: *); header: undefined (allowed: *) assert_unreached: Should have rejected: undefined Reached unreachable code
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorspreflightstarworkerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star-worker.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star-worker.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star-worker.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;meta charset=&quot;utf-8&quot;&gt;
+    &lt;title&gt;Fetch in worker: CORS preflight with headers using *&lt;/title&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;script&gt;
+      fetch_tests_from_worker(new Worker(&quot;cors-preflight-star.js&quot;));
+    &lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorspreflightstarhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;meta charset=&quot;utf-8&quot;&gt;
+    &lt;title&gt;Fetch: CORS preflight with headers using *&lt;/title&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;script src=&quot;../resources/utils.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/common/get-host-info.sub.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;cors-preflight-star.js&quot;&gt;&lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorspreflightstarjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star.js (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star.js                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,45 @@
</span><ins>+if (this.document === undefined) {
+  importScripts(&quot;/resources/testharness.js&quot;);
+  importScripts(&quot;../resources/utils.js&quot;);
+  importScripts(&quot;/common/get-host-info.sub.js&quot;);
+}
+
+const url = get_host_info().HTTP_REMOTE_ORIGIN + dirname(location.pathname) + RESOURCES_DIR + &quot;preflight.py&quot;,
+      origin = location.origin // assuming an ASCII origin
+
+function preflightTest(succeeds, withCredentials, allowMethod, allowHeader, useMethod, useHeader) {
+  return promise_test(t =&gt; {
+    let testURL = url + &quot;?&quot;,
+        requestInit = {}
+    if (withCredentials) {
+      testURL += &quot;origin=&quot; + origin + &quot;&amp;&quot;
+      testURL += &quot;credentials&amp;&quot;
+      requestInit.credentials = &quot;include&quot;
+    }
+    if (useMethod) {
+      requestInit.method = useMethod
+    }
+    if (useHeader) {
+      requestInit.headers = [useHeader]
+    }
+    testURL += &quot;allow_methods=&quot; + allowMethod + &quot;&amp;&quot;
+    testURL += &quot;allow_headers=&quot; + allowHeader + &quot;&amp;&quot;
+
+    if (succeeds) {
+      return fetch(testURL, requestInit).then(resp =&gt; {
+        assert_equals(resp.headers.get(&quot;x-origin&quot;), origin)
+      })
+    } else {
+      return promise_rejects(t, new TypeError(), fetch(testURL, requestInit))
+    }
+  }, &quot;CORS that &quot; + (succeeds ? &quot;succeeds&quot; : &quot;fails&quot;) + &quot; with credentials: &quot; + withCredentials + &quot;; method: &quot; + useMethod + &quot; (allowed: &quot; + allowMethod + &quot;); header: &quot; + useHeader + &quot; (allowed: &quot; + allowHeader + &quot;)&quot;)
+}
+
+preflightTest(true, false, &quot;get&quot;, &quot;x-test&quot;, &quot;GET&quot;, [&quot;X-Test&quot;, &quot;1&quot;])
+preflightTest(true, false, &quot;*&quot;, &quot;x-test&quot;, &quot;SUPER&quot;, [&quot;X-Test&quot;, &quot;1&quot;])
+preflightTest(true, false, &quot;*&quot;, &quot;*&quot;, &quot;OK&quot;, [&quot;X-Test&quot;, &quot;1&quot;])
+preflightTest(false, true, &quot;*&quot;, &quot;*&quot;, &quot;OK&quot;, [&quot;X-Test&quot;, &quot;1&quot;])
+preflightTest(false, true, &quot;*&quot;, &quot;&quot;, &quot;GET&quot;, undefined)
+preflightTest(false, true, &quot;*&quot;, &quot;*&quot;, &quot;GET&quot;, undefined)
+
+done();
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsredirectcredentialsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,182 +1,67 @@
</span><del>-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=301&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=301&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=301&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=302&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=302&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=302&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=303&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=303&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=303&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=307&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=307&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=307&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1. Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=308&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=308&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/redirect.py?redirect_status=308&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py. Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
</del><span class="cx"> 
</span><del>-PASS Redirect 301 from same origin to remote with user and password 
-PASS Redirect 301 from same origin to remote with user 
-PASS Redirect 301 from same origin to remote with password 
-PASS Redirect 301 from remote to same origin with user and password 
-PASS Redirect 301 from remote to same origin with user 
-PASS Redirect 301 from remote to same origin with password 
-PASS Redirect 301 from remote to same remote with user and password 
-PASS Redirect 301 from remote to same remote with user 
-PASS Redirect 301 from remote to same remote with password 
-PASS Redirect 301 from remote to another remote with user and password 
-PASS Redirect 301 from remote to another remote with user 
-PASS Redirect 301 from remote to another remote with password 
-PASS Redirect 302 from same origin to remote with user and password 
-PASS Redirect 302 from same origin to remote with user 
-PASS Redirect 302 from same origin to remote with password 
-PASS Redirect 302 from remote to same origin with user and password 
-PASS Redirect 302 from remote to same origin with user 
-PASS Redirect 302 from remote to same origin with password 
-PASS Redirect 302 from remote to same remote with user and password 
-PASS Redirect 302 from remote to same remote with user 
-PASS Redirect 302 from remote to same remote with password 
-PASS Redirect 302 from remote to another remote with user and password 
-PASS Redirect 302 from remote to another remote with user 
-PASS Redirect 302 from remote to another remote with password 
-PASS Redirect 303 from same origin to remote with user and password 
-PASS Redirect 303 from same origin to remote with user 
-PASS Redirect 303 from same origin to remote with password 
-PASS Redirect 303 from remote to same origin with user and password 
-PASS Redirect 303 from remote to same origin with user 
-PASS Redirect 303 from remote to same origin with password 
-PASS Redirect 303 from remote to same remote with user and password 
-PASS Redirect 303 from remote to same remote with user 
-PASS Redirect 303 from remote to same remote with password 
-PASS Redirect 303 from remote to another remote with user and password 
-PASS Redirect 303 from remote to another remote with user 
-PASS Redirect 303 from remote to another remote with password 
-PASS Redirect 307 from same origin to remote with user and password 
-PASS Redirect 307 from same origin to remote with user 
-PASS Redirect 307 from same origin to remote with password 
-PASS Redirect 307 from remote to same origin with user and password 
-PASS Redirect 307 from remote to same origin with user 
-PASS Redirect 307 from remote to same origin with password 
-PASS Redirect 307 from remote to same remote with user and password 
-PASS Redirect 307 from remote to same remote with user 
-PASS Redirect 307 from remote to same remote with password 
-PASS Redirect 307 from remote to another remote with user and password 
-PASS Redirect 307 from remote to another remote with user 
-PASS Redirect 307 from remote to another remote with password 
-PASS Redirect 308 from same origin to remote with user and password 
-PASS Redirect 308 from same origin to remote with user 
-PASS Redirect 308 from same origin to remote with password 
-PASS Redirect 308 from remote to same origin with user and password 
-PASS Redirect 308 from remote to same origin with user 
-PASS Redirect 308 from remote to same origin with password 
-PASS Redirect 308 from remote to same remote with user and password 
-PASS Redirect 308 from remote to same remote with user 
-PASS Redirect 308 from remote to same remote with password 
-PASS Redirect 308 from remote to another remote with user and password 
-PASS Redirect 308 from remote to another remote with user 
-PASS Redirect 308 from remote to another remote with password 
</del><ins>+PASS Redirect 301 from same origin to remote without user and password 
+FAIL Redirect 301 from same origin to remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from same origin to remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from same origin to remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to same origin with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to same origin with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to same origin with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to same remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to same remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to same remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to another remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to another remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to another remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+PASS Redirect 302 from same origin to remote without user and password 
+FAIL Redirect 302 from same origin to remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from same origin to remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from same origin to remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to same origin with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to same origin with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to same origin with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to same remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to same remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to same remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to another remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to another remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to another remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+PASS Redirect 303 from same origin to remote without user and password 
+FAIL Redirect 303 from same origin to remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from same origin to remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from same origin to remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to same origin with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to same origin with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to same origin with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to same remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to same remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to same remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to another remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to another remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to another remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+PASS Redirect 307 from same origin to remote without user and password 
+FAIL Redirect 307 from same origin to remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from same origin to remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from same origin to remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to same origin with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to same origin with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to same origin with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to same remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to same remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to same remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to another remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to another remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to another remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+PASS Redirect 308 from same origin to remote without user and password 
+FAIL Redirect 308 from same origin to remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from same origin to remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from same origin to remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to same origin with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to same origin with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to same origin with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to same remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to same remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to same remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to another remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to another remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to another remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsredirectcredentialsworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,122 +1,67 @@
</span><del>-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=301&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=302&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=303&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=307&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3A%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://localhost:8801/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2F%3Apassword%40localhost%3A8801%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2Fuser%3A%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
-CONSOLE MESSAGE: Cross-origin redirection to http://127.0.0.1:8800/fetch/api/resources/preflight.py?redirect_status=308&amp;location=http%3A%2F%2F%3Apassword%40127.0.0.1%3A8800%2Ffetch%2Fapi%2Fcors%2F..%2Fresources%2Fpreflight.py&amp;count=1 denied by Cross-Origin Resource Sharing policy: Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.
</del><span class="cx"> 
</span><del>-PASS Redirect 301 from same origin to remote with user and password 
-PASS Redirect 301 from same origin to remote with user 
-PASS Redirect 301 from same origin to remote with password 
-PASS Redirect 301 from remote to same origin with user and password 
-PASS Redirect 301 from remote to same origin with user 
-PASS Redirect 301 from remote to same origin with password 
-PASS Redirect 301 from remote to same remote with user and password 
-PASS Redirect 301 from remote to same remote with user 
-PASS Redirect 301 from remote to same remote with password 
-PASS Redirect 301 from remote to another remote with user and password 
-PASS Redirect 301 from remote to another remote with user 
-PASS Redirect 301 from remote to another remote with password 
-PASS Redirect 302 from same origin to remote with user and password 
-PASS Redirect 302 from same origin to remote with user 
-PASS Redirect 302 from same origin to remote with password 
-PASS Redirect 302 from remote to same origin with user and password 
-PASS Redirect 302 from remote to same origin with user 
-PASS Redirect 302 from remote to same origin with password 
-PASS Redirect 302 from remote to same remote with user and password 
-PASS Redirect 302 from remote to same remote with user 
-PASS Redirect 302 from remote to same remote with password 
-PASS Redirect 302 from remote to another remote with user and password 
-PASS Redirect 302 from remote to another remote with user 
-PASS Redirect 302 from remote to another remote with password 
-PASS Redirect 303 from same origin to remote with user and password 
-PASS Redirect 303 from same origin to remote with user 
-PASS Redirect 303 from same origin to remote with password 
-PASS Redirect 303 from remote to same origin with user and password 
-PASS Redirect 303 from remote to same origin with user 
-PASS Redirect 303 from remote to same origin with password 
-PASS Redirect 303 from remote to same remote with user and password 
-PASS Redirect 303 from remote to same remote with user 
-PASS Redirect 303 from remote to same remote with password 
-PASS Redirect 303 from remote to another remote with user and password 
-PASS Redirect 303 from remote to another remote with user 
-PASS Redirect 303 from remote to another remote with password 
-PASS Redirect 307 from same origin to remote with user and password 
-PASS Redirect 307 from same origin to remote with user 
-PASS Redirect 307 from same origin to remote with password 
-PASS Redirect 307 from remote to same origin with user and password 
-PASS Redirect 307 from remote to same origin with user 
-PASS Redirect 307 from remote to same origin with password 
-PASS Redirect 307 from remote to same remote with user and password 
-PASS Redirect 307 from remote to same remote with user 
-PASS Redirect 307 from remote to same remote with password 
-PASS Redirect 307 from remote to another remote with user and password 
-PASS Redirect 307 from remote to another remote with user 
-PASS Redirect 307 from remote to another remote with password 
-PASS Redirect 308 from same origin to remote with user and password 
-PASS Redirect 308 from same origin to remote with user 
-PASS Redirect 308 from same origin to remote with password 
-PASS Redirect 308 from remote to same origin with user and password 
-PASS Redirect 308 from remote to same origin with user 
-PASS Redirect 308 from remote to same origin with password 
-PASS Redirect 308 from remote to same remote with user and password 
-PASS Redirect 308 from remote to same remote with user 
-PASS Redirect 308 from remote to same remote with password 
-PASS Redirect 308 from remote to another remote with user and password 
-PASS Redirect 308 from remote to another remote with user 
-PASS Redirect 308 from remote to another remote with password 
</del><ins>+PASS Redirect 301 from same origin to remote without user and password 
+FAIL Redirect 301 from same origin to remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from same origin to remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from same origin to remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to same origin with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to same origin with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to same origin with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to same remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to same remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to same remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to another remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to another remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 301 from remote to another remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+PASS Redirect 302 from same origin to remote without user and password 
+FAIL Redirect 302 from same origin to remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from same origin to remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from same origin to remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to same origin with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to same origin with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to same origin with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to same remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to same remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to same remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to another remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to another remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 302 from remote to another remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+PASS Redirect 303 from same origin to remote without user and password 
+FAIL Redirect 303 from same origin to remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from same origin to remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from same origin to remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to same origin with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to same origin with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to same origin with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to same remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to same remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to same remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to another remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to another remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 303 from remote to another remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+PASS Redirect 307 from same origin to remote without user and password 
+FAIL Redirect 307 from same origin to remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from same origin to remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from same origin to remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to same origin with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to same origin with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to same origin with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to same remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to same remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to same remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to another remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to another remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 307 from remote to another remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+PASS Redirect 308 from same origin to remote without user and password 
+FAIL Redirect 308 from same origin to remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from same origin to remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from same origin to remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to same origin with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to same origin with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to same origin with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to same remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to same remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to same remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to another remote with user and password assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to another remote with user assert_unreached: Should have rejected: undefined Reached unreachable code
+FAIL Redirect 308 from remote to another remote with password assert_unreached: Should have rejected: undefined Reached unreachable code
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsredirectcredentialsjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-credentials.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-credentials.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-credentials.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -5,15 +5,19 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> function corsRedirectCredentials(desc, redirectUrl, redirectLocation, redirectStatus, locationCredentials) {
</span><del>-
</del><span class="cx">   var url = redirectUrl
</span><span class="cx">   var urlParameters = &quot;?redirect_status=&quot; + redirectStatus;
</span><del>-  urlParameters += &quot;&amp;location=&quot; + encodeURIComponent(redirectLocation.replace(&quot;://&quot;, &quot;://&quot; + locationCredentials + &quot;@&quot;));
</del><ins>+  urlParameters += &quot;&amp;location=&quot; + redirectLocation.replace(&quot;://&quot;, &quot;://&quot; + locationCredentials + &quot;@&quot;);
</ins><span class="cx"> 
</span><del>-  var requestInit = {&quot;mode&quot;: &quot;cors&quot;, &quot;redirect&quot;: &quot;follow&quot;, &quot;credentials&quot;:&quot;include&quot;};
</del><ins>+  var requestInit = {&quot;mode&quot;: &quot;cors&quot;, &quot;redirect&quot;: &quot;follow&quot;};
</ins><span class="cx"> 
</span><del>-  promise_test(function(test) {
-    return promise_rejects(test, new TypeError(), fetch(url + urlParameters, requestInit));
</del><ins>+  promise_test(t =&gt; {
+    const result = fetch(url + urlParameters, requestInit)
+    if(locationCredentials === &quot;&quot;) {
+      return result;
+    } else {
+      return promise_rejects(t, new TypeError(), result);
+    }
</ins><span class="cx">   }, desc);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -30,6 +34,8 @@
</span><span class="cx"> var remoteLocation2 = host_info.HTTP_REMOTE_ORIGIN + preflightPath;
</span><span class="cx"> 
</span><span class="cx"> for (var code of [301, 302, 303, 307, 308]) {
</span><ins>+  corsRedirectCredentials(&quot;Redirect &quot; + code + &quot; from same origin to remote without user and password&quot;, localRedirect, remoteLocation, code, &quot;&quot;);
+
</ins><span class="cx">   corsRedirectCredentials(&quot;Redirect &quot; + code + &quot; from same origin to remote with user and password&quot;, localRedirect, remoteLocation, code, &quot;user:password&quot;);
</span><span class="cx">   corsRedirectCredentials(&quot;Redirect &quot; + code + &quot; from same origin to remote with user&quot;, localRedirect, remoteLocation, code, &quot;user:&quot;);
</span><span class="cx">   corsRedirectCredentials(&quot;Redirect &quot; + code + &quot; from same origin to remote with password&quot;, localRedirect, remoteLocation, code, &quot;:password&quot;);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -21,6 +21,9 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies-worker.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies.js
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-worker.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.js
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-filtering-worker.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-filtering.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-filtering.js
</span><span class="lines">@@ -39,6 +42,9 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-referrer.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-referrer.js
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star-worker.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star.js
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-status-worker.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-status.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-status.js
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiheadersheaderscombinehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-combine.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-combine.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-combine.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -25,8 +25,7 @@
</span><span class="cx">       test(function() {
</span><span class="cx">         var headers = new Headers(headerSeqCombine);
</span><span class="cx">         for (name in expectedDict)
</span><del>-          assert_equals(headers.get(name), expectedDict[name],
-              &quot;name: &quot; + name + &quot; has value: &quot; + expectedDict[name]);
</del><ins>+          assert_equals(headers.get(name), expectedDict[name]);
</ins><span class="cx">       }, &quot;Create headers using same name for different values&quot;);
</span><span class="cx"> 
</span><span class="cx">       test(function() {
</span><span class="lines">@@ -51,8 +50,7 @@
</span><span class="cx">         for (name in expectedDict) {
</span><span class="cx">           var value = headers.get(name);
</span><span class="cx">           headers.append(name,&quot;newSingleValue&quot;);
</span><del>-          assert_equals(headers.get(name), (value + &quot;, &quot; + &quot;newSingleValue&quot;),
-            &quot;name: &quot; + name + &quot; has value: &quot; + headers.get(name));
</del><ins>+          assert_equals(headers.get(name), (value + &quot;, &quot; + &quot;newSingleValue&quot;));
</ins><span class="cx">         }
</span><span class="cx">       }, &quot;Check append methods when called with already used name&quot;);
</span><span class="cx">     &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiheadersheadersrecordexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-record-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-record-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-record-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+
+PASS Passing nothing to Headers constructor 
+PASS Passing undefined to Headers constructor 
+PASS Passing null to Headers constructor 
+FAIL Basic operation with one property assert_equals: expected 4 but got 3
+FAIL Basic operation with one property and a proto assert_equals: expected 4 but got 3
+FAIL Correct operation ordering with two properties assert_equals: expected 6 but got 4
+FAIL Correct operation ordering with two properties one of which has an invalid name assert_equals: expected 5 but got 4
+FAIL Correct operation ordering with two properties one of which has an invalid value assert_equals: expected 4 but got 3
+FAIL Correct operation ordering with non-enumerable properties assert_equals: expected 6 but got 5
+FAIL Correct operation ordering with undefined descriptors assert_equals: expected 6 but got 5
+FAIL Correct operation ordering with repeated keys assert_equals: expected 9 but got 6
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiheadersheadersrecordhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-record.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-record.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-record.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,311 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;script&gt;
+var log = [];
+function clearLog() {
+  log = [];
+}
+function addLogEntry(name, args) {
+  log.push([ name, ...args ]);
+}
+
+var loggingHandler = {
+};
+
+setup(function() {
+  for (let prop of Object.getOwnPropertyNames(Reflect)) {
+    loggingHandler[prop] = function(...args) {
+      addLogEntry(prop, args);
+      return Reflect[prop](...args);
+    }
+  }
+});
+
+test(function() {
+  var h = new Headers();
+  assert_equals([...h].length, 0);
+}, &quot;Passing nothing to Headers constructor&quot;);
+
+test(function() {
+  var h = new Headers(undefined);
+  assert_equals([...h].length, 0);
+}, &quot;Passing undefined to Headers constructor&quot;);
+
+test(function() {
+  assert_throws(new TypeError, function() {
+    var h = new Headers(null);
+  });
+}, &quot;Passing null to Headers constructor&quot;);
+
+test(function() {
+  this.add_cleanup(clearLog);
+  var record = { a: &quot;b&quot; };
+  var proxy = new Proxy(record, loggingHandler);
+  var h = new Headers(proxy);
+
+  assert_equals(log.length, 4);
+  // The first thing is the [[Get]] of Symbol.iterator to figure out whether
+  // we're a sequence, during overload resolution.
+  assert_array_equals(log[0], [&quot;get&quot;, record, Symbol.iterator, proxy]);
+  // Then we have the [[OwnPropertyKeys]] from
+  // https://heycam.github.io/webidl/#es-to-record step 4.
+  assert_array_equals(log[1], [&quot;ownKeys&quot;, record]);
+  // Then the [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[2], [&quot;getOwnPropertyDescriptor&quot;, record, &quot;a&quot;]);
+  // Then the [[Get]] from step 5.2.
+  assert_array_equals(log[3], [&quot;get&quot;, record, &quot;a&quot;, proxy]);
+
+  // Check the results.
+  assert_equals([...h].length, 1);
+  assert_array_equals([...h.keys()], [&quot;a&quot;]);
+  assert_true(h.has(&quot;a&quot;));
+  assert_equals(h.get(&quot;a&quot;), &quot;b&quot;);
+}, &quot;Basic operation with one property&quot;);
+
+test(function() {
+  this.add_cleanup(clearLog);
+  var recordProto = { c: &quot;d&quot; };
+  var record = Object.create(recordProto, { a: { value: &quot;b&quot;, enumerable: true } });
+  var proxy = new Proxy(record, loggingHandler);
+  var h = new Headers(proxy);
+
+  assert_equals(log.length, 4);
+  // The first thing is the [[Get]] of Symbol.iterator to figure out whether
+  // we're a sequence, during overload resolution.
+  assert_array_equals(log[0], [&quot;get&quot;, record, Symbol.iterator, proxy]);
+  // Then we have the [[OwnPropertyKeys]] from
+  // https://heycam.github.io/webidl/#es-to-record step 4.
+  assert_array_equals(log[1], [&quot;ownKeys&quot;, record]);
+  // Then the [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[2], [&quot;getOwnPropertyDescriptor&quot;, record, &quot;a&quot;]);
+  // Then the [[Get]] from step 5.2.
+  assert_array_equals(log[3], [&quot;get&quot;, record, &quot;a&quot;, proxy]);
+
+  // Check the results.
+  assert_equals([...h].length, 1);
+  assert_array_equals([...h.keys()], [&quot;a&quot;]);
+  assert_true(h.has(&quot;a&quot;));
+  assert_equals(h.get(&quot;a&quot;), &quot;b&quot;);
+}, &quot;Basic operation with one property and a proto&quot;);
+
+test(function() {
+  this.add_cleanup(clearLog);
+  var record = { a: &quot;b&quot;, c: &quot;d&quot; };
+  var proxy = new Proxy(record, loggingHandler);
+  var h = new Headers(proxy);
+
+  assert_equals(log.length, 6);
+  // The first thing is the [[Get]] of Symbol.iterator to figure out whether
+  // we're a sequence, during overload resolution.
+  assert_array_equals(log[0], [&quot;get&quot;, record, Symbol.iterator, proxy]);
+  // Then we have the [[OwnPropertyKeys]] from
+  // https://heycam.github.io/webidl/#es-to-record step 4.
+  assert_array_equals(log[1], [&quot;ownKeys&quot;, record]);
+  // Then the [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[2], [&quot;getOwnPropertyDescriptor&quot;, record, &quot;a&quot;]);
+  // Then the [[Get]] from step 5.2.
+  assert_array_equals(log[3], [&quot;get&quot;, record, &quot;a&quot;, proxy]);
+  // Then the second [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[4], [&quot;getOwnPropertyDescriptor&quot;, record, &quot;c&quot;]);
+  // Then the second [[Get]] from step 5.2.
+  assert_array_equals(log[5], [&quot;get&quot;, record, &quot;c&quot;, proxy]);
+
+  // Check the results.
+  assert_equals([...h].length, 2);
+  assert_array_equals([...h.keys()], [&quot;a&quot;, &quot;c&quot;]);
+  assert_true(h.has(&quot;a&quot;));
+  assert_equals(h.get(&quot;a&quot;), &quot;b&quot;);
+  assert_true(h.has(&quot;c&quot;));
+  assert_equals(h.get(&quot;c&quot;), &quot;d&quot;);
+}, &quot;Correct operation ordering with two properties&quot;);
+
+test(function() {
+  this.add_cleanup(clearLog);
+  var record = { a: &quot;b&quot;, &quot;\uFFFF&quot;: &quot;d&quot; };
+  var proxy = new Proxy(record, loggingHandler);
+  assert_throws(new TypeError, function() {
+    var h = new Headers(proxy);
+  });
+
+  assert_equals(log.length, 5);
+  // The first thing is the [[Get]] of Symbol.iterator to figure out whether
+  // we're a sequence, during overload resolution.
+  assert_array_equals(log[0], [&quot;get&quot;, record, Symbol.iterator, proxy]);
+  // Then we have the [[OwnPropertyKeys]] from
+  // https://heycam.github.io/webidl/#es-to-record step 4.
+  assert_array_equals(log[1], [&quot;ownKeys&quot;, record]);
+  // Then the [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[2], [&quot;getOwnPropertyDescriptor&quot;, record, &quot;a&quot;]);
+  // Then the [[Get]] from step 5.2.
+  assert_array_equals(log[3], [&quot;get&quot;, record, &quot;a&quot;, proxy]);
+  // Then the second [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[4], [&quot;getOwnPropertyDescriptor&quot;, record, &quot;\uFFFF&quot;]);
+  // The second [[Get]] never happens, because we convert the invalid name to a
+  // ByteString first and throw.
+}, &quot;Correct operation ordering with two properties one of which has an invalid name&quot;);
+
+test(function() {
+  this.add_cleanup(clearLog);
+  var record = { a: &quot;\uFFFF&quot;, c: &quot;d&quot; }
+  var proxy = new Proxy(record, loggingHandler);
+  assert_throws(new TypeError, function() {
+    var h = new Headers(proxy);
+  });
+
+  assert_equals(log.length, 4);
+  // The first thing is the [[Get]] of Symbol.iterator to figure out whether
+  // we're a sequence, during overload resolution.
+  assert_array_equals(log[0], [&quot;get&quot;, record, Symbol.iterator, proxy]);
+  // Then we have the [[OwnPropertyKeys]] from
+  // https://heycam.github.io/webidl/#es-to-record step 4.
+  assert_array_equals(log[1], [&quot;ownKeys&quot;, record]);
+  // Then the [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[2], [&quot;getOwnPropertyDescriptor&quot;, record, &quot;a&quot;]);
+  // Then the [[Get]] from step 5.2.
+  assert_array_equals(log[3], [&quot;get&quot;, record, &quot;a&quot;, proxy]);
+  // Nothing else after this, because converting the result of that [[Get]] to a
+  // ByteString throws.
+}, &quot;Correct operation ordering with two properties one of which has an invalid value&quot;);
+
+test(function() {
+  this.add_cleanup(clearLog);
+  var record = {};
+  Object.defineProperty(record, &quot;a&quot;, { value: &quot;b&quot;, enumerable: false });
+  Object.defineProperty(record, &quot;c&quot;, { value: &quot;d&quot;, enumerable: true });
+  Object.defineProperty(record, &quot;e&quot;, { value: &quot;f&quot;, enumerable: false });
+  var proxy = new Proxy(record, loggingHandler);
+  var h = new Headers(proxy);
+
+  assert_equals(log.length, 6);
+  // The first thing is the [[Get]] of Symbol.iterator to figure out whether
+  // we're a sequence, during overload resolution.
+  assert_array_equals(log[0], [&quot;get&quot;, record, Symbol.iterator, proxy]);
+  // Then we have the [[OwnPropertyKeys]] from
+  // https://heycam.github.io/webidl/#es-to-record step 4.
+  assert_array_equals(log[1], [&quot;ownKeys&quot;, record]);
+  // Then the [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[2], [&quot;getOwnPropertyDescriptor&quot;, record, &quot;a&quot;]);
+  // No [[Get]] because not enumerable
+  // Then the second [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[3], [&quot;getOwnPropertyDescriptor&quot;, record, &quot;c&quot;]);
+  // Then the [[Get]] from step 5.2.
+  assert_array_equals(log[4], [&quot;get&quot;, record, &quot;c&quot;, proxy]);
+  // Then the third [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[5], [&quot;getOwnPropertyDescriptor&quot;, record, &quot;e&quot;]);
+  // No [[Get]] because not enumerable
+
+  // Check the results.
+  assert_equals([...h].length, 1);
+  assert_array_equals([...h.keys()], [&quot;c&quot;]);
+  assert_true(h.has(&quot;c&quot;));
+  assert_equals(h.get(&quot;c&quot;), &quot;d&quot;);
+}, &quot;Correct operation ordering with non-enumerable properties&quot;);
+
+test(function() {
+  this.add_cleanup(clearLog);
+  var record = {a: &quot;b&quot;, c: &quot;d&quot;, e: &quot;f&quot;};
+  var lyingHandler = {
+    getOwnPropertyDescriptor: function(target, name) {
+      if (name == &quot;a&quot; || name == &quot;e&quot;) {
+        return undefined;
+      }
+      return Reflect.getOwnPropertyDescriptor(target, name);
+    }
+  };
+  var lyingProxy = new Proxy(record, lyingHandler);
+  var proxy = new Proxy(lyingProxy, loggingHandler);
+  var h = new Headers(proxy);
+
+  assert_equals(log.length, 6);
+  // The first thing is the [[Get]] of Symbol.iterator to figure out whether
+  // we're a sequence, during overload resolution.
+  assert_array_equals(log[0], [&quot;get&quot;, lyingProxy, Symbol.iterator, proxy]);
+  // Then we have the [[OwnPropertyKeys]] from
+  // https://heycam.github.io/webidl/#es-to-record step 4.
+  assert_array_equals(log[1], [&quot;ownKeys&quot;, lyingProxy]);
+  // Then the [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[2], [&quot;getOwnPropertyDescriptor&quot;, lyingProxy, &quot;a&quot;]);
+  // No [[Get]] because no descriptor
+  // Then the second [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[3], [&quot;getOwnPropertyDescriptor&quot;, lyingProxy, &quot;c&quot;]);
+  // Then the [[Get]] from step 5.2.
+  assert_array_equals(log[4], [&quot;get&quot;, lyingProxy, &quot;c&quot;, proxy]);
+  // Then the third [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[5], [&quot;getOwnPropertyDescriptor&quot;, lyingProxy, &quot;e&quot;]);
+  // No [[Get]] because no descriptor
+
+  // Check the results.
+  assert_equals([...h].length, 1);
+  assert_array_equals([...h.keys()], [&quot;c&quot;]);
+  assert_true(h.has(&quot;c&quot;));
+  assert_equals(h.get(&quot;c&quot;), &quot;d&quot;);
+}, &quot;Correct operation ordering with undefined descriptors&quot;);
+
+test(function() {
+  this.add_cleanup(clearLog);
+  var record = {a: &quot;b&quot;, c: &quot;d&quot;};
+  var lyingHandler = {
+    ownKeys: function() {
+      return [ &quot;a&quot;, &quot;c&quot;, &quot;a&quot;, &quot;c&quot; ];
+    },
+    getCalls: 0,
+    gotCOnce: false,
+    get: function(target, name, receiver) {
+      if (name == &quot;c&quot;) {
+        this.gotCOnce = true;
+      }
+      if (typeof name == &quot;string&quot;) {
+        return ++this.getCalls;
+      }
+      return Reflect.get(target, name, receiver);
+    },
+    getOwnPropertyDescriptor: function(target, name) {
+      var desc = Reflect.getOwnPropertyDescriptor(target, name);
+      if (name == &quot;c&quot; &amp;&amp; this.gotCOnce) {
+        desc.enumerable = false;
+      }
+      return desc;
+    }
+  };
+  var lyingProxy = new Proxy(record, lyingHandler);
+  var proxy = new Proxy(lyingProxy, loggingHandler);
+  var h = new Headers(proxy);
+
+  assert_equals(log.length, 9);
+  // The first thing is the [[Get]] of Symbol.iterator to figure out whether
+  // we're a sequence, during overload resolution.
+  assert_array_equals(log[0], [&quot;get&quot;, lyingProxy, Symbol.iterator, proxy]);
+  // Then we have the [[OwnPropertyKeys]] from
+  // https://heycam.github.io/webidl/#es-to-record step 4.
+  assert_array_equals(log[1], [&quot;ownKeys&quot;, lyingProxy]);
+  // Then the [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[2], [&quot;getOwnPropertyDescriptor&quot;, lyingProxy, &quot;a&quot;]);
+  // Then the [[Get]] from step 5.2.
+  assert_array_equals(log[3], [&quot;get&quot;, lyingProxy, &quot;a&quot;, proxy]);
+  // Then the second [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[4], [&quot;getOwnPropertyDescriptor&quot;, lyingProxy, &quot;c&quot;]);
+  // Then the second [[Get]] from step 5.2.
+  assert_array_equals(log[5], [&quot;get&quot;, lyingProxy, &quot;c&quot;, proxy]);
+  // Then the third [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[6], [&quot;getOwnPropertyDescriptor&quot;, lyingProxy, &quot;a&quot;]);
+  // Then the third [[Get]] from step 5.2.
+  assert_array_equals(log[7], [&quot;get&quot;, lyingProxy, &quot;a&quot;, proxy]);
+  // Then the fourth [[GetOwnProperty]] from step 5.1.
+  assert_array_equals(log[8], [&quot;getOwnPropertyDescriptor&quot;, lyingProxy, &quot;c&quot;]);
+  // No [[Get]] because not enumerable.
+
+  // Check the results.
+  assert_equals([...h].length, 2);
+  assert_array_equals([...h.keys()], [&quot;a&quot;, &quot;c&quot;]);
+  assert_true(h.has(&quot;a&quot;));
+  assert_equals(h.get(&quot;a&quot;), &quot;3&quot;);
+  assert_true(h.has(&quot;c&quot;));
+  assert_equals(h.get(&quot;c&quot;), &quot;2&quot;);
+}, &quot;Correct operation ordering with repeated keys&quot;);
+
+// Need to add symbol tests, but those are pending
+// https://github.com/heycam/webidl/issues/294 being resolved.
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiheadersw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -23,4 +23,5 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-errors.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-idl.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-normalize.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-record.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-structure.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesnestedpolicyjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/nested-policy.js (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/nested-policy.js                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/nested-policy.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+// empty, but referrer-policy set on this file
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesnestedpolicyjsheaders"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/nested-policy.js.headers (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/nested-policy.js.headers                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/nested-policy.js.headers        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+Referrer-Policy: no-referrer
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferrernoreferrerserviceworkerhttpsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL Fetch in service worker: referrer with no-referrer policy undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferrernoreferrerserviceworkerhttpshtmlfromrev213880trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https.html (from rev 213880, trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;meta charset=&quot;utf-8&quot;&gt;
+    &lt;title&gt;Fetch in service worker: referrer with no-referrer policy&lt;/title&gt;
+    &lt;meta name=&quot;help&quot; href=&quot;https://fetch.spec.whatwg.org/#main-fetch&quot;&gt;
+    &lt;meta name=&quot;help&quot; href=&quot;https://fetch.spec.whatwg.org/#http-network-or-cache-fetch&quot;&gt;
+    &lt;meta name=&quot;author&quot; title=&quot;Canon Research France&quot; href=&quot;https://www.crf.canon.fr&quot;&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/service-workers/service-worker/resources/test-helpers.sub.js&quot;&gt;&lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;script&gt;
+      service_worker_test(&quot;referrer-no-referrer.js?pipe=sub&quot;);
+    &lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginserviceworkerhttpsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL Fetch in service worker: referrer with no-referrer policy undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginserviceworkerhttpshtmlfromrev213880trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https.html (from rev 213880, trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;meta charset=&quot;utf-8&quot;&gt;
+    &lt;title&gt;Fetch in service worker: referrer with no-referrer policy&lt;/title&gt;
+    &lt;meta name=&quot;help&quot; href=&quot;https://fetch.spec.whatwg.org/#main-fetch&quot;&gt;
+    &lt;meta name=&quot;help&quot; href=&quot;https://fetch.spec.whatwg.org/#http-network-or-cache-fetch&quot;&gt;
+    &lt;meta name=&quot;author&quot; title=&quot;Canon Research France&quot; href=&quot;https://www.crf.canon.fr&quot;&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/service-workers/service-worker/resources/test-helpers.sub.js&quot;&gt;&lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;script&gt;
+      service_worker_test(&quot;referrer-origin.js?pipe=sub&quot;);
+    &lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginwhencrossoriginexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,5 @@
</span><ins>+Blocked access to external URL https://www.localhost:9443/fetch/api/resources/inspect-headers.py?cors&amp;headers=referer
+CONSOLE MESSAGE: line 1: Fetch API cannot load https://www.localhost:9443/fetch/api/resources/inspect-headers.py?cors&amp;headers=referer due to access control checks.
</ins><span class="cx"> 
</span><del>-FAIL Request's referrer is origin assert_equals: request's referrer is http://localhost:8800/ expected &quot;http://localhost:8800/&quot; but got &quot;http://localhost:8800/fetch/api/policies/referrer-origin-when-cross-origin.html&quot;
</del><ins>+FAIL Request's referrer is origin promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginwhencrossoriginserviceworkerhttpsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL Fetch in service worker: referrer with origin-when-cross-origin policy undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginwhencrossoriginserviceworkerhttpshtmlfromrev213880trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https.html (from rev 213880, trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;meta charset=&quot;utf-8&quot;&gt;
+    &lt;title&gt;Fetch in service worker: referrer with origin-when-cross-origin policy&lt;/title&gt;
+    &lt;meta name=&quot;help&quot; href=&quot;https://fetch.spec.whatwg.org/#main-fetch&quot;&gt;
+    &lt;meta name=&quot;help&quot; href=&quot;https://fetch.spec.whatwg.org/#http-network-or-cache-fetch&quot;&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/service-workers/service-worker/resources/test-helpers.sub.js&quot;&gt;&lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;script&gt;
+      service_worker_test(&quot;referrer-origin-when-cross-origin.js?pipe=sub&quot;);
+    &lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginwhencrossoriginworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-worker-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-worker-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-worker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,4 @@
</span><ins>+Blocked access to external URL https://www.localhost:9443/fetch/api/resources/inspect-headers.py?cors&amp;headers=referer
</ins><span class="cx"> 
</span><del>-FAIL Request's referrer is origin assert_equals: request's referrer is http://localhost:8800/ expected &quot;http://localhost:8800/&quot; but got &quot;http://localhost:8800/fetch/api/policies/referrer-origin-when-cross-origin.js?pipe=sub&quot;
</del><ins>+FAIL Request's referrer is origin promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginwhencrossoriginjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,10 +1,14 @@
</span><span class="cx"> if (this.document === undefined) {
</span><span class="cx">   importScripts(&quot;/resources/testharness.js&quot;);
</span><span class="cx">   importScripts(&quot;../resources/utils.js&quot;);
</span><ins>+
+  // A nested importScripts() with a referrer-policy should have no effect
+  // on overall worker policy.
+  importScripts(&quot;nested-policy.js&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-var referrerOrigin = &quot;http://{{host}}:{{ports[http][0]}}/&quot;;
-var fetchedUrl = &quot;http://{{host}}:{{ports[http][1]}}&quot; + dirname(location.pathname) + RESOURCES_DIR + &quot;inspect-headers.py?cors&amp;headers=referer&quot;;
</del><ins>+var referrerOrigin = location.origin + '/';
+var fetchedUrl = &quot;https://{{domains[www]}}:{{ports[https][0]}}&quot; + dirname(location.pathname) + RESOURCES_DIR + &quot;inspect-headers.py?cors&amp;headers=referer&quot;;
</ins><span class="cx"> 
</span><span class="cx"> promise_test(function(test) {
</span><span class="cx">   return fetch(fetchedUrl).then(function(resp) {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -13,4 +13,4 @@
</span><span class="cx">     &lt;script src=&quot;../resources/utils.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;referrer-origin.js?pipe=sub&quot;&gt;&lt;/script&gt;
</span><span class="cx">   &lt;/body&gt;
</span><del>-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,9 +1,13 @@
</span><span class="cx"> if (this.document === undefined) {
</span><span class="cx">   importScripts(&quot;/resources/testharness.js&quot;);
</span><span class="cx">   importScripts(&quot;../resources/utils.js&quot;);
</span><ins>+
+  // A nested importScripts() with a referrer-policy should have no effect
+  // on overall worker policy.
+  importScripts(&quot;nested-policy.js&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-var referrerOrigin = &quot;http://{{host}}:{{ports[http][0]}}/&quot;;
</del><ins>+var referrerOrigin = (new URL(&quot;/&quot;, location.href)).href;
</ins><span class="cx"> var fetchedUrl = RESOURCES_DIR + &quot;inspect-headers.py?headers=referer&quot;;
</span><span class="cx"> 
</span><span class="cx"> promise_test(function(test) {
</span><span class="lines">@@ -15,7 +19,7 @@
</span><span class="cx"> }, &quot;Request's referrer is origin&quot;);
</span><span class="cx"> 
</span><span class="cx"> promise_test(function(test) {
</span><del>-  var referrerUrl = &quot;http://{{domains[www]}}:{{ports[http][0]}}/&quot;;
</del><ins>+  var referrerUrl = &quot;https://{{domains[www]}}:{{ports[https][0]}}/&quot;;
</ins><span class="cx">   return fetch(fetchedUrl, { &quot;referrer&quot;: referrerUrl }).then(function(resp) {
</span><span class="cx">     assert_equals(resp.status, 200, &quot;HTTP status is 200&quot;);
</span><span class="cx">     assert_equals(resp.type , &quot;basic&quot;, &quot;Response's type is basic&quot;);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferrerunsafeurlserviceworkerhttpsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL Fetch in worker: referrer with unsafe-url policy undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferrerunsafeurlserviceworkerhttpshtmlfromrev213880trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferreroriginhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https.html (from rev 213880, trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;meta charset=&quot;utf-8&quot;&gt;
+    &lt;title&gt;Fetch in worker: referrer with unsafe-url policy&lt;/title&gt;
+    &lt;meta name=&quot;help&quot; href=&quot;https://fetch.spec.whatwg.org/#main-fetch&quot;&gt;
+    &lt;meta name=&quot;help&quot; href=&quot;https://fetch.spec.whatwg.org/#http-network-or-cache-fetch&quot;&gt;
+    &lt;meta name=&quot;author&quot; title=&quot;Canon Research France&quot; href=&quot;https://www.crf.canon.fr&quot;&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/service-workers/service-worker/resources/test-helpers.sub.js&quot;&gt;&lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;script&gt;
+      service_worker_test(&quot;referrer-unsafe-url.js?pipe=sub&quot;);
+    &lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesreferrerunsafeurljs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,6 +1,10 @@
</span><span class="cx"> if (this.document === undefined) {
</span><span class="cx">   importScripts(&quot;/resources/testharness.js&quot;);
</span><span class="cx">   importScripts(&quot;../resources/utils.js&quot;);
</span><ins>+
+  // A nested importScripts() with a referrer-policy should have no effect
+  // on overall worker policy.
+  importScripts(&quot;nested-policy.js&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> var referrerUrl = location.href;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapipoliciesw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -20,11 +20,16 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/csp-blocked.html.headers
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/csp-blocked.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/csp-blocked.js.headers
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/nested-policy.js
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/nested-policy.js.headers
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-service-worker.https.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer-worker.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer.html.headers
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-no-referrer.js.headers
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-service-worker.https.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-worker.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.html.headers
</span><span class="lines">@@ -35,6 +40,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.html.headers
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin.js.headers
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url-service-worker.https.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url-worker.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/policies/referrer-unsafe-url.html.headers
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcachedefaultconditionalexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-default-conditional-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-default-conditional-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-default-conditional-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,42 +1,42 @@
</span><span class="cx"> 
</span><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Modified-Since header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Etag and stale response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Modified-Since header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with date and stale response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Modified-Since header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Modified-Since header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Etag and fresh response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Modified-Since header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with date and fresh response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Modified-Since header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Modified-Since header is treated similarly to &quot;no-store&quot; with Etag and stale response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Modified-Since header is treated similarly to &quot;no-store&quot; with date and stale response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Modified-Since header is treated similarly to &quot;no-store&quot; with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Modified-Since header is treated similarly to &quot;no-store&quot; with Etag and fresh response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Modified-Since header is treated similarly to &quot;no-store&quot; with date and fresh response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Modified-Since header is treated similarly to &quot;no-store&quot; with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-None-Match header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Etag and stale response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-None-Match header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with date and stale response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-None-Match header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-None-Match header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Etag and fresh response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-None-Match header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with date and fresh response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-None-Match header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-None-Match header is treated similarly to &quot;no-store&quot; with Etag and stale response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-None-Match header is treated similarly to &quot;no-store&quot; with date and stale response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-None-Match header is treated similarly to &quot;no-store&quot; with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-None-Match header is treated similarly to &quot;no-store&quot; with Etag and fresh response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-None-Match header is treated similarly to &quot;no-store&quot; with date and fresh response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-None-Match header is treated similarly to &quot;no-store&quot; with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Unmodified-Since header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Etag and stale response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Unmodified-Since header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with date and stale response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Unmodified-Since header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Unmodified-Since header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Etag and fresh response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Unmodified-Since header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with date and fresh response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Unmodified-Since header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Unmodified-Since header is treated similarly to &quot;no-store&quot; with Etag and stale response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Unmodified-Since header is treated similarly to &quot;no-store&quot; with date and stale response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Unmodified-Since header is treated similarly to &quot;no-store&quot; with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Unmodified-Since header is treated similarly to &quot;no-store&quot; with Etag and fresh response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Unmodified-Since header is treated similarly to &quot;no-store&quot; with date and fresh response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Unmodified-Since header is treated similarly to &quot;no-store&quot; with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Match header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Etag and stale response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Match header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with date and stale response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Match header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Match header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Etag and fresh response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Match header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with date and fresh response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Match header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Match header is treated similarly to &quot;no-store&quot; with Etag and stale response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Match header is treated similarly to &quot;no-store&quot; with date and stale response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Match header is treated similarly to &quot;no-store&quot; with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Match header is treated similarly to &quot;no-store&quot; with Etag and fresh response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Match header is treated similarly to &quot;no-store&quot; with date and fresh response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Match header is treated similarly to &quot;no-store&quot; with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Range header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Etag and stale response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Range header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with date and stale response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Range header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Range header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Etag and fresh response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Range header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with date and fresh response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Range header (following a request without additional headers) is treated similarly to &quot;no-store&quot; with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Range header is treated similarly to &quot;no-store&quot; with Etag and stale response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Range header is treated similarly to &quot;no-store&quot; with date and stale response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Range header is treated similarly to &quot;no-store&quot; with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode with an If-Range header is treated similarly to &quot;no-store&quot; with Etag and fresh response 
</span><del>-PASS RequestCache &quot;default&quot; mode with an If-Range header is treated similarly to &quot;no-store&quot; with date and fresh response 
</del><ins>+PASS RequestCache &quot;default&quot; mode with an If-Range header is treated similarly to &quot;no-store&quot; with Last-Modified and fresh response 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcachedefaultexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-default-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-default-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-default-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,10 +1,10 @@
</span><span class="cx"> 
</span><span class="cx"> PASS RequestCache &quot;default&quot; mode checks the cache for previously cached content and goes to the network for stale responses with Etag and stale response 
</span><del>-PASS RequestCache &quot;default&quot; mode checks the cache for previously cached content and goes to the network for stale responses with date and stale response 
</del><ins>+PASS RequestCache &quot;default&quot; mode checks the cache for previously cached content and goes to the network for stale responses with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;default&quot; mode checks the cache for previously cached content and avoids going to the network if a fresh response exists with Etag and fresh response 
</span><del>-PASS RequestCache &quot;default&quot; mode checks the cache for previously cached content and avoids going to the network if a fresh response exists with date and fresh response 
</del><ins>+PASS RequestCache &quot;default&quot; mode checks the cache for previously cached content and avoids going to the network if a fresh response exists with Last-Modified and fresh response 
</ins><span class="cx"> PASS Responses with the &quot;Cache-Control: no-store&quot; header are not stored in the cache with Etag and stale response 
</span><del>-PASS Responses with the &quot;Cache-Control: no-store&quot; header are not stored in the cache with date and stale response 
</del><ins>+PASS Responses with the &quot;Cache-Control: no-store&quot; header are not stored in the cache with Last-Modified and stale response 
</ins><span class="cx"> PASS Responses with the &quot;Cache-Control: no-store&quot; header are not stored in the cache with Etag and fresh response 
</span><del>-PASS Responses with the &quot;Cache-Control: no-store&quot; header are not stored in the cache with date and fresh response 
</del><ins>+PASS Responses with the &quot;Cache-Control: no-store&quot; header are not stored in the cache with Last-Modified and fresh response 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcacheforcecacheexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-force-cache-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-force-cache-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-force-cache-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,18 +1,18 @@
</span><span class="cx"> 
</span><span class="cx"> PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and avoid revalidation for stale responses with Etag and stale response 
</span><del>-PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and avoid revalidation for stale responses with date and stale response 
</del><ins>+PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and avoid revalidation for stale responses with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and avoid revalidation for fresh responses with Etag and fresh response 
</span><del>-PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and avoid revalidation for fresh responses with date and fresh response 
</del><ins>+PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and avoid revalidation for fresh responses with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and goes to the network if a cached response is not found with Etag and stale response 
</span><del>-PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and goes to the network if a cached response is not found with date and stale response 
</del><ins>+PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and goes to the network if a cached response is not found with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and goes to the network if a cached response is not found with Etag and fresh response 
</span><del>-PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and goes to the network if a cached response is not found with date and fresh response 
</del><ins>+PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and goes to the network if a cached response is not found with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and goes to the network if a cached response would vary with Etag and stale response 
</span><del>-PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and goes to the network if a cached response would vary with date and stale response 
</del><ins>+PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and goes to the network if a cached response would vary with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and goes to the network if a cached response would vary with Etag and fresh response 
</span><del>-PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and goes to the network if a cached response would vary with date and fresh response 
</del><ins>+PASS RequestCache &quot;force-cache&quot; mode checks the cache for previously cached content and goes to the network if a cached response would vary with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;force-cache&quot; stores the response in the cache if it goes to the network with Etag and stale response 
</span><del>-PASS RequestCache &quot;force-cache&quot; stores the response in the cache if it goes to the network with date and stale response 
</del><ins>+PASS RequestCache &quot;force-cache&quot; stores the response in the cache if it goes to the network with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;force-cache&quot; stores the response in the cache if it goes to the network with Etag and fresh response 
</span><del>-PASS RequestCache &quot;force-cache&quot; stores the response in the cache if it goes to the network with date and fresh response 
</del><ins>+PASS RequestCache &quot;force-cache&quot; stores the response in the cache if it goes to the network with Last-Modified and fresh response 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcachenocacheexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-cache-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-cache-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-cache-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> 
</span><span class="cx"> PASS RequestCache &quot;no-cache&quot; mode revalidates stale responses found in the cache with Etag and stale response 
</span><del>-PASS RequestCache &quot;no-cache&quot; mode revalidates stale responses found in the cache with date and stale response 
</del><ins>+PASS RequestCache &quot;no-cache&quot; mode revalidates stale responses found in the cache with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;no-cache&quot; mode revalidates fresh responses found in the cache with Etag and fresh response 
</span><del>-PASS RequestCache &quot;no-cache&quot; mode revalidates fresh responses found in the cache with date and fresh response 
</del><ins>+PASS RequestCache &quot;no-cache&quot; mode revalidates fresh responses found in the cache with Last-Modified and fresh response 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcachenostoreexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-store-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-store-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-store-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,10 +1,10 @@
</span><span class="cx"> 
</span><span class="cx"> PASS RequestCache &quot;no-store&quot; mode does not check the cache for previously cached content and goes to the network regardless with Etag and stale response 
</span><del>-PASS RequestCache &quot;no-store&quot; mode does not check the cache for previously cached content and goes to the network regardless with date and stale response 
</del><ins>+PASS RequestCache &quot;no-store&quot; mode does not check the cache for previously cached content and goes to the network regardless with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;no-store&quot; mode does not check the cache for previously cached content and goes to the network regardless with Etag and fresh response 
</span><del>-PASS RequestCache &quot;no-store&quot; mode does not check the cache for previously cached content and goes to the network regardless with date and fresh response 
</del><ins>+PASS RequestCache &quot;no-store&quot; mode does not check the cache for previously cached content and goes to the network regardless with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;no-store&quot; mode does not store the response in the cache with Etag and stale response 
</span><del>-PASS RequestCache &quot;no-store&quot; mode does not store the response in the cache with date and stale response 
</del><ins>+PASS RequestCache &quot;no-store&quot; mode does not store the response in the cache with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;no-store&quot; mode does not store the response in the cache with Etag and fresh response 
</span><del>-PASS RequestCache &quot;no-store&quot; mode does not store the response in the cache with date and fresh response 
</del><ins>+PASS RequestCache &quot;no-store&quot; mode does not store the response in the cache with Last-Modified and fresh response 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcacheonlyifcachedexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,24 +1,16 @@
</span><del>-CONSOLE MESSAGE: Unsafe attempt to load URL http://127.0.0.1:8800/fetch/api/request/resources/cache.py?token=bb76af42-6ddb-403f-a10c-3d6a22f25705&amp;content=0.3963966880995944&amp;tag=0.29947394035767183&amp;expires=Tue,%2006%20Feb%202018%2008:00:00%20GMT from frame with URL http://localhost:8800/fetch/api/request/request-cache-only-if-cached.html. Domains, protocols and ports must match.
</del><span class="cx"> 
</span><del>-CONSOLE MESSAGE: Unsafe attempt to load URL http://127.0.0.1:8800/fetch/api/request/resources/cache.py?token=b6df6826-91f3-4377-857d-c83cac1c2c07&amp;content=0.7675622863372797&amp;date=Sat,%2011%20Feb%202017%2019:53:27%20GMT&amp;expires=Tue,%2006%20Feb%202018%2008:00:00%20GMT from frame with URL http://localhost:8800/fetch/api/request/request-cache-only-if-cached.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: Unsafe attempt to load URL http://127.0.0.1:8800/fetch/api/request/resources/cache.py?token=66bd4c2b-e2cb-4a11-857a-2eafa890c060&amp;content=0.6525021020961947&amp;tag=0.6441924056013986&amp;expires=Sat,%2006%20Feb%202016%2008:00:00%20GMT from frame with URL http://localhost:8800/fetch/api/request/request-cache-only-if-cached.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: Unsafe attempt to load URL http://127.0.0.1:8800/fetch/api/request/resources/cache.py?token=b13fdf93-fffb-4a7b-8e71-22dedfd04879&amp;content=0.9449986445411271&amp;date=Sat,%2011%20Feb%202017%2019:53:27%20GMT&amp;expires=Sat,%2006%20Feb%202016%2008:00:00%20GMT from frame with URL http://localhost:8800/fetch/api/request/request-cache-only-if-cached.html. Domains, protocols and ports must match.
-
-
</del><span class="cx"> PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for stale responses with Etag and stale response 
</span><del>-PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for stale responses with date and stale response 
</del><ins>+PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for stale responses with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for fresh responses with Etag and fresh response 
</span><del>-PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for fresh responses with date and fresh response 
</del><ins>+PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for fresh responses with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and does not go to the network if a cached response is not found with Etag and fresh response 
</span><del>-PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and does not go to the network if a cached response is not found with date and fresh response 
-PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with Etag and fresh response 
-PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with date and fresh response 
-PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with Etag and stale response 
-PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with date and stale response 
</del><ins>+PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and does not go to the network if a cached response is not found with Last-Modified and fresh response 
+FAIL RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with Etag and fresh response promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with Last-Modified and fresh response promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with Etag and stale response promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with Last-Modified and stale response promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
</ins><span class="cx"> PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with Etag and fresh response 
</span><del>-PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with date and fresh response 
</del><ins>+PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with Etag and stale response 
</span><del>-PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with date and stale response 
</del><ins>+PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with Last-Modified and stale response 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcachereloadexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,14 +1,14 @@
</span><span class="cx"> 
</span><span class="cx"> PASS RequestCache &quot;reload&quot; mode does not check the cache for previously cached content and goes to the network regardless with Etag and stale response 
</span><del>-PASS RequestCache &quot;reload&quot; mode does not check the cache for previously cached content and goes to the network regardless with date and stale response 
</del><ins>+PASS RequestCache &quot;reload&quot; mode does not check the cache for previously cached content and goes to the network regardless with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;reload&quot; mode does not check the cache for previously cached content and goes to the network regardless with Etag and fresh response 
</span><del>-PASS RequestCache &quot;reload&quot; mode does not check the cache for previously cached content and goes to the network regardless with date and fresh response 
</del><ins>+PASS RequestCache &quot;reload&quot; mode does not check the cache for previously cached content and goes to the network regardless with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;reload&quot; mode does store the response in the cache with Etag and stale response 
</span><del>-PASS RequestCache &quot;reload&quot; mode does store the response in the cache with date and stale response 
</del><ins>+PASS RequestCache &quot;reload&quot; mode does store the response in the cache with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;reload&quot; mode does store the response in the cache with Etag and fresh response 
</span><del>-PASS RequestCache &quot;reload&quot; mode does store the response in the cache with date and fresh response 
</del><ins>+PASS RequestCache &quot;reload&quot; mode does store the response in the cache with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;reload&quot; mode does store the response in the cache even if a previous response is already stored with Etag and stale response 
</span><del>-PASS RequestCache &quot;reload&quot; mode does store the response in the cache even if a previous response is already stored with date and stale response 
</del><ins>+PASS RequestCache &quot;reload&quot; mode does store the response in the cache even if a previous response is already stored with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;reload&quot; mode does store the response in the cache even if a previous response is already stored with Etag and fresh response 
</span><del>-PASS RequestCache &quot;reload&quot; mode does store the response in the cache even if a previous response is already stored with date and fresh response 
</del><ins>+PASS RequestCache &quot;reload&quot; mode does store the response in the cache even if a previous response is already stored with Last-Modified and fresh response 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestcachejs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -218,6 +218,6 @@
</span><span class="cx"> {
</span><span class="cx">   tests.forEach(function(info) {
</span><span class="cx">     promise_test(make_test(&quot;tag&quot;, info), info.name + &quot; with Etag and &quot; + info.state + &quot; response&quot;);
</span><del>-    promise_test(make_test(&quot;date&quot;, info), info.name + &quot; with date and &quot; + info.state + &quot; response&quot;);
</del><ins>+    promise_test(make_test(&quot;date&quot;, info), info.name + &quot; with Last-Modified and &quot; + info.state + &quot; response&quot;);
</ins><span class="cx">   });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestheadersexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-headers-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-headers-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-headers-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -55,5 +55,4 @@
</span><span class="cx"> PASS Request should get its content-type from init headers if one is provided 
</span><span class="cx"> PASS Testing request header creations with various objects 
</span><span class="cx"> PASS Testing empty Request Content-Type header 
</span><del>-PASS Passing undefined headers to Request constructor should not throw 
</del><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestheadershtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-headers.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-headers.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-headers.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -168,11 +168,6 @@
</span><span class="cx">         });
</span><span class="cx">       }, &quot;Testing empty Request Content-Type header&quot;);
</span><span class="cx"> 
</span><del>-      test(function() {
-        var request = new Request(&quot;&quot;, {&quot;headers&quot; : undefined, &quot;body&quot; : &quot;this is my plate&quot;, &quot;method&quot; : &quot;POST&quot;});
-        assert_equals(request.headers.get(&quot;Content-Type&quot;), &quot;text/plain;charset=UTF-8&quot;);
-      }, &quot;Passing undefined headers to Request constructor should not throw&quot;);
-
</del><span class="cx">     &lt;/script&gt;
</span><span class="cx">   &lt;/body&gt;
</span><span class="cx"> &lt;/html&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestkeepalivequotaexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+
+PASS A Keep-Alive fetch() with a small body should succeed. 
+PASS A Keep-Alive fetch() with a body at the Quota Limit should succeed. 
+FAIL A Keep-Alive fetch() with a body over the Quota Limit should reject. assert_unreached: Should have rejected: undefined Reached unreachable code
+PASS A Keep-Alive fetch() should return it's allocated Quota upon promise resolution. 
+PASS A Keep-Alive fetch() should return only it's allocated Quota upon promise resolution. 
+FAIL A Keep-Alive fetch() should not be allowed if the Quota is used up. assert_unreached: Should have rejected: undefined Reached unreachable code
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestkeepalivequotahtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,93 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;meta charset=&quot;utf-8&quot;&gt;
+        &lt;title&gt;Request Keepalive Quota Tests&lt;/title&gt;
+        &lt;meta name=&quot;help&quot; href=&quot;https://fetch.spec.whatwg.org/#request&quot;&gt;
+        &lt;meta name=&quot;help&quot; href=&quot;https://fetch.spec.whatwg.org/#body-mixin&quot;&gt;
+        &lt;meta name=&quot;author&quot; title=&quot;Microsoft Edge&quot; href=&quot;https://www.microsoft.com&quot;&gt;
+        &lt;meta name=&quot;timeout&quot; content=&quot;long&quot;&gt;
+        &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+        &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+    &lt;/head&gt;
+    &lt;body&gt;
+        &lt;script&gt;
+            &quot;use strict&quot;;
+
+            // We want to ensure that our keepalive requests hang slightly before completing so we can validate
+            // the effects of a rolling quota. To do this we will utilize trickle.py with a 1s delay. This should
+            // prevent any of the Fetch's from finishing in this window.
+            var trickleURL = &quot;../resources/trickle.py?count=1&amp;ms=&quot;;
+            var standardDelay = 1000;
+
+            // We should expect 64KiB of rolling quota for any type of keep-alive request sent.
+            var expectedQuota = 65536;
+
+            function CreateKeepAliveRequest(delay, bodySize) {
+                // Create a body of the specified size that's filled with *'s
+                var requestBody = &quot;*&quot;.repeat(bodySize);
+                return new Request(trickleURL+delay, {keepalive: true, body: requestBody, method: &quot;POST&quot;});
+            }
+
+            // Test 1 Byte
+            promise_test(function(test) {
+                return fetch(CreateKeepAliveRequest(0 /* delay */, 1 /* bodySize */));
+            }, &quot;A Keep-Alive fetch() with a small body should succeed.&quot;);
+
+            // Test Quota full limit
+            promise_test(function(test) {
+                return fetch(CreateKeepAliveRequest(0 /* delay */, expectedQuota));
+            }, &quot;A Keep-Alive fetch() with a body at the Quota Limit should succeed.&quot;);
+
+            // Test Quota + 1 Byte
+            promise_test(function(test) {
+                return promise_rejects(test, new TypeError(), fetch(CreateKeepAliveRequest(0 /* delay */, expectedQuota + 1)));
+            }, &quot;A Keep-Alive fetch() with a body over the Quota Limit should reject.&quot;);
+
+            // Test the Quota becomes available upon promise completion.
+            promise_test(function (test) {
+                // Fill our Quota then try to send a second fetch.
+                var firstFetch = fetch(CreateKeepAliveRequest(standardDelay, expectedQuota)).then(function(response) {
+                    // Now validate that we can send another Keep-Alive fetch for the full size of the quota.
+                    return fetch(CreateKeepAliveRequest(0 /* delay */, expectedQuota));
+                });
+
+                return firstFetch;
+            }, &quot;A Keep-Alive fetch() should return it's allocated Quota upon promise resolution.&quot;);
+
+            // Ensure only the correct amount of Quota becomes available when a fetch completes.
+            promise_test(function(test) {
+                var lastFetchSucceeded = false;
+                // Create a fetch that uses all but 1 Byte of the Quota and runs for 2x as long as the other requests.
+                var firstFetch = fetch(CreateKeepAliveRequest(standardDelay * 2, expectedQuota - 1)).then(function(response) {
+                    // This should be our last completing fetch(). We need to validate that the last fetch we sent out actually
+                    // completed.
+                    assert_true(lastFetchSucceeded, &quot;Out last fetch after gaining Quota back should have succeeded.&quot;);
+                });
+
+                // Now create a single Byte request that will complete quicker.
+                fetch(CreateKeepAliveRequest(standardDelay, 1 /* bodySize */)).then(function(response) {
+                    // We shouldn't be able to create a 2 Byte request right now as only 1 Byte should have freed up.
+                    assert_throws(new TypeError(), fetch(CreateKeepAliveRequest(0 /* delay */, 2 /* bodySize */)), &quot;Only 1 Byte of Quota should be available right now.&quot;);
+
+                    // Now validate that we can send another Keep-Alive fetch for just 1 Byte.
+                    fetch(CreateKeepAliveRequest(0 /* delay */, 1 /* bodySize */)).then(function(response) {
+                        // Flag we got a response from this request.
+                        lastFetchSucceeded = true;
+                    });
+                });
+
+                return firstFetch;
+            }, &quot;A Keep-Alive fetch() should return only it's allocated Quota upon promise resolution.&quot;);
+
+            // Test rejecting a fetch() after the quota is used up.
+            promise_test(function (test) {
+                // Fill our Quota then try to send a second fetch.
+                fetch(CreateKeepAliveRequest(standardDelay, expectedQuota));
+
+                return promise_rejects(test, new TypeError(), fetch(CreateKeepAliveRequest(0 /* delay */, 1 /* bodySize */)));
+            }, &quot;A Keep-Alive fetch() should not be allowed if the Quota is used up.&quot;);
+
+        &lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestresourcescachepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/resources/cache.py (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/resources/cache.py        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/resources/cache.py        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -17,6 +17,9 @@
</span><span class="cx">     cache_control = request.headers.get(&quot;Cache-Control&quot;, None)
</span><span class="cx">     ignore = &quot;ignore&quot; in request.GET
</span><span class="cx"> 
</span><ins>+    if tag:
+        tag = '&quot;%s&quot;' % tag
+
</ins><span class="cx">     server_state = request.server.stash.take(token)
</span><span class="cx">     if not server_state:
</span><span class="cx">         server_state = []
</span><span class="lines">@@ -34,7 +37,7 @@
</span><span class="cx">     request.server.stash.put(token, server_state)
</span><span class="cx"> 
</span><span class="cx">     if tag:
</span><del>-        response.headers.set(&quot;ETag&quot;, '&quot;%s&quot;' % tag)
</del><ins>+        response.headers.set(&quot;ETag&quot;, '%s' % tag)
</ins><span class="cx">     elif date:
</span><span class="cx">         response.headers.set(&quot;Last-Modified&quot;, date)
</span><span class="cx">     if expires:
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -34,4 +34,5 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-init-001.sub.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-init-002.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-init-003.sub.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-structure.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcespreflightpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/preflight.py (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/preflight.py        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/preflight.py        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -2,6 +2,10 @@
</span><span class="cx">     headers = [(&quot;Content-Type&quot;, &quot;text/plain&quot;)]
</span><span class="cx">     stashed_data = {'control_request_headers': &quot;&quot;, 'preflight': &quot;0&quot;, 'preflight_referrer': &quot;&quot;}
</span><span class="cx"> 
</span><ins>+    token = None
+    if &quot;token&quot; in request.GET:
+        token = request.GET.first(&quot;token&quot;)
+
</ins><span class="cx">     if &quot;origin&quot; in request.GET:
</span><span class="cx">         for origin in request.GET['origin'].split(&quot;, &quot;):
</span><span class="cx">             headers.append((&quot;Access-Control-Allow-Origin&quot;, origin))
</span><span class="lines">@@ -8,6 +12,9 @@
</span><span class="cx">     else:
</span><span class="cx">         headers.append((&quot;Access-Control-Allow-Origin&quot;, &quot;*&quot;))
</span><span class="cx"> 
</span><ins>+    if &quot;credentials&quot; in request.GET:
+        headers.append((&quot;Access-Control-Allow-Credentials&quot;, &quot;true&quot;))
+
</ins><span class="cx">     if request.method == &quot;OPTIONS&quot;:
</span><span class="cx">         if not &quot;Access-Control-Request-Method&quot; in request.headers:
</span><span class="cx">             response.set_error(400, &quot;No Access-Control-Request-Method header&quot;)
</span><span class="lines">@@ -31,13 +38,13 @@
</span><span class="cx"> 
</span><span class="cx">         stashed_data['preflight'] = &quot;1&quot;
</span><span class="cx">         stashed_data['preflight_referrer'] = request.headers.get(&quot;Referer&quot;, &quot;&quot;)
</span><del>-        request.server.stash.put(request.GET.first(&quot;token&quot;), stashed_data)
</del><ins>+        if token:
+            request.server.stash.put(token, stashed_data)
</ins><span class="cx"> 
</span><span class="cx">         return preflight_status, headers, &quot;&quot;
</span><span class="cx"> 
</span><del>-    token = None
-    if &quot;token&quot; in request.GET:
-        token = request.GET.first(&quot;token&quot;)
</del><ins>+
+    if token:
</ins><span class="cx">         data = request.server.stash.take(token)
</span><span class="cx">         if data:
</span><span class="cx">             stashed_data = data
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponseidlexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-idl-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-idl-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-idl-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -12,6 +12,7 @@
</span><span class="cx"> PASS Response interface: attribute ok 
</span><span class="cx"> PASS Response interface: attribute statusText 
</span><span class="cx"> PASS Response interface: attribute headers 
</span><ins>+FAIL Response interface: attribute trailer assert_true: The prototype object must have a property &quot;trailer&quot; expected true got false
</ins><span class="cx"> PASS Response interface: operation clone() 
</span><span class="cx"> PASS Response interface: attribute body 
</span><span class="cx"> PASS Response interface: attribute bodyUsed 
</span><span class="lines">@@ -31,12 +32,13 @@
</span><span class="cx"> PASS Response interface: new Response() must inherit property &quot;ok&quot; with the proper type (5) 
</span><span class="cx"> PASS Response interface: new Response() must inherit property &quot;statusText&quot; with the proper type (6) 
</span><span class="cx"> PASS Response interface: new Response() must inherit property &quot;headers&quot; with the proper type (7) 
</span><del>-PASS Response interface: new Response() must inherit property &quot;clone&quot; with the proper type (8) 
-PASS Response interface: new Response() must inherit property &quot;body&quot; with the proper type (9) 
-PASS Response interface: new Response() must inherit property &quot;bodyUsed&quot; with the proper type (10) 
-PASS Response interface: new Response() must inherit property &quot;arrayBuffer&quot; with the proper type (11) 
-PASS Response interface: new Response() must inherit property &quot;blob&quot; with the proper type (12) 
-PASS Response interface: new Response() must inherit property &quot;formData&quot; with the proper type (13) 
-PASS Response interface: new Response() must inherit property &quot;json&quot; with the proper type (14) 
-PASS Response interface: new Response() must inherit property &quot;text&quot; with the proper type (15) 
</del><ins>+FAIL Response interface: new Response() must inherit property &quot;trailer&quot; with the proper type (8) assert_inherits: property &quot;trailer&quot; not found in prototype chain
+PASS Response interface: new Response() must inherit property &quot;clone&quot; with the proper type (9) 
+PASS Response interface: new Response() must inherit property &quot;body&quot; with the proper type (10) 
+PASS Response interface: new Response() must inherit property &quot;bodyUsed&quot; with the proper type (11) 
+PASS Response interface: new Response() must inherit property &quot;arrayBuffer&quot; with the proper type (12) 
+PASS Response interface: new Response() must inherit property &quot;blob&quot; with the proper type (13) 
+PASS Response interface: new Response() must inherit property &quot;formData&quot; with the proper type (14) 
+PASS Response interface: new Response() must inherit property &quot;json&quot; with the proper type (15) 
+PASS Response interface: new Response() must inherit property &quot;text&quot; with the proper type (16) 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponseidlhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-idl.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-idl.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-idl.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -41,6 +41,7 @@
</span><span class="cx">         readonly attribute boolean ok;
</span><span class="cx">         readonly attribute ByteString statusText;
</span><span class="cx">         [SameObject] readonly attribute Headers headers;
</span><ins>+        readonly attribute Promise&lt;Headers&gt; trailer;
</ins><span class="cx"> 
</span><span class="cx">         [NewObject] Response clone();
</span><span class="cx">       };
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponsetrailerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-trailer-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-trailer-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-trailer-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL trailer() test promise_test: Unhandled rejection with value: object &quot;TypeError: undefined is not an object (evaluating 'res.trailer.then')&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponsetrailerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-trailer.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-trailer.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-trailer.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,24 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;trailer() test&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;!--  based on /XMLHttpRequest/getresponseheader-chunked-trailer.htm  --&gt;
+&lt;script&gt;
+promise_test(() =&gt; {
+  return fetch(&quot;/XMLHttpRequest/resources/chunked.py&quot;).then(res =&gt; {
+    assert_equals(res.headers.get(&quot;Trailer&quot;), &quot;X-Test-Me&quot;)
+    assert_equals(res.headers.get(&quot;X-Test-Me&quot;), null)
+    assert_equals(res.headers.get(&quot;Content-Type&quot;), &quot;text/plain&quot;)
+    return Promise.all([
+      res.text().then(text =&gt; {
+        assert_equals(text, &quot;First chunk\r\nSecond chunk\r\nYet another (third) chunk\r\nYet another (fourth) chunk\r\n&quot;)
+      }),
+      res.trailer.then(trailers =&gt; {
+        assert_equals(trailers.get(&quot;X-Test-Me&quot;), &quot;Trailer header value&quot;)
+        assert_throws(new TypeError, () =&gt; trailers.append(&quot;Immutable-My-Ass&quot;, &quot;Hi!&quot;))
+      })
+    ])
+  })
+})
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsew3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -31,3 +31,4 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-3.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-4.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-5.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-trailer.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -16,3 +16,4 @@
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/OWNERS
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/README.md
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlOWNERS"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/OWNERS (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/OWNERS        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/OWNERS        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,7 +1,5 @@
</span><span class="cx"> @ayg
</span><del>-@Ms2ger
</del><span class="cx"> @jdm
</span><span class="cx"> @jgraham
</span><del>-@sideshowbarker
</del><span class="cx"> @zcorpan
</span><span class="cx"> @zqzhang
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersbrowsingthewebhistorytraversalbrowsing_context_name_cross_origin0html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-0.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-0.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-0.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+&lt;iframe id=&quot;test&quot;&gt;&lt;/iframe&gt;
+&lt;script&gt;
+var t = opener.t;
+var f = document.getElementById(&quot;test&quot;);
+var l = opener.document.getElementById(&quot;step_log&quot;);
+
+var log = function(t) {l.textContent += (&quot;\n&quot; + t)}
+var navigated = false;
+var steps = [
+  () =&gt; f.src = &quot;browsing_context_name-1.html&quot;,
+  () =&gt; {
+    navigated = true;
+    opener.assert_equals(f.contentWindow.name, &quot;test&quot;, &quot;Initial load&quot;);
+    f.src = f.src.replace(&quot;http://&quot;, &quot;http://www.&quot;).replace(&quot;browsing_context_name-1&quot;, &quot;browsing_context_name-2&quot;);
+  },
+  () =&gt; {
+    // Can't test .name easily here because it's cross-origin
+    opener.assert_equals(history.length, 2);
+    history.back()
+  },
+  () =&gt; {
+    opener.assert_equals(f.contentWindow.name, &quot;test&quot;, &quot;After navigation&quot;);
+    t.done();
+  }
+].map((x, i) =&gt; t.step_func(() =&gt; {log(&quot;Step &quot; + (i+1)); x()}));
+
+next = () =&gt; steps.shift()();
+
+onload = () =&gt; {
+  log(&quot;page load&quot;);
+  f.onload = () =&gt; {log(&quot;iframe onload&quot;); next()};
+  setTimeout(next, 0);
+};
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersbrowsingthewebhistorytraversalbrowsing_context_name_cross_originexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,11 +1,11 @@
</span><span class="cx"> Blocked access to external URL http://www.localhost:8800/html/browsers/browsing-the-web/history-traversal/browsing_context_name-2.html
</span><span class="cx"> 
</span><del>-PASS Restoring window.name on cross-origin history traversal 
-
</del><ins>+page load
</ins><span class="cx"> Step 1
</span><ins>+iframe onload
</ins><span class="cx"> Step 2
</span><ins>+iframe onload
</ins><span class="cx"> Step 3
</span><del>-Step 4
-Step 5
-Step 6
</del><span class="cx"> 
</span><ins>+FAIL Restoring window.name on cross-origin history traversal assert_equals: expected 2 but got 1
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersbrowsingthewebhistorytraversalbrowsing_context_name_cross_originhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -2,40 +2,12 @@
</span><span class="cx"> &lt;title&gt;Restoring window.name on cross-origin history traversal&lt;/title&gt;
</span><span class="cx"> &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</del><span class="cx"> &lt;pre id=&quot;step_log&quot;&gt;&lt;/pre&gt;
</span><del>-&lt;iframe id=&quot;test&quot;&gt;&lt;/iframe&gt;
</del><ins>+
</ins><span class="cx"> &lt;script&gt;
</span><del>-
-var t = async_test(undefined, {timeout:10000});
-var f = document.getElementById(&quot;test&quot;);
-var l = document.getElementById(&quot;step_log&quot;);
-var navigated = false;
-
-log = function(t) {l.textContent += (&quot;\n&quot; + t)}
-
-var steps = [
-  function() {f.src = &quot;browsing_context_name-1.html&quot;},
-  function() {
-                navigated = true;
-                assert_equals(f.contentWindow.name, &quot;test&quot;, &quot;Initial load&quot;);
-                setTimeout(next, 0);
-              },
-  function() {f.src = f.src.replace(&quot;http://&quot;, &quot;http://www.&quot;).replace(&quot;browsing_context_name-1&quot;, &quot;browsing_context_name-2&quot;);},
-  function() {
-               setTimeout(next, 0);
-             },
-  function() {history.back(); setTimeout(next, 500)},
-  function() {
-               assert_equals(f.contentWindow.name, &quot;test&quot;, &quot;After navigation&quot;);
-               t.done();
-             }
-].map(function(x) {return t.step_func(function() {log(&quot;Step &quot; + step); x()})});
-
-var step = 0;
-next = t.step_func(function() {steps[step++]()});
-
-f.onload=next;
-
-onload = function() { setTimeout(next, 0); };
</del><ins>+var t = async_test();
+t.step(() =&gt; {
+  var win = window.open(&quot;browsing_context_name_cross_origin-0.html&quot;);
+  t.add_cleanup(() =&gt; win.close());
+});
</ins><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersbrowsingthewebhistorytraversalw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -24,6 +24,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name-2.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name-3.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name-4.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-0.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/contains.json
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/events.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacelocationprotocolsetterwithcolonsubexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+
+PASS General setup 
+PASS Set location.protocol = location.protocol 
+PASS Set location.protocol to http:gunk 

</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacelocationprotocolsetterwithcolonsubhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,52 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;iframe id=&quot;existing&quot; src=&quot;resources/post-your-protocol.html?existing&quot;&gt;&lt;/iframe&gt;
+&lt;iframe id=&quot;http-and-gunk&quot; src=&quot;resources/post-your-protocol.html?http-and-gunk&quot;&gt;&lt;/iframe&gt;
+&lt;!--  iframe id=&quot;https-and-gunk&quot; src=&quot;resources/post-your-protocol.html?https-and-gunk&quot;&gt;&lt;/iframe  --&gt;
+&lt;script&gt;
+// NOTE: we do not listen to message events until our load event fires, so we
+// only get them for the things we actually care about.
+var wrapper_test = async_test(&quot;General setup&quot;);
+var tests = {
+  &quot;existing&quot;: { test: async_test(&quot;Set location.protocol = location.protocol&quot;),
+                result: location.protocol },
+  &quot;http-and-gunk&quot;: { test:  async_test(&quot;Set location.protocol to http:gunk&quot;),
+                     result: &quot;http:&quot; },
+  // We should really test the &quot;https:gunk&quot; case too, and assert that it ends up
+  // with a protocol of &quot;https:&quot;, but can't.  See comments below for why.
+};
+
+function messageListener(e) {
+  var data = e.data;
+  var id = data.id;
+  var t = tests[id].test;
+  t.step(function() {
+    assert_equals(data.protocol, tests[id].result, &quot;Protocol should match&quot;);
+  })
+  t.done();
+}
+
+addEventListener(&quot;load&quot;, wrapper_test.step_func_done(function() {
+  addEventListener(&quot;message&quot;, messageListener);
+
+  tests[&quot;existing&quot;].test.step(function() {
+    var loc = document.getElementById(&quot;existing&quot;).contentWindow.location;
+    loc.protocol = loc.protocol;
+  });
+  tests[&quot;http-and-gunk&quot;].test.step(function() {
+    var loc = document.getElementById(&quot;http-and-gunk&quot;).contentWindow.location;
+    loc.protocol = &quot;http:gunk&quot;;
+  });
+  // I wish we could test the https bit, but can't figure out a non-racy way to
+  // do it, because we need to change both protocol (to https) _and_ port to
+  // {{ports[https][0]}} to get a successful load unless we're running on the
+  // default http port, but the setter uses the current value, which doesn't get
+  // updated sync, as the url to start with for the set.  Oh, and there's no
+  // good way to detect when the port set is &quot;done&quot; either.
+}));
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacelocationstringifierexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-stringifier-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-stringifier-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-stringifier-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,4 +4,5 @@
</span><span class="cx"> PASS Location stringifier 2 
</span><span class="cx"> PASS Location stringifier 3 
</span><span class="cx"> PASS Location stringifier 4 
</span><ins>+PASS Location stringifier 5 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacelocationstringifierhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-stringifier.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-stringifier.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-stringifier.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -8,4 +8,17 @@
</span><span class="cx"> &lt;div id=log&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> test_stringifier_attribute(location, &quot;href&quot;, true);
</span><ins>+
+test(function() {
+  const prop1 = Object.getOwnPropertyDescriptor(location, &quot;toString&quot;),
+        prop2 = Object.getOwnPropertyDescriptor(location, &quot;href&quot;)
+
+  assert_true(prop1.enumerable)
+  assert_false(prop1.writable)
+  assert_false(prop1.configurable)
+
+  assert_true(prop2.enumerable)
+  assert_false(prop2.configurable)
+  assert_equals(typeof prop2.get, &quot;function&quot;)
+})
</ins><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacelocationtojsonexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-tojson-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-tojson-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-tojson-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS Location has no toJSON 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacelocationtojsonhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-tojson.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-tojson.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-tojson.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Location has no toJSON&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;script&gt;
+test(() =&gt; {
+  assert_equals(location.toJSON, undefined)
+  assert_equals(Object.getOwnPropertyDescriptor(location, &quot;toJSON&quot;), undefined)
+  assert_false(location.hasOwnProperty(&quot;toJSON&quot;))
+})
+&lt;/script&gt;
+&lt;!--  See https://github.com/whatwg/html/pull/2294 for context. (And the HTML Standard of course.)  --&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfaceresourcespostyourprotocolhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/resources/post-your-protocol.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/resources/post-your-protocol.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/resources/post-your-protocol.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+&lt;script&gt;
+  var id = location.search.substring(1);
+  parent.postMessage({ id: id, protocol: location.protocol }, &quot;*&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfaceresourcesw3cimportlogfromrev213880trunkLayoutTestsimportedw3cwebplatformtestsfetchw3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/resources/w3c-import.log (from rev 213880, trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/w3c-import.log) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/resources/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/resources/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/resources/post-your-protocol.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacew3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -26,11 +26,13 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-pathname-setter-question-mark.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-weird.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-stringifier.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-symbol-toprimitive.html
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-valueof.html 
</del><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-tojson.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-valueof.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_assign_about_blank-1.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_assign_about_blank.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersofflinenoappcacheinsharedworkershistoricalexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS This browser doesn't implement SharedWorker, and so passes this test automatically 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersofflinenoappcacheinsharedworkershistoricalhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;AppCache should not exist in shared workers, even though it was specced at some point&lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://github.com/whatwg/html/pull/2384&quot;&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Domenic Denicola&quot; href=&quot;mailto:d@domenic.me&quot;&gt;
+
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+
+&lt;script&gt;
+&quot;use strict&quot;;
+
+if (typeof SharedWorker === &quot;undefined&quot;) {
+  test(() =&gt; {
+  }, &quot;This browser doesn't implement SharedWorker, and so passes this test automatically&quot;);
+} else {
+  fetch_tests_from_worker(new SharedWorker(&quot;no-appcache-in-shared-workers-historical.js&quot;));
+}
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersofflinenoappcacheinsharedworkershistoricaljs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.js (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.js                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&quot;use strict&quot;;
+self.importScripts('/resources/testharness.js');
+
+test(() =&gt; {
+  assert_equals(self.applicationCache, undefined, &quot;self.applicationCache must be undefined&quot;);
+  assert_false(&quot;applicationCache&quot; in self, &quot;applicationCache must not even be a property of self&quot;);
+}, &quot;self.applicationCache must not exist&quot;);
+
+test(() =&gt; {
+  assert_equals(self.ApplicationCache, undefined, &quot;self.ApplicationCache must be undefined&quot;);
+  assert_false(&quot;ApplicationCache&quot; in self, &quot;ApplicationCache must not even be a property of self&quot;);
+}, &quot;ApplicationCache must not be exposed&quot;);
+
+done();
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersofflinew3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -16,3 +16,5 @@
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/manifest_url_check.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.js
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsupportnoopenertargethtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/support/noopener-target.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/support/noopener-target.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/support/noopener-target.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,5 +4,12 @@
</span><span class="cx">   var channel = new BroadcastChannel(channelName);
</span><span class="cx">   channel.postMessage({ name: window.name,
</span><span class="cx">                         haveOpener: window.opener !== null });
</span><del>-  window.close();
</del><ins>+
+  // Because messages are not delivered synchronously and because closing a
+  // browsing context prompts the eventual clearing of all task sources, this
+  // document should not be closed until the opener document has confirmed
+  // receipt.
+  channel.onmessage = function() {
+    window.close();
+  };
</ins><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectwindowopennoopenerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/window-open-noopener-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/window-open-noopener-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/window-open-noopener-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-CONSOLE MESSAGE: line 67: TypeError: undefined is not an object (evaluating 'w1.close')
</del><ins>+CONSOLE MESSAGE: line 68: TypeError: undefined is not an object (evaluating 'w1.close')
</ins><span class="cx"> 
</span><span class="cx"> Harness Error (FAIL), message = TypeError: undefined is not an object (evaluating 'w1.close')
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectwindowopennoopenerhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -64,7 +64,10 @@
</span><span class="cx">   } else {
</span><span class="cx">     t.step(function() {
</span><span class="cx">       var w1;
</span><del>-      this.add_cleanup(function() { w1.close(); });
</del><ins>+      this.add_cleanup(function() {
+        w1.close();
+        channel.postMessage(null);
+      });
</ins><span class="cx"> 
</span><span class="cx">       var windowName = this.windowName;
</span><span class="cx">       var channel = new BroadcastChannel(windowName);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsbrowsingcontextexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+
+FAIL Check that browsing context has new, ready HTML document assert_equals: The document's encoding should be 'UTF-8'. expected &quot;UTF-8&quot; but got &quot;windows-1252&quot;
+PASS Check that new document nodes extant, empty 
+PASS Check the document properties corresponding to the creator browsing context 
+FAIL Check the history.length of the created browsing context assert_equals: The history.length should be 1. expected 1 but got 100
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsbrowsingcontextwindowexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-window-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-window-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-window-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS HTML Test: Newly-Created browsing context Window and `this` 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsbrowsingcontextwindowhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-window.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-window.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-window.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;title&gt;HTML Test: Newly-Created browsing context Window and `this`&lt;/title&gt;
+    &lt;link rel=&quot;author&quot; title=&quot;Intel&quot; href=&quot;http://www.intel.com/&quot; /&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/common/get-host-info.sub.js&quot;&gt;&lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+    &lt;script&gt;
+
+    /**
+     * Test for creating a new browsing context, [Browsing Contexts](#windows).
+     * This test is separate from the rest of the browsing-content-creation tests
+     * because the `iframe` has a src and thus its document won't be `about:blank`.
+     */
+    var doc, iframe;
+
+    setup(function () {
+      iframe = document.createElement(&quot;iframe&quot;);
+      iframe.src = get_host_info().HTTP_REMOTE_ORIGIN + &quot;/html/browsers/windows/resources/browsing-context-window.html&quot;;
+      document.body.appendChild(iframe);
+      doc = iframe.contentDocument;
+    });
+
+    async_test(function (t) {
+      window.onmessage = t.step_func(function (e) {
+        assert_equals(e.data.thisWindowEquivalency, true, &quot;The global `this` for the created browsing context should be a reference to Window through WindowProxy&quot;);
+        t.done();
+      });
+    });
+
+    &lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsbrowsingcontexthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,54 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;title&gt;HTML Test: Browsing context is first created&lt;/title&gt;
+    &lt;link rel=&quot;author&quot; title=&quot;Intel&quot; href=&quot;http://www.intel.com/&quot; /&gt;
+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+    &lt;script&gt;
+    var doc, iframe;
+
+    setup(function () {
+      // Create new browsing context via iframe
+      iframe = document.createElement(&quot;iframe&quot;);
+      document.body.appendChild(iframe);
+      doc = iframe.contentDocument;
+    });
+
+    test(function () {
+      assert_equals(doc.compatMode, &quot;BackCompat&quot;, &quot;The compatMode of a document without a document type declaration should be 'BackCompat'.&quot;); // Quirksmode
+      assert_equals(doc.contentType, &quot;text/html&quot;, &quot;The document should be an HTML document.&quot;);
+      assert_equals(doc.readyState, &quot;complete&quot;, &quot;The readyState attribute should be 'complete'.&quot;);
+      // Document metadata...
+      assert_equals(doc.documentURI, &quot;about:blank&quot;, &quot;The document's address should be 'about:blank'.&quot;);
+      assert_equals(doc.URL, &quot;about:blank&quot;, &quot;The document's address should be 'about:blank'.&quot;);
+      assert_equals(doc.doctype, null, &quot;The docType of a document without a document type declaration should be null.&quot;);
+      assert_equals(doc.characterSet, &quot;UTF-8&quot;, &quot;The document's encoding should be 'UTF-8'.&quot;);
+    }, &quot;Check that browsing context has new, ready HTML document&quot;);
+
+    test(function () {
+      assert_equals(doc.childNodes.length, 1, &quot;The document must have only one child.&quot;);
+      assert_equals(doc.documentElement.tagName, &quot;HTML&quot;);
+      assert_equals(doc.documentElement.childNodes.length, 2, &quot;The HTML element should have 2 children.&quot;);
+      assert_equals(doc.documentElement.childNodes[0].tagName, &quot;HEAD&quot;, &quot;The first child of HTML element should be a HEAD element.&quot;);
+      assert_false(doc.documentElement.childNodes[0].hasChildNodes(), &quot;The HEAD element should not have children.&quot;);
+      assert_equals(doc.documentElement.childNodes[1].tagName, &quot;BODY&quot;, &quot;The second child of HTML element should be a BODY element.&quot;);
+      assert_false(doc.documentElement.childNodes[1].hasChildNodes(), &quot;The BODY element should not have children.&quot;);
+    }, &quot;Check that new document nodes extant, empty&quot;);
+
+    test(function () {
+      assert_equals(doc.origin, document.origin, &quot;The document's origin should be its creator document's origin&quot;);
+      assert_equals(doc.referrer, document.URL, &quot;The document's referrer should be its creator document's address.&quot;);
+      assert_equals(iframe.contentWindow.parent.document, document);
+    }, &quot;Check the document properties corresponding to the creator browsing context&quot;);
+
+    test(function () {
+      assert_equals(iframe.contentWindow.history.length, 1, &quot;The history.length should be 1.&quot;);
+    }, &quot;Check the history.length of the created browsing context&quot;);
+
+    &lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextsresourcesframeElementnestedframehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-nested-frame.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-nested-frame.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-nested-frame.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;/&gt;
+&lt;title&gt;HTML Test: child browsing context created by the frame element&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Intel&quot; href=&quot;http://www.intel.com/&quot; /&gt;
+&lt;frameset&gt;
+  &lt;frame id=&quot;f1&quot; name=&quot;frame&quot;&gt;
+&lt;/frameset&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextsresourcesframeElementwindowposthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-window-post.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-window-post.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-window-post.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;/&gt;
+&lt;title&gt;Testcase 3: frameElement attribute must return null if the container\'s document does not have the same effective script origin&lt;/title&gt;
+&lt;script&gt;
+window.addEventListener(&quot;message&quot;, function (event) {
+  try {
+    var result = &quot;window.frameElement = &quot; + window.frameElement;
+  } catch (e) {
+    result = e.message;
+  }
+  event.source.postMessage(JSON.stringify({name: &quot;testcase3&quot;, result: result}),
+                           &quot;*&quot;);
+}, false);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextsresourcesposttoopenerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/post-to-opener.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/post-to-opener.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/post-to-opener.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+&lt;script&gt;
+  if (window.opener) {
+    window.opener.postMessage({
+      &quot;parent_isTop&quot;: (window.parent === window)
+    }, &quot;*&quot;);
+  }
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextsresourcesw3cimportlogfromrev213880trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextsw3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/w3c-import.log (from rev 213880, trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-nested-frame.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/frameElement-window-post.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/resources/post-to-opener.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -16,6 +16,7 @@
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/contains.json
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/test.html
-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/testcase3.html
-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-001.html
</del><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-null.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowparentexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+
+PASS `window.parent` for top-level browsing context 
+PASS `window.parent` on single nested browsing context 
+PASS `window.parent` for multiple nested browsing contexts 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowparentnullexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+FAIL `window.parent` is null when browsing context container element removed assert_equals: expected null but got object &quot;[object Window]&quot;
+FAIL `window.parent` null when parent browsing context container removed assert_equals: expected null but got object &quot;[object Window]&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowparentnullhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,66 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;window.parent: `null`&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+async_test(t =&gt; {
+  var iframe = document.createElement('iframe');
+  iframe.onload  = t.step_func_done(() =&gt; {
+    var iWindow = iframe.contentWindow;
+    assert_equals(iWindow.parent, window);
+    document.body.removeChild(iframe);
+    assert_equals(iWindow.parent, null);
+  });
+
+  document.body.appendChild(iframe);
+}, '`window.parent` is null when browsing context container element removed');
+
+async_test(t =&gt; {
+  var iframe = document.createElement('iframe');
+  var iframe2, removedEl;
+
+  var testFunc = t.step_func(() =&gt; {
+    var frameWindow = iframe.contentWindow;
+    var frame2Window = iframe2.contentWindow;
+
+    assert_equals(frameWindow.parent, window);
+    assert_equals(frame2Window.parent, frameWindow);
+
+    iframe.removeEventListener('load', nestFrame);
+    iframe2.removeEventListener('load', testFunc);
+    removedEl = document.body.removeChild(iframe);
+
+    assert_equals(frameWindow.parent, null);
+    assert_equals(frame2Window.parent, null);
+
+    removedEl.addEventListener('load', t.step_func_done(() =&gt; {
+      // reattached iframe's browsing context will report window.parent again
+      assert_equals(removedEl.contentWindow.parent, window);
+      // The following window s are no longer referenced by active browsing contexts
+      assert_equals(frameWindow.parent, null);
+      assert_equals(frame2Window.parent, null);
+      // Per #the-iframe-element, reattaching a removed iframe will result in the
+      // browser creating a new browsing context once again, with a fresh
+      // document in our case, so the second iframe or any other elements
+      // previously added to iframe.contentDocument will be gone
+      assert_equals(removedEl.contentDocument.querySelector('iframe'), null);
+      assert_equals(removedEl.contentDocument.querySelector('hr'), null);
+    }));
+    document.body.appendChild(removedEl);
+  });
+
+  var nestFrame = function () {
+    iframe.contentDocument.body.appendChild(document.createElement('hr'));
+    iframe2 = iframe.contentDocument.createElement('iframe');
+    // Workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1229707
+    iframe2.src = '/common/blank.html';
+    iframe2.addEventListener('load', testFunc);
+    iframe.contentDocument.body.appendChild(iframe2);
+  };
+
+  iframe.addEventListener('load', nestFrame);
+  document.body.appendChild(iframe);
+}, '`window.parent` null when parent browsing context container removed');
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowparenthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,44 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;window.parent&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+ test(function() {
+   assert_equals(window, parent)
+ }, '`window.parent` for top-level browsing context');
+
+async_test(t =&gt; {
+  var iframe = document.createElement('iframe');
+  iframe.onload  = t.step_func_done(function () {
+    var iWindow = iframe.contentWindow;
+    assert_equals(iWindow.parent, window);
+  });
+  document.body.appendChild(iframe);
+}, '`window.parent` on single nested browsing context');
+
+async_test(t =&gt; {
+  var iframe = document.createElement('iframe');
+  var iframe2;
+
+  var testFunc = t.step_func_done(function () {
+    var frameWindow = iframe.contentWindow;
+    var frame2Window = iframe2.contentWindow;
+    assert_equals(frameWindow.parent, window);
+    assert_equals(frame2Window.parent, frameWindow);
+    assert_false(frame2Window.parent === window);
+  });
+
+  var nestFrame = function () {
+    iframe2 = iframe.contentDocument.createElement('iframe');
+    // Workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1229707
+    iframe2.src = '/common/blank.html';
+    iframe2.addEventListener('load', testFunc);
+    iframe.contentDocument.body.appendChild(iframe2);
+  };
+
+  iframe.addEventListener('load', nestFrame);
+  document.body.appendChild(iframe);
+}, '`window.parent` for multiple nested browsing contexts');
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowtopexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+
+PASS Top level browsing context 
+PASS One nested iframe 
+PASS Two nested iframes 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowtopnullexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-null-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-null-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-null-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+PASS `window.top` is null when browsing context container element removed 
+PASS `window.top`null when any ancestor browsing context container removed 

</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowtopnullhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-null.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-null.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-null.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,66 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;window.top: `null`&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+async_test(function (t) {
+  var iframe = document.createElement('iframe');
+  iframe.onload  = t.step_func_done(() =&gt; {
+    var iWindow = iframe.contentWindow;
+    /**
+     * `top` should return the top-level browsing context but will return
+     * `null` if none exists, such as when any of the BC's ancestor browsing
+     *  context container's document elements are disconnected/removed.
+     */
+    assert_equals(iWindow.top, window);
+    document.body.removeChild(iframe);
+    assert_equals(iWindow.top, null);
+  });
+
+  document.body.appendChild(iframe);
+}, '`window.top` is null when browsing context container element removed');
+
+async_test(t =&gt; {
+  var iframe = document.createElement('iframe');
+  var iframe2, removedEl;
+
+  var testFunc = t.step_func(() =&gt; {
+    var frameWindow = iframe.contentWindow;
+    var frame2Window = iframe2.contentWindow;
+
+    assert_equals(frameWindow.top, window);
+    assert_equals(frame2Window.top, window);
+
+    iframe.removeEventListener('load', nestFrame);
+    iframe2.removeEventListener('load', testFunc);
+
+    removedEl = document.body.removeChild(iframe);
+
+    assert_equals(frameWindow.top, null);
+    assert_equals(frame2Window.top, null);
+
+    removedEl.addEventListener('load', t.step_func_done(() =&gt; {
+      // reattached iframe's browsing context will report window.top
+      assert_equals(removedEl.contentWindow.top, window);
+      // removed/re-added iframes will have new browsing context / window
+      assert_equals(frameWindow.top, null);
+      assert_equals(frame2Window.top, null);
+    }));
+
+    document.body.appendChild(removedEl);
+  });
+
+  var nestFrame = function () {
+    iframe2 = iframe.contentDocument.createElement('iframe');
+    // Workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1229707
+    iframe2.src = '/common/blank.html';
+    iframe2.addEventListener('load', testFunc);
+    iframe.contentDocument.body.appendChild(iframe2);
+  };
+
+  iframe.addEventListener('load', nestFrame);
+  document.body.appendChild(iframe);
+}, '`window.top`null when any ancestor browsing context container removed');
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextswindowtophtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,65 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;window.top&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+test(function() {
+  assert_equals(window, top)
+}, &quot;Top level browsing context&quot;);
+
+function step_func(test) {
+  return function (top_pointer) {
+    test.step(function() {assert_equals(top_pointer, window);})
+    test.done();
+  }
+}
+
+var t1 = async_test(&quot;One nested iframe&quot;);
+t1.step(function() {
+  var iframe = document.createElement(&quot;iframe&quot;);
+  //iframe.src = &quot;data:text/html,&quot;
+
+  iframe.onload = t1.step_func(
+    function() {
+      var doc = iframe.contentDocument;
+      iframe.contentWindow.test_func = step_func(t1);
+
+      var script = doc.createElement(&quot;script&quot;)
+      script.textContent = &quot;test_func(top);&quot;
+      doc.body.appendChild(script);
+    });
+    document.body.appendChild(iframe);
+});
+
+var t2 = async_test(&quot;Two nested iframes&quot;);
+t2.step(function() {
+  var iframe = document.createElement(&quot;iframe&quot;);
+  //iframe.src = &quot;data:text/html,&quot;
+
+  iframe.onload = t2.step_func(
+    function() {
+      var doc = iframe.contentDocument;
+      iframe2 = document.createElement(&quot;iframe&quot;);
+      //iframe2.src = &quot;data:text/html,&quot;
+      // Workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1229707
+      iframe2.src = '/common/blank.html';
+
+      iframe2.onload = t2.step_func(
+        function() {
+          var doc2 = iframe2.contentDocument;
+
+          iframe2.contentWindow.test_func = step_func(t2);
+
+          var script = doc2.createElement(&quot;script&quot;)
+          script.textContent = &quot;test_func(top);&quot;
+          doc2.body.appendChild(script);
+        });
+      doc.body.appendChild(iframe2);
+   });
+
+  document.body.appendChild(iframe);
+});
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnoreferrercrossoriginclosemanualsubhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-cross-origin-close-manual.sub.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-cross-origin-close-manual.sub.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-cross-origin-close-manual.sub.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> &lt;meta charset=utf-8&gt;
</span><span class="cx"> &lt;p&gt;Follow this link to open a new browsing context and then confirm it can be closed:
</span><del>-&lt;a rel=noreferrer target=reallydoesnotmatter href=&quot;//天気の良い日.{{location[host]}}/html/browsers/windows/support-close.html&quot;&gt;link&lt;/a&gt;.
</del><ins>+&lt;a rel=noreferrer target=reallydoesnotmatter href=&quot;//天気の良い日.{{location[host]}}/html/browsers/windows/resources/window-close-button.html&quot;&gt;link&lt;/a&gt;.
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnoreferrercrossoriginwindownamemanualsubhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-cross-origin-window-name-manual.sub.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-cross-origin-window-name-manual.sub.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-cross-origin-window-name-manual.sub.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+&lt;meta charset=utf-8&gt;
+&lt;p&gt;Follow this link to open a new browsing context and then confirm it says &quot;idonteven&quot;:
+&lt;a rel=noreferrer target=idonteven href=&quot;//天気の良い日.{{location[host]}}/html/browsers/windows/resources/echo-window-name.html&quot;&gt;link&lt;/a&gt;.
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnoreferrernullopenerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-null-opener-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-null-opener-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-null-opener-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS rel=noreferrer nullifies window.opener 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnoreferrernullopenerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-null-opener.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-null-opener.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-null-opener.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;rel=noreferrer nullifies window.opener&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+  async_test(function(t) {
+    localStorage.clear()
+
+    var hyperlink = document.body.appendChild(document.createElement(&quot;a&quot;))
+    hyperlink.rel = &quot;noreferrer&quot;
+    hyperlink.target = &quot;_blank&quot;
+    hyperlink.href = &quot;resources/window-opener.html&quot;
+    hyperlink.click()
+    document.body.removeChild(hyperlink)
+
+    addEventListener(&quot;storage&quot;, function(e) {
+      t.step(function() {
+        assert_equals(e.newValue, &quot;null&quot;)
+        localStorage.clear()
+        t.done()
+      })
+    })
+  })
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnoreferrerwindownamehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx">       var hyperlink = document.body.appendChild(document.createElement(&quot;a&quot;))
</span><span class="cx">       hyperlink.rel = &quot;noreferrer&quot;
</span><span class="cx">       hyperlink.target = &quot;sufficientlyrandomwindownameamiright&quot;
</span><del>-      hyperlink.href = &quot;support-named-null-opener.html#&quot; + n
</del><ins>+      hyperlink.href = &quot;resources/noreferrer-window-name.html#&quot; + n
</ins><span class="cx">       return hyperlink
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcesbrowsingcontextwindowhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/browsing-context-window.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/browsing-context-window.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/browsing-context-window.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+&lt;script&gt;
+if (window.parent) {
+  window.parent.postMessage({
+    &quot;thisWindowEquivalency&quot;: (window === this)
+  }, &quot;*&quot;);
+}
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcesechowindownamehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/echo-window-name.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/echo-window-name.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/echo-window-name.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+&lt;script&gt;document.write(name)&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcesnestedposttoopenerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/nested-post-to-opener.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/nested-post-to-opener.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/nested-post-to-opener.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+&lt;body&gt;
+&lt;script&gt;
+  var i = document.createElement(&quot;iframe&quot;);
+  i.name = &quot;nested1&quot;;
+  document.body.appendChild(i);
+
+  window.opener.postMessage({
+    &quot;name&quot;: window.name,
+    &quot;isTop&quot;: window.top === window
+  }, &quot;*&quot;);
+&lt;/script&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcesnoreferrerwindownamehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/noreferrer-window-name.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/noreferrer-window-name.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/noreferrer-window-name.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;script&gt;
+  addEventListener(&quot;storage&quot;, function(e) {
+    if(e.newValue === &quot;close&quot;) {
+      close()
+    }
+  })
+  localStorage.setItem(&quot;window&quot; + location.hash.slice(1), &quot;tralala&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcesposttoopenerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/post-to-opener.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/post-to-opener.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/post-to-opener.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;script&gt;
+  if (window.opener) {
+    window.opener.postMessage({
+      &quot;name&quot;: window.name,
+      &quot;isTop&quot;: window.top === window
+    }, &quot;*&quot;);
+  }
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcestargetcrossoriginsubhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/target-cross-origin.sub.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/target-cross-origin.sub.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/target-cross-origin.sub.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+&lt;meta charset=utf-8&gt;
+&lt;p&gt;Follow this link to open a new browsing context in a separate origin.
+&lt;a target=second href=&quot;{{location[scheme]}}://{{domains[www2]}}:{{location[port]}}/html/browsers/windows/resources/target-cross-origin.sub.html&quot;&gt;link&lt;/a&gt;.
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourcesw3cimportlogfromrev213880trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsw3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/w3c-import.log (from rev 213880, trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/w3c-import.log) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/browsing-context-window.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/echo-window-name.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/nested-post-to-opener.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/noreferrer-window-name.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/post-to-opener.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/target-cross-origin.sub.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/window-close-button.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/window-opener.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourceswindowclosebuttonhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/window-close-button.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/window-close-button.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/window-close-button.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+&lt;p&gt;Clicking this button should close this browsing context: &lt;button onclick=window.close()&gt;button&lt;/button&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsresourceswindowopenerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/window-opener.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/window-opener.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/resources/window-opener.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+&lt;script&gt;
+  localStorage.setItem(&quot;opener&quot;, window.opener)
+  window.close()
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowstargetingmultiplecrossoriginmanualsubhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/targeting-multiple-cross-origin-manual.sub.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/targeting-multiple-cross-origin-manual.sub.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/targeting-multiple-cross-origin-manual.sub.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,9 +1,9 @@
</span><span class="cx"> &lt;meta charset=utf-8&gt;
</span><span class="cx"> &lt;p&gt;Follow this link to open a new browsing context in a separate origin. Follow the instructions
</span><span class="cx"> in that new window, and then come back to this window.
</span><del>-&lt;a target=first href=&quot;{{location[scheme]}}://{{domains[天気の良い日]}}:{{location[port]}}/html/browsers/windows/support-open-cross-origin.sub.html&quot;&gt;link&lt;/a&gt;.
</del><ins>+&lt;a target=first href=&quot;{{location[scheme]}}://{{domains[天気の良い日]}}:{{location[port]}}/html/browsers/windows/resources/target-cross-origin.sub.html&quot;&gt;link&lt;/a&gt;.
</ins><span class="cx"> 
</span><span class="cx"> &lt;p&gt;Once you come back to this page, follow this link.
</span><del>-&lt;a target=second href=&quot;support-window-name-echo.html&quot;&gt;link&lt;/a&gt;.
</del><ins>+&lt;a target=second href=&quot;resources/echo-window-name.html&quot;&gt;link&lt;/a&gt;.
</ins><span class="cx"> 
</span><span class="cx"> &lt;p&gt;After clicking that link, you should have three additional windows open.
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -15,15 +15,10 @@
</span><span class="cx"> None
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-window.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-cross-origin-close-manual.sub.html
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-cross-origin-window-name.sub.html
</del><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-cross-origin-window-name-manual.sub.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-null-opener.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name.html
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer.html
-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/support-close.html
-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/support-named-null-opener.html
-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/support-nested-browsing-contexts.html
-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/support-open-cross-origin.sub.html
-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/support-opener-null.html
-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/support-post-to-opener.html
-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/support-window-name-echo.html
</del><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/targeting-multiple-cross-origin-manual.sub.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomelementselementsinthedomhistoricalexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/elements-in-the-dom/historical-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/elements-in-the-dom/historical-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/elements-in-the-dom/historical-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -6,5 +6,6 @@
</span><span class="cx"> PASS HTMLElement member must be nuked: commandDisabled 
</span><span class="cx"> PASS HTMLElement member must be nuked: commandChecked 
</span><span class="cx"> PASS HTMLElement member must be nuked: commandTriggers 
</span><ins>+PASS HTMLElement member must be nuked: dropzone 
</ins><span class="cx"> PASS HTMLElement member must be nuked: inert 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomelementselementsinthedomhistoricalhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/elements-in-the-dom/historical.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/elements-in-the-dom/historical.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/elements-in-the-dom/historical.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -13,6 +13,8 @@
</span><span class="cx">   &quot;commandDisabled&quot;,
</span><span class="cx">   &quot;commandChecked&quot;,
</span><span class="cx">   &quot;commandTriggers&quot;,
</span><ins>+  // https://github.com/whatwg/html/pull/2402
+  &quot;dropzone&quot;,
</ins><span class="cx">   // https://github.com/whatwg/html/commit/5ddfc78b1f82e86cc202d72ccc752a0e15f1e4ad
</span><span class="cx">   &quot;inert&quot;,
</span><span class="cx"> ].forEach(function(member) {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfaceshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> &lt;!doctype html&gt;
</span><span class="cx"> &lt;meta charset=utf-8&gt;
</span><del>-&lt;!-- WARNING: These tests are preliminary and probably partly incorrect.  --&gt;
</del><ins>+&lt;!--  WARNING: These tests are preliminary and probably partly incorrect.   --&gt;
</ins><span class="cx"> &lt;title&gt;HTML IDL tests&lt;/title&gt;
</span><span class="cx"> &lt;meta name=timeout content=long&gt;
</span><span class="cx"> &lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfacesworkerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.worker-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.worker-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.worker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,511 @@
</span><ins>+CONSOLE MESSAGE: WebSocket network error: The operation couldn’t be completed. (kCFErrorDomainCFNetwork error 2.)
+
+PASS Test driver 
+PASS EventListener interface: existence and properties of interface object 
+PASS NodeList interface: existence and properties of interface object 
+PASS HTMLCollection interface: existence and properties of interface object 
+PASS MutationObserver interface: existence and properties of interface object 
+PASS MutationRecord interface: existence and properties of interface object 
+PASS Node interface: existence and properties of interface object 
+PASS Document interface: existence and properties of interface object 
+PASS XMLDocument interface: existence and properties of interface object 
+PASS DOMImplementation interface: existence and properties of interface object 
+PASS DocumentFragment interface: existence and properties of interface object 
+PASS DocumentType interface: existence and properties of interface object 
+PASS Element interface: existence and properties of interface object 
+PASS NamedNodeMap interface: existence and properties of interface object 
+PASS Attr interface: existence and properties of interface object 
+PASS CharacterData interface: existence and properties of interface object 
+PASS Text interface: existence and properties of interface object 
+PASS CDATASection interface: existence and properties of interface object 
+PASS ProcessingInstruction interface: existence and properties of interface object 
+PASS Comment interface: existence and properties of interface object 
+PASS Range interface: existence and properties of interface object 
+PASS NodeIterator interface: existence and properties of interface object 
+PASS TreeWalker interface: existence and properties of interface object 
+PASS NodeFilter interface: existence and properties of interface object 
+PASS DOMTokenList interface: existence and properties of interface object 
+PASS UIEvent interface: existence and properties of interface object 
+PASS MouseEvent interface: existence and properties of interface object 
+PASS Touch interface: existence and properties of interface object 
+PASS MediaList interface: existence and properties of interface object 
+PASS StyleSheet interface: existence and properties of interface object 
+PASS CSSStyleSheet interface: existence and properties of interface object 
+PASS CSSRule interface: existence and properties of interface object 
+PASS CSSStyleRule interface: existence and properties of interface object 
+PASS CSSImportRule interface: existence and properties of interface object 
+PASS CSSMediaRule interface: existence and properties of interface object 
+PASS CSSFontFaceRule interface: existence and properties of interface object 
+PASS CSSPageRule interface: existence and properties of interface object 
+PASS CSSNamespaceRule interface: existence and properties of interface object 
+PASS CSSStyleDeclaration interface: existence and properties of interface object 
+PASS CSSStyleDeclarationValue interface: existence and properties of interface object 
+PASS CSSPropertyValue interface: existence and properties of interface object 
+PASS HTMLAllCollection interface: existence and properties of interface object 
+PASS HTMLFormControlsCollection interface: existence and properties of interface object 
+PASS RadioNodeList interface: existence and properties of interface object 
+PASS HTMLOptionsCollection interface: existence and properties of interface object 
+PASS DOMStringMap interface: existence and properties of interface object 
+PASS HTMLElement interface: existence and properties of interface object 
+PASS HTMLUnknownElement interface: existence and properties of interface object 
+PASS HTMLHtmlElement interface: existence and properties of interface object 
+PASS HTMLHeadElement interface: existence and properties of interface object 
+PASS HTMLTitleElement interface: existence and properties of interface object 
+PASS HTMLBaseElement interface: existence and properties of interface object 
+PASS HTMLLinkElement interface: existence and properties of interface object 
+PASS HTMLMetaElement interface: existence and properties of interface object 
+PASS HTMLStyleElement interface: existence and properties of interface object 
+PASS HTMLBodyElement interface: existence and properties of interface object 
+PASS HTMLHeadingElement interface: existence and properties of interface object 
+PASS HTMLParagraphElement interface: existence and properties of interface object 
+PASS HTMLHRElement interface: existence and properties of interface object 
+PASS HTMLPreElement interface: existence and properties of interface object 
+PASS HTMLQuoteElement interface: existence and properties of interface object 
+PASS HTMLOListElement interface: existence and properties of interface object 
+PASS HTMLUListElement interface: existence and properties of interface object 
+PASS HTMLLIElement interface: existence and properties of interface object 
+PASS HTMLDListElement interface: existence and properties of interface object 
+PASS HTMLDivElement interface: existence and properties of interface object 
+PASS HTMLAnchorElement interface: existence and properties of interface object 
+PASS HTMLDataElement interface: existence and properties of interface object 
+PASS HTMLTimeElement interface: existence and properties of interface object 
+PASS HTMLSpanElement interface: existence and properties of interface object 
+PASS HTMLBRElement interface: existence and properties of interface object 
+PASS HTMLModElement interface: existence and properties of interface object 
+PASS HTMLPictureElement interface: existence and properties of interface object 
+PASS HTMLImageElement interface: existence and properties of interface object 
+PASS HTMLIFrameElement interface: existence and properties of interface object 
+PASS HTMLEmbedElement interface: existence and properties of interface object 
+PASS HTMLObjectElement interface: existence and properties of interface object 
+PASS HTMLParamElement interface: existence and properties of interface object 
+PASS HTMLVideoElement interface: existence and properties of interface object 
+PASS HTMLAudioElement interface: existence and properties of interface object 
+PASS HTMLSourceElement interface: existence and properties of interface object 
+PASS HTMLTrackElement interface: existence and properties of interface object 
+PASS HTMLMediaElement interface: existence and properties of interface object 
+PASS MediaError interface: existence and properties of interface object 
+PASS AudioTrackList interface: existence and properties of interface object 
+PASS AudioTrack interface: existence and properties of interface object 
+PASS VideoTrackList interface: existence and properties of interface object 
+PASS VideoTrack interface: existence and properties of interface object 
+PASS TextTrackList interface: existence and properties of interface object 
+PASS TextTrack interface: existence and properties of interface object 
+PASS TextTrackCueList interface: existence and properties of interface object 
+PASS TextTrackCue interface: existence and properties of interface object 
+PASS TimeRanges interface: existence and properties of interface object 
+PASS TrackEvent interface: existence and properties of interface object 
+PASS HTMLMapElement interface: existence and properties of interface object 
+PASS HTMLAreaElement interface: existence and properties of interface object 
+PASS HTMLTableElement interface: existence and properties of interface object 
+PASS HTMLTableCaptionElement interface: existence and properties of interface object 
+PASS HTMLTableColElement interface: existence and properties of interface object 
+PASS HTMLTableSectionElement interface: existence and properties of interface object 
+PASS HTMLTableRowElement interface: existence and properties of interface object 
+PASS HTMLTableCellElement interface: existence and properties of interface object 
+PASS HTMLFormElement interface: existence and properties of interface object 
+PASS HTMLLabelElement interface: existence and properties of interface object 
+PASS HTMLInputElement interface: existence and properties of interface object 
+PASS HTMLButtonElement interface: existence and properties of interface object 
+PASS HTMLSelectElement interface: existence and properties of interface object 
+PASS HTMLDataListElement interface: existence and properties of interface object 
+PASS HTMLOptGroupElement interface: existence and properties of interface object 
+PASS HTMLOptionElement interface: existence and properties of interface object 
+PASS HTMLTextAreaElement interface: existence and properties of interface object 
+PASS HTMLOutputElement interface: existence and properties of interface object 
+PASS HTMLProgressElement interface: existence and properties of interface object 
+PASS HTMLMeterElement interface: existence and properties of interface object 
+PASS HTMLFieldSetElement interface: existence and properties of interface object 
+PASS HTMLLegendElement interface: existence and properties of interface object 
+PASS ValidityState interface: existence and properties of interface object 
+PASS HTMLDetailsElement interface: existence and properties of interface object 
+PASS HTMLMenuElement interface: existence and properties of interface object 
+PASS HTMLMenuItemElement interface: existence and properties of interface object 
+PASS RelatedEvent interface: existence and properties of interface object 
+PASS HTMLDialogElement interface: existence and properties of interface object 
+PASS HTMLScriptElement interface: existence and properties of interface object 
+PASS HTMLTemplateElement interface: existence and properties of interface object 
+PASS HTMLSlotElement interface: existence and properties of interface object 
+PASS HTMLCanvasElement interface: existence and properties of interface object 
+PASS CanvasRenderingContext2D interface: existence and properties of interface object 
+PASS CanvasGradient interface: existence and properties of interface object 
+PASS CanvasPattern interface: existence and properties of interface object 
+PASS TextMetrics interface: existence and properties of interface object 
+PASS ImageData interface: existence and properties of interface object 
+PASS ImageData interface object length 
+PASS ImageData interface object name 
+PASS ImageData interface: existence and properties of interface prototype object 
+PASS ImageData interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS ImageData interface: attribute width 
+PASS ImageData interface: attribute height 
+PASS ImageData interface: attribute data 
+FAIL Path2D interface: existence and properties of interface object assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface object length assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface object name assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation addPath(Path2D,DOMMatrixInit) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation closePath() assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation moveTo(unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation lineTo(unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation quadraticCurveTo(unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation bezierCurveTo(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation arcTo(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation arcTo(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation rect(unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation arc(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,boolean) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation ellipse(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,boolean) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+PASS DataTransfer interface: existence and properties of interface object 
+PASS DataTransferItemList interface: existence and properties of interface object 
+PASS DataTransferItem interface: existence and properties of interface object 
+PASS DragEvent interface: existence and properties of interface object 
+PASS Window interface: existence and properties of interface object 
+PASS BarProp interface: existence and properties of interface object 
+PASS History interface: existence and properties of interface object 
+PASS Location interface: existence and properties of interface object 
+PASS PopStateEvent interface: existence and properties of interface object 
+PASS HashChangeEvent interface: existence and properties of interface object 
+PASS PageTransitionEvent interface: existence and properties of interface object 
+PASS BeforeUnloadEvent interface: existence and properties of interface object 
+PASS ApplicationCache interface: existence and properties of interface object 
+PASS ErrorEvent interface: existence and properties of interface object 
+PASS ErrorEvent interface object length 
+PASS ErrorEvent interface object name 
+PASS ErrorEvent interface: existence and properties of interface prototype object 
+PASS ErrorEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS ErrorEvent interface: attribute message 
+PASS ErrorEvent interface: attribute filename 
+PASS ErrorEvent interface: attribute lineno 
+PASS ErrorEvent interface: attribute colno 
+PASS ErrorEvent interface: attribute error 
+PASS Navigator interface: existence and properties of interface object 
+PASS PluginArray interface: existence and properties of interface object 
+PASS MimeTypeArray interface: existence and properties of interface object 
+PASS Plugin interface: existence and properties of interface object 
+PASS MimeType interface: existence and properties of interface object 
+PASS External interface: existence and properties of interface object 
+FAIL ImageBitmap interface: existence and properties of interface object assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+FAIL ImageBitmap interface object length assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+FAIL ImageBitmap interface object name assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+FAIL ImageBitmap interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+FAIL ImageBitmap interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+FAIL ImageBitmap interface: attribute width assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+FAIL ImageBitmap interface: attribute height assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+PASS MessageEvent interface: existence and properties of interface object 
+PASS MessageEvent interface object length 
+PASS MessageEvent interface object name 
+PASS MessageEvent interface: existence and properties of interface prototype object 
+PASS MessageEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS MessageEvent interface: attribute data 
+PASS MessageEvent interface: attribute origin 
+PASS MessageEvent interface: attribute lastEventId 
+PASS MessageEvent interface: attribute source 
+PASS MessageEvent interface: attribute ports 
+PASS MessageEvent interface: operation initMessageEvent(DOMString,boolean,boolean,any,DOMString,DOMString,[object Object],[object Object],[object Object]) 
+PASS MessageEvent must be primary interface of new MessageEvent(&quot;message&quot;, { data: 5 }) 
+PASS Stringification of new MessageEvent(&quot;message&quot;, { data: 5 }) 
+PASS MessageEvent interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;data&quot; with the proper type (0) 
+PASS MessageEvent interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;origin&quot; with the proper type (1) 
+PASS MessageEvent interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;lastEventId&quot; with the proper type (2) 
+PASS MessageEvent interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;source&quot; with the proper type (3) 
+FAIL MessageEvent interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;ports&quot; with the proper type (4) Unrecognized type [object Object]
+PASS MessageEvent interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;initMessageEvent&quot; with the proper type (5) 
+PASS MessageEvent interface: calling initMessageEvent(DOMString,boolean,boolean,any,DOMString,DOMString,[object Object],[object Object],[object Object]) on new MessageEvent(&quot;message&quot;, { data: 5 }) with too few arguments must throw TypeError 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;type&quot; with the proper type (0) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;target&quot; with the proper type (1) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;currentTarget&quot; with the proper type (2) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;NONE&quot; with the proper type (3) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;CAPTURING_PHASE&quot; with the proper type (4) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;AT_TARGET&quot; with the proper type (5) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;BUBBLING_PHASE&quot; with the proper type (6) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;eventPhase&quot; with the proper type (7) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;stopPropagation&quot; with the proper type (8) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;stopImmediatePropagation&quot; with the proper type (9) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;bubbles&quot; with the proper type (10) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;cancelable&quot; with the proper type (11) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;preventDefault&quot; with the proper type (12) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;defaultPrevented&quot; with the proper type (13) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must have own property &quot;isTrusted&quot; 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;timeStamp&quot; with the proper type (15) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;initEvent&quot; with the proper type (16) 
+FAIL Event interface: calling initEvent(DOMString,boolean,boolean) on new MessageEvent(&quot;message&quot;, { data: 5 }) with too few arguments must throw TypeError assert_throws: Called with 1 arguments function &quot;function () {
+            fn.apply(obj, args);
+        }&quot; did not throw
+PASS EventSource interface: existence and properties of interface object 
+PASS EventSource interface object length 
+PASS EventSource interface object name 
+PASS EventSource interface: existence and properties of interface prototype object 
+PASS EventSource interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS EventSource interface: attribute url 
+PASS EventSource interface: attribute withCredentials 
+PASS EventSource interface: constant CONNECTING on interface object 
+PASS EventSource interface: constant CONNECTING on interface prototype object 
+PASS EventSource interface: constant OPEN on interface object 
+PASS EventSource interface: constant OPEN on interface prototype object 
+PASS EventSource interface: constant CLOSED on interface object 
+PASS EventSource interface: constant CLOSED on interface prototype object 
+PASS EventSource interface: attribute readyState 
+PASS EventSource interface: attribute onopen 
+PASS EventSource interface: attribute onmessage 
+PASS EventSource interface: attribute onerror 
+PASS EventSource interface: operation close() 
+PASS WebSocket interface: existence and properties of interface object 
+PASS WebSocket interface object length 
+PASS WebSocket interface object name 
+PASS WebSocket interface: existence and properties of interface prototype object 
+PASS WebSocket interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS WebSocket interface: attribute url 
+PASS WebSocket interface: constant CONNECTING on interface object 
+PASS WebSocket interface: constant CONNECTING on interface prototype object 
+PASS WebSocket interface: constant OPEN on interface object 
+PASS WebSocket interface: constant OPEN on interface prototype object 
+PASS WebSocket interface: constant CLOSING on interface object 
+PASS WebSocket interface: constant CLOSING on interface prototype object 
+PASS WebSocket interface: constant CLOSED on interface object 
+PASS WebSocket interface: constant CLOSED on interface prototype object 
+PASS WebSocket interface: attribute readyState 
+PASS WebSocket interface: attribute bufferedAmount 
+PASS WebSocket interface: attribute onopen 
+PASS WebSocket interface: attribute onerror 
+PASS WebSocket interface: attribute onclose 
+PASS WebSocket interface: attribute extensions 
+PASS WebSocket interface: attribute protocol 
+PASS WebSocket interface: operation close(unsigned short,USVString) 
+PASS WebSocket interface: attribute onmessage 
+PASS WebSocket interface: attribute binaryType 
+PASS WebSocket interface: operation send(USVString) 
+PASS WebSocket interface: operation send(Blob) 
+PASS WebSocket interface: operation send(ArrayBuffer) 
+PASS WebSocket interface: operation send(ArrayBufferView) 
+PASS WebSocket must be primary interface of new WebSocket(&quot;ws://foo&quot;) 
+PASS Stringification of new WebSocket(&quot;ws://foo&quot;) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;url&quot; with the proper type (0) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;CONNECTING&quot; with the proper type (1) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;OPEN&quot; with the proper type (2) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;CLOSING&quot; with the proper type (3) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;CLOSED&quot; with the proper type (4) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;readyState&quot; with the proper type (5) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;bufferedAmount&quot; with the proper type (6) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;onopen&quot; with the proper type (7) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;onerror&quot; with the proper type (8) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;onclose&quot; with the proper type (9) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;extensions&quot; with the proper type (10) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;protocol&quot; with the proper type (11) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;close&quot; with the proper type (12) 
+PASS WebSocket interface: calling close(unsigned short,USVString) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;onmessage&quot; with the proper type (13) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;binaryType&quot; with the proper type (14) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;send&quot; with the proper type (15) 
+PASS WebSocket interface: calling send(USVString) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;send&quot; with the proper type (16) 
+PASS WebSocket interface: calling send(Blob) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;send&quot; with the proper type (17) 
+PASS WebSocket interface: calling send(ArrayBuffer) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;send&quot; with the proper type (18) 
+PASS WebSocket interface: calling send(ArrayBufferView) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS EventTarget interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;addEventListener&quot; with the proper type (0) 
+PASS EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS EventTarget interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;removeEventListener&quot; with the proper type (1) 
+PASS EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS EventTarget interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;dispatchEvent&quot; with the proper type (2) 
+PASS EventTarget interface: calling dispatchEvent(Event) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+FAIL CloseEvent interface: existence and properties of interface object assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface object length assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface object name assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface: attribute wasClean assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface: attribute code assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface: attribute reason assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent must be primary interface of new CloseEvent(&quot;close&quot;) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Stringification of new CloseEvent(&quot;close&quot;) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL CloseEvent interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;wasClean&quot; with the proper type (0) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL CloseEvent interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;code&quot; with the proper type (1) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL CloseEvent interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;reason&quot; with the proper type (2) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;type&quot; with the proper type (0) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;target&quot; with the proper type (1) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;currentTarget&quot; with the proper type (2) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;NONE&quot; with the proper type (3) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;CAPTURING_PHASE&quot; with the proper type (4) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;AT_TARGET&quot; with the proper type (5) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;BUBBLING_PHASE&quot; with the proper type (6) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;eventPhase&quot; with the proper type (7) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;stopPropagation&quot; with the proper type (8) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;stopImmediatePropagation&quot; with the proper type (9) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;bubbles&quot; with the proper type (10) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;cancelable&quot; with the proper type (11) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;preventDefault&quot; with the proper type (12) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;defaultPrevented&quot; with the proper type (13) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must have own property &quot;isTrusted&quot; assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;timeStamp&quot; with the proper type (15) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;initEvent&quot; with the proper type (16) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: calling initEvent(DOMString,boolean,boolean) on new CloseEvent(&quot;close&quot;) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+PASS MessageChannel interface: existence and properties of interface object 
+PASS MessageChannel interface object length 
+PASS MessageChannel interface object name 
+PASS MessageChannel interface: existence and properties of interface prototype object 
+PASS MessageChannel interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS MessageChannel interface: attribute port1 
+PASS MessageChannel interface: attribute port2 
+PASS MessagePort interface: existence and properties of interface object 
+PASS MessagePort interface object length 
+PASS MessagePort interface object name 
+PASS MessagePort interface: existence and properties of interface prototype object 
+PASS MessagePort interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS MessagePort interface: operation postMessage(any,[object Object]) 
+PASS MessagePort interface: operation start() 
+PASS MessagePort interface: operation close() 
+PASS MessagePort interface: attribute onmessage 
+FAIL BroadcastChannel interface: existence and properties of interface object assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface object length assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface object name assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface: attribute name assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface: operation postMessage(any) assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface: operation close() assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface: attribute onmessage assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+PASS WorkerGlobalScope interface: existence and properties of interface object 
+PASS WorkerGlobalScope interface object length 
+PASS WorkerGlobalScope interface object name 
+PASS WorkerGlobalScope interface: existence and properties of interface prototype object 
+PASS WorkerGlobalScope interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS WorkerGlobalScope interface: attribute self 
+PASS WorkerGlobalScope interface: attribute location 
+PASS WorkerGlobalScope interface: attribute navigator 
+PASS WorkerGlobalScope interface: operation importScripts(USVString) 
+PASS WorkerGlobalScope interface: attribute onerror 
+FAIL WorkerGlobalScope interface: attribute onlanguagechange assert_true: The prototype object must have a property &quot;onlanguagechange&quot; expected true got false
+PASS WorkerGlobalScope interface: attribute onoffline 
+PASS WorkerGlobalScope interface: attribute ononline 
+FAIL WorkerGlobalScope interface: attribute origin assert_true: The prototype object must have a property &quot;origin&quot; expected true got false
+PASS WorkerGlobalScope interface: operation btoa(DOMString) 
+PASS WorkerGlobalScope interface: operation atob(DOMString) 
+PASS WorkerGlobalScope interface: operation setTimeout(TimerHandler,long,any) 
+PASS WorkerGlobalScope interface: operation clearTimeout(long) 
+PASS WorkerGlobalScope interface: operation setInterval(TimerHandler,long,any) 
+PASS WorkerGlobalScope interface: operation clearInterval(long) 
+FAIL WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource,ImageBitmapOptions) assert_own_property: interface prototype object missing non-static operation expected property &quot;createImageBitmap&quot; missing
+FAIL WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource,long,long,long,long,ImageBitmapOptions) assert_own_property: interface prototype object missing non-static operation expected property &quot;createImageBitmap&quot; missing
+PASS DedicatedWorkerGlobalScope interface: existence and properties of interface object 
+PASS DedicatedWorkerGlobalScope interface object length 
+PASS DedicatedWorkerGlobalScope interface object name 
+PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object 
+PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS DedicatedWorkerGlobalScope interface: operation postMessage(any,[object Object]) 
+FAIL DedicatedWorkerGlobalScope interface: attribute onmessage The DedicatedWorkerGlobalScope.onmessage getter can only be used on instances of DedicatedWorkerGlobalScope
+PASS DedicatedWorkerGlobalScope must be primary interface of self 
+PASS Stringification of self 
+PASS DedicatedWorkerGlobalScope interface: self must inherit property &quot;postMessage&quot; with the proper type (0) 
+PASS DedicatedWorkerGlobalScope interface: calling postMessage(any,[object Object]) on self with too few arguments must throw TypeError 
+PASS DedicatedWorkerGlobalScope interface: self must inherit property &quot;onmessage&quot; with the proper type (1) 
+PASS WorkerGlobalScope interface: self must inherit property &quot;self&quot; with the proper type (0) 
+PASS WorkerGlobalScope interface: self must inherit property &quot;location&quot; with the proper type (1) 
+PASS WorkerGlobalScope interface: self must inherit property &quot;navigator&quot; with the proper type (2) 
+PASS WorkerGlobalScope interface: self must inherit property &quot;importScripts&quot; with the proper type (3) 
+PASS WorkerGlobalScope interface: calling importScripts(USVString) on self with too few arguments must throw TypeError 
+PASS WorkerGlobalScope interface: self must inherit property &quot;onerror&quot; with the proper type (4) 
+FAIL WorkerGlobalScope interface: self must inherit property &quot;onlanguagechange&quot; with the proper type (5) assert_inherits: property &quot;onlanguagechange&quot; not found in prototype chain
+PASS WorkerGlobalScope interface: self must inherit property &quot;onoffline&quot; with the proper type (6) 
+PASS WorkerGlobalScope interface: self must inherit property &quot;ononline&quot; with the proper type (7) 
+FAIL WorkerGlobalScope interface: self must inherit property &quot;origin&quot; with the proper type (8) assert_inherits: property &quot;origin&quot; not found in prototype chain
+PASS WorkerGlobalScope interface: self must inherit property &quot;btoa&quot; with the proper type (9) 
+PASS WorkerGlobalScope interface: calling btoa(DOMString) on self with too few arguments must throw TypeError 
+PASS WorkerGlobalScope interface: self must inherit property &quot;atob&quot; with the proper type (10) 
+PASS WorkerGlobalScope interface: calling atob(DOMString) on self with too few arguments must throw TypeError 
+PASS WorkerGlobalScope interface: self must inherit property &quot;setTimeout&quot; with the proper type (11) 
+PASS WorkerGlobalScope interface: calling setTimeout(TimerHandler,long,any) on self with too few arguments must throw TypeError 
+PASS WorkerGlobalScope interface: self must inherit property &quot;clearTimeout&quot; with the proper type (12) 
+PASS WorkerGlobalScope interface: calling clearTimeout(long) on self with too few arguments must throw TypeError 
+PASS WorkerGlobalScope interface: self must inherit property &quot;setInterval&quot; with the proper type (13) 
+PASS WorkerGlobalScope interface: calling setInterval(TimerHandler,long,any) on self with too few arguments must throw TypeError 
+PASS WorkerGlobalScope interface: self must inherit property &quot;clearInterval&quot; with the proper type (14) 
+PASS WorkerGlobalScope interface: calling clearInterval(long) on self with too few arguments must throw TypeError 
+FAIL WorkerGlobalScope interface: self must inherit property &quot;createImageBitmap&quot; with the proper type (15) assert_inherits: property &quot;createImageBitmap&quot; not found in prototype chain
+FAIL WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource,ImageBitmapOptions) on self with too few arguments must throw TypeError assert_inherits: property &quot;createImageBitmap&quot; not found in prototype chain
+FAIL WorkerGlobalScope interface: self must inherit property &quot;createImageBitmap&quot; with the proper type (16) assert_inherits: property &quot;createImageBitmap&quot; not found in prototype chain
+FAIL WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource,long,long,long,long,ImageBitmapOptions) on self with too few arguments must throw TypeError assert_inherits: property &quot;createImageBitmap&quot; not found in prototype chain
+PASS EventTarget interface: self must inherit property &quot;addEventListener&quot; with the proper type (0) 
+PASS EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on self with too few arguments must throw TypeError 
+PASS EventTarget interface: self must inherit property &quot;removeEventListener&quot; with the proper type (1) 
+PASS EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on self with too few arguments must throw TypeError 
+PASS EventTarget interface: self must inherit property &quot;dispatchEvent&quot; with the proper type (2) 
+PASS EventTarget interface: calling dispatchEvent(Event) on self with too few arguments must throw TypeError 
+FAIL SharedWorkerGlobalScope interface: existence and properties of interface object assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface object length assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface object name assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface: attribute name assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface: attribute applicationCache assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface: attribute onconnect assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL Worker interface: existence and properties of interface object assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface object length assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface object name assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface: operation terminate() assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface: operation postMessage(any,[object Object]) assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface: attribute onmessage assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface: attribute onerror assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL SharedWorker interface: existence and properties of interface object assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+FAIL SharedWorker interface object length assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+FAIL SharedWorker interface object name assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+FAIL SharedWorker interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+FAIL SharedWorker interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+FAIL SharedWorker interface: attribute port assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+FAIL SharedWorker interface: attribute onerror assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+PASS WorkerNavigator interface: existence and properties of interface object 
+PASS WorkerNavigator interface object length 
+PASS WorkerNavigator interface object name 
+PASS WorkerNavigator interface: existence and properties of interface prototype object 
+PASS WorkerNavigator interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS WorkerNavigator interface: attribute appCodeName 
+PASS WorkerNavigator interface: attribute appName 
+PASS WorkerNavigator interface: attribute appVersion 
+PASS WorkerNavigator interface: attribute platform 
+PASS WorkerNavigator interface: attribute product 
+FAIL WorkerNavigator interface: attribute productSub assert_true: The prototype object must have a property &quot;productSub&quot; expected true got false
+PASS WorkerNavigator interface: attribute userAgent 
+FAIL WorkerNavigator interface: attribute vendor assert_true: The prototype object must have a property &quot;vendor&quot; expected true got false
+FAIL WorkerNavigator interface: attribute vendorSub assert_true: The prototype object must have a property &quot;vendorSub&quot; expected true got false
+PASS WorkerNavigator interface: attribute language 
+PASS WorkerNavigator interface: attribute languages 
+PASS WorkerNavigator interface: attribute onLine 
+PASS WorkerNavigator must be primary interface of self.navigator 
+PASS Stringification of self.navigator 
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;appCodeName&quot; with the proper type (0) 
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;appName&quot; with the proper type (1) 
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;appVersion&quot; with the proper type (2) 
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;platform&quot; with the proper type (3) 
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;product&quot; with the proper type (4) 
+FAIL WorkerNavigator interface: self.navigator must inherit property &quot;productSub&quot; with the proper type (5) assert_inherits: property &quot;productSub&quot; not found in prototype chain
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;userAgent&quot; with the proper type (6) 
+FAIL WorkerNavigator interface: self.navigator must inherit property &quot;vendor&quot; with the proper type (7) assert_inherits: property &quot;vendor&quot; not found in prototype chain
+FAIL WorkerNavigator interface: self.navigator must inherit property &quot;vendorSub&quot; with the proper type (8) assert_inherits: property &quot;vendorSub&quot; not found in prototype chain
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;language&quot; with the proper type (9) 
+FAIL WorkerNavigator interface: self.navigator must inherit property &quot;languages&quot; with the proper type (10) Unrecognized type [object Object]
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;onLine&quot; with the proper type (11) 
+PASS WorkerLocation interface: existence and properties of interface object 
+PASS WorkerLocation interface object length 
+PASS WorkerLocation interface object name 
+PASS WorkerLocation interface: existence and properties of interface prototype object 
+PASS WorkerLocation interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS WorkerLocation interface: attribute href 
+PASS WorkerLocation interface: stringifier 
+PASS WorkerLocation interface: attribute origin 
+PASS WorkerLocation interface: attribute protocol 
+PASS WorkerLocation interface: attribute host 
+PASS WorkerLocation interface: attribute hostname 
+PASS WorkerLocation interface: attribute port 
+PASS WorkerLocation interface: attribute pathname 
+PASS WorkerLocation interface: attribute search 
+PASS WorkerLocation interface: attribute hash 
+PASS Storage interface: existence and properties of interface object 
+PASS StorageEvent interface: existence and properties of interface object 
+PASS HTMLAppletElement interface: existence and properties of interface object 
+PASS HTMLMarqueeElement interface: existence and properties of interface object 
+PASS HTMLFrameSetElement interface: existence and properties of interface object 
+PASS HTMLFrameElement interface: existence and properties of interface object 
+PASS HTMLDirectoryElement interface: existence and properties of interface object 
+PASS HTMLFontElement interface: existence and properties of interface object 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfacesworkerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.worker.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.worker.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.worker.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+&lt;!-- This file is required for WebKit test infrastructure to run the templated test --&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfacesworkerjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.worker.js (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.worker.js                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.worker.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+&quot;use strict&quot;;
+
+importScripts(&quot;/resources/testharness.js&quot;);
+importScripts(&quot;/resources/WebIDLParser.js&quot;, &quot;/resources/idlharness.js&quot;);
+
+function doTest([untested, tested]) {
+  var idlArray = new IdlArray();
+  idlArray.add_untested_idls(untested);
+  idlArray.add_idls(tested);
+
+  idlArray.add_objects({
+    WorkerNavigator: ['self.navigator'],
+    WebSocket: ['new WebSocket(&quot;ws://foo&quot;)'],
+    CloseEvent: ['new CloseEvent(&quot;close&quot;)'],
+    Worker: [],
+    MessageEvent: ['new MessageEvent(&quot;message&quot;, { data: 5 })'],
+    DedicatedWorkerGlobalScope: ['self'],
+  });
+
+  idlArray.test();
+};
+
+function fetchData(url) {
+  return fetch(url).then((response) =&gt; response.text());
+}
+
+promise_test(function() {
+  return Promise.all([fetchData(&quot;resources/untested-interfaces.idl&quot;),
+                      fetchData(&quot;resources/interfaces.idl&quot;)])
+                .then(doTest);
+}, &quot;Test driver&quot;);
+
+done();
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomreflectionjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -789,8 +789,7 @@
</span><span class="cx">     // Don't try to test the defaultVal -- it should be either 0 or -1, but the
</span><span class="cx">     // rules are complicated, and a lot of them are SHOULDs.
</span><span class="cx">     ReflectionTests.reflects({type: &quot;long&quot;, defaultVal: null}, &quot;tabIndex&quot;, element);
</span><del>-    // TODO: classList, contextMenu, itemProp, itemRef, dropzone (require
-    // tokenlist support)
</del><ins>+    // TODO: classList, contextMenu, itemProp, itemRef
</ins><span class="cx"> 
</span><span class="cx">     for (var idlAttrName in elements[element]) {
</span><span class="cx">         var type = elements[element][idlAttrName];
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomresourcesselforiginsubframehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/resources/self-origin-subframe.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/resources/self-origin-subframe.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/resources/self-origin-subframe.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;script&gt;
+  window.onmessage = function(e){
+    if (e.data == &quot;getOrigin&quot;) {
+      parent.postMessage(self.origin, &quot;*&quot;);
+    } else if (e.data == &quot;setDomainAndGetOrigin&quot;) {
+      var oldDomain = document.domain;
+      try {
+        document.domain = document.domain.replace(/^[^.]*./, &quot;&quot;);
+      } catch (e) {
+        parent.postMessage(&quot;THREW WHEN SETTING DOMAIN: &quot; + e, &quot;*&quot;);
+        return;
+      }
+      if (oldDomain === document.domain) {
+        parent.postMessage(&quot;FAILED TO SET DOMAIN&quot;, &quot;*&quot;);
+      } else {
+        parent.postMessage(self.origin, &quot;*&quot;);
+      }
+    } else {
+      parent.postMessage(&quot;UNEXPECTED MESSAGE&quot;, &quot;*&quot;);
+    }
+  }
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomresourcesw3cimportlogfromrev213880trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersofflinew3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/resources/w3c-import.log (from rev 213880, trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/w3c-import.log) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/resources/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/resources/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/html/dom/resources/interfaces.idl
+/LayoutTests/imported/w3c/web-platform-tests/html/dom/resources/self-origin-subframe.html
+/LayoutTests/imported/w3c/web-platform-tests/html/dom/resources/untested-interfaces.idl
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginanyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.any-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.any-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.any-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL self.origin should be correct assert_equals: expected (string) &quot;http://localhost:8800&quot; but got (undefined) undefined
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginanyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.any.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.any.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.any.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+&lt;!-- This file is required for WebKit test infrastructure to run the templated test --&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginanyjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.any.js (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.any.js                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.any.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+&quot;use strict&quot;;
+
+test(function() {
+  assert_equals(self.origin, &quot;http://&quot; + location.host);
+}, &quot;self.origin should be correct&quot;);
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginsubexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.sub-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.sub-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.sub-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+Blocked access to external URL http://www1.localhost:8801/html/dom/resources/self-origin-subframe.html
+Blocked access to external URL http://xn--lve-6lad.localhost:8801/html/dom/resources/self-origin-subframe.html
+
+Harness Error (TIMEOUT), message = null
+
+PASS Assigning blob url 
+NOTRUN Should have the right origin for cross-origin subframe 
+NOTRUN Should have the right origin for cross-origin subframe after setting document.domain 
+NOTRUN Should have the right origin for IDN subframe 
+NOTRUN Should have the right origin for IDN subframe after setting document.domain 
+NOTRUN Should have the right origin for sandboxed iframe 
+FAIL We should have the right origin for our page assert_equals: expected (string) &quot;http://localhost:8800&quot; but got (undefined) undefined
+FAIL about:blank subframe origins assert_equals: Should have the right origin for about:blank iframe expected (string) &quot;http://localhost:8800&quot; but got (undefined) undefined
+FAIL blob: subframe origins assert_equals: Should have the right location origin for blob: iframe expected &quot;http://localhost:8800&quot; but got &quot;null&quot;
+FAIL javascript: subframe origins assert_equals: Should have the right origin for javascript: iframe expected (string) &quot;http://localhost:8800&quot; but got (undefined) undefined
+FAIL srcdoc subframe origins assert_equals: Should have the right origin for srcdoc iframe expected (string) &quot;http://localhost:8800&quot; but got (undefined) undefined
+       
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginsubhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.sub.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.sub.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.sub.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,93 @@
</span><ins>+&lt;!DOCTYPE HTML&gt;
+&lt;meta charset=utf-8&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;iframe&gt;&lt;/iframe&gt;
+&lt;iframe id=&quot;blob-test&quot;&gt;&lt;/iframe&gt; &lt;!--  will get blob: URI  --&gt;
+&lt;iframe src=&quot;javascript:'javascript'&quot;&gt;&lt;/iframe&gt;
+&lt;iframe srcdoc=&quot;srcdoc&quot;&gt;&lt;/iframe&gt;
+&lt;!--  Use the non-default HTTP port so we can make sure it gets included in
+     self.origin  --&gt;
+&lt;iframe src=&quot;http://{{domains[www1]}}:{{ports[http][1]}}{{location[path]}}/../resources/self-origin-subframe.html&quot;&gt;&lt;/iframe&gt;
+&lt;!--  Using the punycode version on purpose, we expect to get back the IDNA
+     version in self.origin  --&gt;
+&lt;iframe src=&quot;http://xn--lve-6lad.{{domains[]}}:{{ports[http][1]}}{{location[path]}}/../resources/self-origin-subframe.html&quot;&gt;&lt;/iframe&gt;
+&lt;iframe src=&quot;resources/self-origin-subframe.html&quot; sandbox=&quot;allow-scripts&quot;&gt;&lt;/iframe&gt;
+&lt;script type=&quot;application/javascript&quot;&gt;
+test(function() {
+  var blob = new Blob(['blob']);
+  var url = URL.createObjectURL(blob);
+  document.getElementById(&quot;blob-test&quot;).src = url;
+}, &quot;Assigning blob url&quot;);
+
+/* Each message test is a four things: window to send message to, message to
+   send, expected response, async test to use. */
+var messageTests = [
+  [ frames[4], &quot;getOrigin&quot;, &quot;http://{{domains[www1]}}:{{ports[http][1]}}&quot;,
+    async_test(&quot;Should have the right origin for cross-origin subframe&quot;) ],
+  [ frames[4], &quot;setDomainAndGetOrigin&quot;, &quot;http://{{domains[www1]}}:{{ports[http][1]}}&quot;,
+    async_test(&quot;Should have the right origin for cross-origin subframe after setting document.domain&quot;) ],
+  [ frames[5], &quot;getOrigin&quot;, &quot;http://élève.{{domains[]}}:{{ports[http][1]}}&quot;,
+    async_test(&quot;Should have the right origin for IDN subframe&quot;) ],
+  [ frames[5], &quot;setDomainAndGetOrigin&quot;, &quot;http://élève.{{domains[]}}:{{ports[http][1]}}&quot;,
+    async_test(&quot;Should have the right origin for IDN subframe after setting document.domain&quot;) ],
+  [ frames[6], &quot;getOrigin&quot;, &quot;null&quot;,
+    async_test(&quot;Should have the right origin for sandboxed iframe&quot;) ],
+];
+
+var curTest = 0;
+function nextMessageTest() {
+  if (curTest == messageTests.length) {
+    return;
+  }
+
+  var testData = messageTests[curTest];
+  testData[0].postMessage(testData[1], &quot;*&quot;);
+}
+
+window.onmessage = function(e) {
+  var testData = messageTests[curTest++];
+  testData[3].step_func(function() {
+    assert_equals(e.data, testData[2])
+  });
+  testData[3].done();
+  nextMessageTest();
+}
+
+addEventListener(&quot;load&quot;, nextMessageTest);
+
+test(function() {
+  assert_equals(self.origin, &quot;http://{{location[host]}}&quot;);
+}, &quot;We should have the right origin for our page&quot;);
+
+var t1 = async_test(&quot;about:blank subframe origins&quot;);
+addEventListener(&quot;load&quot;, t1.step_func_done(function() {
+  assert_equals(frames[0].location.origin, &quot;null&quot;,
+                &quot;Should have the right location origin for about:blank iframe&quot;);
+  assert_equals(frames[0].origin, &quot;http://{{location[host]}}&quot;,
+                &quot;Should have the right origin for about:blank iframe&quot;);
+}));
+
+var t2 = async_test(&quot;blob: subframe origins&quot;);
+addEventListener(&quot;load&quot;, t2.step_func_done(function() {
+  assert_equals(frames[1].location.origin, &quot;http://{{location[host]}}&quot;,
+                &quot;Should have the right location origin for blob: iframe&quot;);
+  assert_equals(frames[1].origin, &quot;http://{{location[host]}}&quot;,
+                &quot;Should have the right origin for blob: iframe&quot;);
+}));
+
+var t3 = async_test(&quot;javascript: subframe origins&quot;);
+addEventListener(&quot;load&quot;, t3.step_func_done(function() {
+  assert_equals(frames[2].origin, &quot;http://{{location[host]}}&quot;,
+                &quot;Should have the right origin for javascript: iframe&quot;);
+}));
+
+var t4 = async_test(&quot;srcdoc subframe origins&quot;);
+addEventListener(&quot;load&quot;, t4.step_func_done(function() {
+  assert_equals(frames[3].location.origin, &quot;null&quot;,
+                &quot;Should have the right location origin for srcdoc iframe&quot;);
+  assert_equals(frames[3].origin, &quot;http://{{location[host]}}&quot;,
+                &quot;Should have the right origin for srcdoc iframe&quot;);
+}));
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginworkerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.worker-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.worker-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.worker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+Harness Error (FAIL), message = Error in worker: [object Event]
+
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomselforiginworkerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.worker.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.worker.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.worker.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+&lt;!-- This file is required for WebKit test infrastructure to run the templated test --&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -25,6 +25,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/dom/elements-tabular.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/dom/elements-text.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces.worker.js
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/dom/new-harness.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/dom/original-harness.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-embedded.html
</span><span class="lines">@@ -37,3 +38,5 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-tabular.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-text.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection.js
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.any.js
+/LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.sub.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsdocumentmetadatastylingLinkStylehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/styling/LinkStyle.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/styling/LinkStyle.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/styling/LinkStyle.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -29,14 +29,27 @@
</span><span class="cx">     &lt;div id=&quot;test&quot; style=&quot;display:none&quot;&gt;STYLING TEST&lt;/div&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;script&gt;
</span><del>-      test(function() {
-        var style = null,
-            i;
-        for (i = 1; i &lt; 5; i++) {
-          style = document.getElementById(&quot;style&quot; + i);
-          assert_equals(style.sheet, null, &quot;The sheet attribute of style&quot; + i + &quot; should be null.&quot;);
-          assert_false(style.disabled, &quot;The disabled attribute of style&quot; + i + &quot; should be false.&quot;);
-        }
</del><ins>+      /**
+       * Browsers may incorrectly issue requests for these resources and defer
+       * definition of the `sheet` attribute until after loading is complete.
+       * In such cases, synchronous assertions regarding the absence of
+       * attributes will spuriously pass.
+       *
+       * In order to account for this incorrect behavior (exhibited at the time
+       * of this writing most notably by the Chromium browser), defer the
+       * assertions until the &quot;load&quot; event has been triggered.
+       */
+      async_test(function(t) {
+        window.addEventListener(&quot;load&quot;, t.step_func(function() {
+          var style = null,
+              i;
+          for (i = 1; i &lt; 5; i++) {
+            style = document.getElementById(&quot;style&quot; + i);
+            assert_equals(style.sheet, null, &quot;The sheet attribute of style&quot; + i + &quot; should be null.&quot;);
+            assert_false(style.disabled, &quot;The disabled attribute of style&quot; + i + &quot; should be false.&quot;);
+          }
+          t.done();
+        }));
</ins><span class="cx">       }, &quot;The LinkStyle interface's sheet attribute must return null; the disabled attribute must be false&quot;);
</span><span class="cx"> 
</span><span class="cx">       test(function() {
</span><span class="lines">@@ -46,14 +59,17 @@
</span><span class="cx">         assert_equals(link.sheet, null, &quot;The sheet attribute of the link element not in a document should be null.&quot;);
</span><span class="cx">       }, &quot;The LinkStyle interface's sheet attribute must return null if the corresponding element is not in a Document&quot;);
</span><span class="cx"> 
</span><del>-      test(function() {
-        var style = null,
-            i;
-        for (i = 5; i &lt; 8; i++) {
-          style = document.getElementById(&quot;style&quot; + i);
-          assert_true(style.sheet instanceof StyleSheet, &quot;The sheet attribute of style&quot; + i + &quot; should be a StyleSheet object.&quot;);
-          assert_equals(style.disabled, style.sheet.disabled, &quot;The disabled attribute of style&quot; + i + &quot; should equal to the same attribute of StyleSheet.&quot;);
-        }
</del><ins>+      async_test(function(t) {
+        window.addEventListener(&quot;load&quot;, t.step_func(function() {
+          var style = null,
+              i;
+          for (i = 5; i &lt; 8; i++) {
+            style = document.getElementById(&quot;style&quot; + i);
+            assert_true(style.sheet instanceof StyleSheet, &quot;The sheet attribute of style&quot; + i + &quot; should be a StyleSheet object.&quot;);
+            assert_equals(style.disabled, style.sheet.disabled, &quot;The disabled attribute of style&quot; + i + &quot; should equal to the same attribute of StyleSheet.&quot;);
+          }
+          t.done();
+        }));
</ins><span class="cx">       }, &quot;The LinkStyle interface's sheet attribute must return StyleSheet object; the disabled attribute must be same as the StyleSheet's disabled attribute&quot;);
</span><span class="cx"> 
</span><span class="cx">       test(function() {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentmediaelementsreadystatesautoplaywithslowtexttracksexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+CONSOLE MESSAGE: line 31: TypeError: null is not an object (evaluating 'track.track.cues.length')
+CONSOLE MESSAGE: line 31: TypeError: null is not an object (evaluating 'track.track.cues.length')
+CONSOLE MESSAGE: line 31: TypeError: null is not an object (evaluating 'track.track.cues.length')
+CONSOLE MESSAGE: line 31: TypeError: null is not an object (evaluating 'track.track.cues.length')
+CONSOLE MESSAGE: line 31: TypeError: null is not an object (evaluating 'track.track.cues.length')
+
+Harness Error (FAIL), message = TypeError: null is not an object (evaluating 'track.track.cues.length')
+
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentmediaelementsreadystatesautoplaywithslowtexttrackshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,45 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;autoplay with slow text tracks&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/common/media.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+// https://html.spec.whatwg.org/#ready-states says:
+//
+// HAVE_FUTURE_DATA: &quot;the text tracks are ready&quot;.
+// HAVE_ENOUGH_DATA: All the conditions described for the HAVE_FUTURE_DATA state are met, ...
+//
+// When the ready state of a media element whose networkState is not NETWORK_EMPTY changes,
+// the user agent must follow the steps given below:
+// If the new ready state is HAVE_ENOUGH_DATA
+// (autoplay)
+//
+// So if the text tracks are not yet ready, we can't autoplay.
+
+var started = 0;
+var numOfTests = 5;
+
+function createTest() {
+  var video = document.createElement('video');
+  video.src = getVideoURI('/media/movie_5');
+  video.autoplay = true;
+  video.muted = true;
+  video.controls = true;
+  video.onplaying = function() {
+    started++;
+    assert_equals(track.track.cues.length, 1);
+    if (started === numOfTests) {
+      done();
+    }
+  };
+  var track = document.createElement('track');
+  track.src = '/media/foo.vtt?pipe=trickle(d2)';
+  track.default = true;
+  video.appendChild(track);
+  document.body.appendChild(video);
+}
+for (var i = 0; i &lt; numOfTests; ++i) {
+  createTest();
+}
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentmediaelementsreadystatesw3cimportlogfromrev213880trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersofflinew3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/w3c-import.log (from rev 213880, trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/w3c-import.log) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentresourcesshouldloadhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/should-load.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/should-load.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/should-load.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+&lt;script&gt;
+  parent.loadedCount++;
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentresourcesshouldnotloadhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/should-not-load.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/should-not-load.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/should-not-load.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+&lt;script&gt;
+  parent.nestingTest.step(function() {
+    parent.assert_unreached(window.frameElement.getAttribute(&quot;test-description&quot;));
+  });
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentresourcesw3cimportlogfromrev213880trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementsupportw3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/w3c-import.log (from rev 213880, trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/should-load.html
+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/resources/should-not-load.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentthecanvaselementtoBlobnullexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.null-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.null-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.null-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+toBlob.null
+toBlob with zero dimension returns a null Blob
+Actual output:
+
+PASS toBlob with zero dimension returns a null Blob 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentthecanvaselementtoBlobnullhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.null.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.null.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.null.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;Canvas test: toBlob.null&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/common/canvas-tests.js&quot;&gt;&lt;/script&gt;
+&lt;link rel=&quot;stylesheet&quot; href=&quot;/common/canvas-tests.css&quot;&gt;
+&lt;body class=&quot;show_output&quot;&gt;
+
+&lt;h1&gt;toBlob.null&lt;/h1&gt;
+&lt;p class=&quot;desc&quot;&gt;toBlob with zero dimension returns a null Blob&lt;/p&gt;
+
+&lt;p class=&quot;output&quot;&gt;Actual output:&lt;/p&gt;
+&lt;canvas id=&quot;c&quot; class=&quot;output&quot; width=&quot;100&quot; height=&quot;0&quot;&gt;&lt;p class=&quot;fallback&quot;&gt;FAIL (fallback content)&lt;/p&gt;&lt;/canvas&gt;
+
+&lt;ul id=&quot;d&quot;&gt;&lt;/ul&gt;
+&lt;script&gt;
+async_test(function() {
+    on_event(window, &quot;load&quot;, this.step_func(function() {
+         var toBlobCalled = false;
+         c.toBlob(this.step_func(function(blob) {
+           toBlobCalled = true;
+           _assertSame(blob, null, &quot;blob&quot;, &quot;null&quot;);
+           c.width = 0;
+           c.height = 100;
+           c.toBlob(this.step_func_done(function(blob) {
+             _assertSame(blob, null, &quot;blob&quot;, &quot;null&quot;);
+           }), 'image/jpeg');
+         }), 'image/jpeg');
+         assert_false(toBlobCalled, &quot;toBlob callback shouldn't be called synchronously&quot;);
+    }));
+}, &quot;toBlob with zero dimension returns a null Blob&quot;);
+&lt;/script&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontentthecanvaselementw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -134,6 +134,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.style.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.style.png
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.jpeg.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.null.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/toBlob.png.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.arguments.1.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.arguments.2.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheembedelementembedignoredinmediaelementhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -5,18 +5,18 @@
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;meta name=&quot;assert&quot; content=&quot;Check if the embed element is ignored when used inside a media element&quot;&gt;
</span><span class="cx"> &lt;script type=&quot;application/javascript&quot;&gt;
</span><del>- window.childLoaded = false;
- async_test(function() {
-   addEventListener(&quot;load&quot;, this.step_func_done(function() {
-     assert_false(window.childLoaded);
-   }));
- }, &quot;Test embed being ignored inside media element&quot;);
</del><ins>+  var nestingTest = async_test(&quot;Test embed being ignored inside media element&quot;);
+  onload = nestingTest.step_func_done(function() {
+    assert_true(true, &quot;We got to a load event without loading things we should not load&quot;);
+  });
</ins><span class="cx"> &lt;/script&gt;
</span><span class="cx"> &lt;body&gt;
</span><span class="cx">   &lt;video&gt;
</span><del>-    &lt;embed type=&quot;text/html&quot; src=&quot;embed-iframe.html&quot; /&gt;
</del><ins>+    &lt;embed type=&quot;text/html&quot; src=&quot;../resources/should-not-load.html&quot;
+           test-description=&quot;&lt;embed&gt; in &lt;video&gt;&quot;&gt;
</ins><span class="cx">   &lt;/video&gt;
</span><span class="cx">   &lt;audio&gt;
</span><del>-    &lt;embed type=&quot;text/html&quot; src=&quot;embed-iframe.html&quot; /&gt;
</del><ins>+    &lt;embed type=&quot;text/html&quot; src=&quot;../resources/should-not-load.html&quot;
+           test-description=&quot;&lt;embed&gt; in &lt;audio&gt;&quot;&gt;
</ins><span class="cx">   &lt;/audio&gt;
</span><span class="cx"> &lt;/body&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheembedelementembedinobjectfallback2expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL Test &lt;embed&gt; nesting inside &lt;object&gt; assert_equals: Should have loaded all should-load elements expected 12 but got 0
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheembedelementembedinobjectfallback2html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,56 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;meta charset=utf-8&gt;
+    &lt;title&gt;&lt;/title&gt;
+    &lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+    &lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+    &lt;script&gt;
+      var loadedCount = 0;
+      var nestingTest = async_test(&quot;Test &lt;embed&gt; nesting inside &lt;object&gt;&quot;);
+      onload = nestingTest.step_func_done(function() {
+        assert_equals(loadedCount, 12, &quot;Should have loaded all should-load elements&quot;);
+      });
+    &lt;/script&gt;
+    &lt;style&gt;
+      object, embed { display: none }
+    &lt;/style&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;object data=&quot;../resources/should-load.html&quot; style=&quot;width: 100px; height: 100px&quot;&gt;
+      &lt;embed type=&quot;text/html&quot; src=&quot;../resources/should-not-load.html&quot;
+             test-description=&quot;&lt;embed&gt; inside &lt;object&gt;&quot;&gt;
+    &lt;/object&gt;
+    &lt;object style=&quot;width: 100px; height: 100px&quot; data=&quot;data:application/x-does-not-exist,test&quot;&gt;
+      &lt;embed type=&quot;text/html&quot; src=&quot;../resources/should-load.html&quot; /&gt;
+    &lt;/object&gt;
+    &lt;object style=&quot;width: 100px; height: 100px&quot; data=&quot;data:application/x-does-not-exist,test&quot;&gt;
+      &lt;div&gt;&lt;/div&gt;
+      &lt;embed type=&quot;text/html&quot; src=&quot;../resources/should-load.html&quot; /&gt;
+    &lt;/object&gt;
+    &lt;object style=&quot;width: 100px; height: 100px&quot; data=&quot;data:application/x-does-not-exist,test&quot;&gt;
+      &lt;div&gt;
+        &lt;embed type=&quot;text/html&quot; src=&quot;../resources/should-load.html&quot; /&gt;
+      &lt;/div&gt;
+    &lt;/object&gt;
+    &lt;object style=&quot;width: 100px; height: 100px&quot; data=&quot;data:application/x-does-not-exist,test&quot;&gt;
+      &lt;embed type=&quot;text/html&quot; src=&quot;../resources/should-load.html&quot; /&gt;
+      &lt;embed type=&quot;text/html&quot; src=&quot;../resources/should-load.html&quot; /&gt;
+      &lt;object data=&quot;../resources/should-load.html&quot;&gt;
+        &lt;embed type=&quot;text/html&quot; src=&quot;../resources/should-not-load.html&quot;
+               test-description=&quot;&lt;embed&gt; inside loaded &lt;object&gt; inside non-loaded &lt;object&gt;&quot;&gt;
+      &lt;/object&gt;
+      &lt;object data=&quot;data:application/x-does-not-exist,test&quot;&gt;
+        &lt;embed type=&quot;text/html&quot; src=&quot;../resources/should-load.html&quot; /&gt;
+      &lt;/object&gt;
+    &lt;/object&gt;
+    &lt;div&gt;
+      &lt;object data=&quot;../resources/should-load.html&quot; style=&quot;width: 100px; height: 100px&quot;&gt;&lt;/object&gt;
+      &lt;embed type=&quot;text/html&quot; src=&quot;../resources/should-load.html&quot; /&gt;
+    &lt;/div&gt;
+    &lt;div&gt;
+      &lt;embed type=&quot;text/html&quot; src=&quot;../resources/should-load.html&quot; /&gt;
+      &lt;object data=&quot;../resources/should-load.html&quot; style=&quot;width: 100px; height: 100px&quot;&gt;&lt;/object&gt;
+    &lt;/div&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheembedelementw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -19,6 +19,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-document.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-iframe.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-subdocument.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-01-expected.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementiframe_sandbox_allow_top_navigation_by_user_activation_without_user_gestureexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+CONSOLE MESSAGE: line 17: Error while parsing the 'sandbox' attribute: 'allow-top-navigation-by-user-activation' is an invalid sandbox flag.
+CONSOLE MESSAGE: line 8: Unsafe JavaScript attempt to initiate navigation for frame with URL 'http://localhost:8800/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html' from frame with URL 'http://localhost:8800/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-without-user-gesture-failed.html'. The frame attempting navigation of the top-level window is sandboxed, but the 'allow-top-navigation' flag is not set.
+
+This tests that an iframe in sandbox with 'allow-top-navigation-by-user-activation' cannot navigate its top level page, if it is not trigged by a user gesture.
+
+
+
+FAIL The sandboxed iframe should post a message saying the test was in the state of 'PASS'. assert_equals: The message should say 'PASS' instead of 'FAIL' expected &quot;PASS&quot; but got &quot;FAIL&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementiframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesturehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+async_test(function(t) {
+  window.addEventListener(&quot;message&quot;, t.step_func_done(function(e) {
+      assert_equals(e.data, &quot;PASS&quot;, &quot;The message should say 'PASS' instead of 'FAIL'&quot;);
+    }));
+}, &quot;The sandboxed iframe should post a message saying the test was in the state of 'PASS'.&quot;);
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+    &lt;p&gt;This tests that an iframe in sandbox with 'allow-top-navigation-by-user-activation'
+    cannot navigate its top level page, if it is not trigged by a user gesture.&lt;/p&gt;
+    &lt;iframe sandbox='allow-top-navigation-by-user-activation allow-scripts' src=&quot;support/iframe-that-performs-top-navigation-without-user-gesture-failed.html&quot;&gt;&lt;/iframe&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementsupportiframethatperformstopnavigationwithoutusergesturefailedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-without-user-gesture-failed.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-without-user-gesture-failed.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-without-user-gesture-failed.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+&lt;html&gt;
+&lt;body&gt;
+The top navigation from this iframe should be blocked. This text should appear.
+&lt;script&gt;
+window.onload = function()
+{
+    try {
+        top.location = &quot;navigation-changed-iframe.html&quot;;
+        top.postMessage(&quot;FAIL&quot;, &quot;*&quot;);
+    } catch(e) {
+        top.postMessage(&quot;PASS&quot;, &quot;*&quot;);
+    }
+}
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementsupportiframethatperformstopnavigationhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+    &lt;script&gt;
+        function performTest()
+        {
+            try {
+                top.location = &quot;navigation-changed-iframe.html&quot;;
+            } catch(e) {
+                top.postMessage(&quot;BLOCKED&quot;, &quot;*&quot;);
+            }
+        }
+    &lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;performTest();&quot;&gt;
+    &lt;p&gt;This doc tried to navigate the top page when loaded, which should fail since it's not trigged by user activation while in a sandboxed frame with 'allow-top-navigtaion-by-user-activation'. &lt;br&gt; &lt;br&gt;
+    Click the button below, the top navigation should succeed with a new page saying &quot;PASSED: Navigation succeeded.&quot; in browsers supporting the 'allow-top-navigtaion-by-user-activation' iframe@sandbox keyword (eg., Chrome v58+); Otherwise, the top navigation should fail.
+    &lt;/p&gt;
+    &lt;button id=&quot;b&quot; onclick=&quot;performTest();&quot;&gt;Navigate the top page&lt;/button&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementsupportnavigationchangediframehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+    &lt;script&gt;
+        function fireSentinel()
+        {
+            document.getElementsByTagName('h4')[0].innerHTML = document.domain;
+        }
+    &lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;fireSentinel();&quot;&gt;
+    &lt;h4&gt;DOMAIN&lt;/h4&gt;
+    &lt;p&gt;PASSED: Navigation succeeded.&lt;/p&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementsupportw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -16,4 +16,7 @@
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/blank.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-without-user-gesture-failed.html
+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation.html
+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/sandbox_allow_script.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_harness.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_javascript_url_01.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_script.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementImageconstructorexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -3,4 +3,9 @@
</span><span class="cx"> PASS Image and HTMLImageElement share a prototype 
</span><span class="cx"> PASS Image localName is img 
</span><span class="cx"> PASS Image namespace URI is correct 
</span><ins>+FAIL NamedConstructor creates the correct object structure. assert_equals: Image __proto__ is Function prototype expected function &quot;function () {
+    [native code]
+}&quot; but got function &quot;function HTMLElement() {
+    [native code]
+}&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementImageconstructorhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -26,4 +26,12 @@
</span><span class="cx">     assert_true((new Image()).namespaceURI === &quot;http://www.w3.org/1999/xhtml&quot;);
</span><span class="cx">   }, &quot;Image namespace URI is correct&quot;);
</span><span class="cx"> 
</span><ins>+  test(function() {
+      assert_equals(Image.name, &quot;Image&quot;, &quot;Image name should be Image (not HTMLImageElement)&quot;);
+      assert_equals(Image.__proto__, Function.prototype, &quot;Image __proto__ is Function prototype&quot;);
+      assert_equals(Image.prototype, HTMLImageElement.prototype, &quot;Image.prototype is same as HTMLImageElement.prototype&quot;);
+      assert_equals(new Image().__proto__, HTMLImageElement.prototype, &quot;Image __proto__ is HTMLImageElement prototype &quot;);
+      assert_equals(Image.prototype.__proto__, HTMLElement.prototype, &quot;Image.prototype __proto__ is HTMLElement prototype&quot;);
+  }, &quot;NamedConstructor creates the correct object structure.&quot;);
+
</ins><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementobjectignoredinmediaelementexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+
+PASS Test &lt;object&gt; being ignored inside media element 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementobjectignoredinmediaelementhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;HTML Test: The embed element represents a document&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;meta name=&quot;assert&quot; content=&quot;Check if the object element is ignored when used inside a media element&quot;&gt;
+&lt;script type=&quot;application/javascript&quot;&gt;
+  var nestingTest = async_test(&quot;Test &lt;object&gt; being ignored inside media element&quot;);
+  onload = nestingTest.step_func_done(function() {
+    assert_true(true, &quot;We got to a load event without loading things we should not load&quot;);
+  });
+&lt;/script&gt;
+&lt;body&gt;
+  &lt;video&gt;
+    &lt;object type=&quot;text/html&quot; data=&quot;../resources/should-not-load.html&quot;
+            test-description=&quot;&lt;object&gt; in &lt;video&gt;&quot;&gt;&lt;/object&gt;
+  &lt;/video&gt;
+  &lt;audio&gt;
+    &lt;object type=&quot;text/html&quot; data=&quot;../resources/should-not-load.html&quot;
+            test-description=&quot;&lt;object&gt; in &lt;audio&gt;&quot;&gt;&lt;/object&gt;
+  &lt;/audio&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementobjectinobjectfallback2expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL Test &lt;object&gt; nesting inside &lt;object&gt; assert_equals: Should have loaded all should-load elements expected 12 but got 0
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementobjectinobjectfallback2html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,56 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;meta charset=utf-8&gt;
+    &lt;title&gt;&lt;/title&gt;
+    &lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+    &lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+    &lt;script&gt;
+      var loadedCount = 0;
+      var nestingTest = async_test(&quot;Test &lt;object&gt; nesting inside &lt;object&gt;&quot;);
+      onload = nestingTest.step_func_done(function() {
+        assert_equals(loadedCount, 12, &quot;Should have loaded all should-load elements&quot;);
+      });
+    &lt;/script&gt;
+    &lt;style&gt;
+      object { display: none }
+    &lt;/style&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;object data=&quot;../resources/should-load.html&quot; style=&quot;width: 100px; height: 100px&quot;&gt;
+      &lt;object type=&quot;text/html&quot; data=&quot;../resources/should-not-load.html&quot;
+              test-description=&quot;&lt;object&gt; inside &lt;object&gt;&quot;&gt;&lt;/object&gt;
+    &lt;/object&gt;
+    &lt;object style=&quot;width: 100px; height: 100px&quot; data=&quot;data:application/x-does-not-exist,test&quot;&gt;
+      &lt;object type=&quot;text/html&quot; data=&quot;../resources/should-load.html&quot;&gt;&lt;/object&gt;
+    &lt;/object&gt;
+    &lt;object style=&quot;width: 100px; height: 100px&quot; data=&quot;data:application/x-does-not-exist,test&quot;&gt;
+      &lt;div&gt;&lt;/div&gt;
+      &lt;object type=&quot;text/html&quot; data=&quot;../resources/should-load.html&quot;&gt;&lt;/object&gt;
+    &lt;/object&gt;
+    &lt;object style=&quot;width: 100px; height: 100px&quot; data=&quot;data:application/x-does-not-exist,test&quot;&gt;
+      &lt;div&gt;
+        &lt;object type=&quot;text/html&quot; data=&quot;../resources/should-load.html&quot;&gt;&lt;/object&gt;
+      &lt;/div&gt;
+    &lt;/object&gt;
+    &lt;object style=&quot;width: 100px; height: 100px&quot; data=&quot;data:application/x-does-not-exist,test&quot;&gt;
+      &lt;object type=&quot;text/html&quot; data=&quot;../resources/should-load.html&quot;&gt;&lt;/object&gt;
+      &lt;object type=&quot;text/html&quot; data=&quot;../resources/should-load.html&quot;&gt;&lt;/object&gt;
+      &lt;object data=&quot;../resources/should-load.html&quot;&gt;
+        &lt;object type=&quot;text/html&quot; data=&quot;../resources/should-not-load.html&quot;
+                test-description=&quot;&lt;object&gt; inside loaded &lt;object&gt; inside non-loaded &lt;object&gt;&quot;&gt;&lt;/object&gt;
+      &lt;/object&gt;
+      &lt;object data=&quot;data:application/x-does-not-exist,test&quot;&gt;
+        &lt;object type=&quot;text/html&quot; data=&quot;../resources/should-load.html&quot;&gt;&lt;/object&gt;
+      &lt;/object&gt;
+    &lt;/object&gt;
+    &lt;div&gt;
+      &lt;object data=&quot;../resources/should-load.html&quot; style=&quot;width: 100px; height: 100px&quot;&gt;&lt;/object&gt;
+      &lt;object type=&quot;text/html&quot; data=&quot;../resources/should-load.html&quot;&gt;&lt;/object&gt;
+    &lt;/div&gt;
+    &lt;div&gt;
+      &lt;object type=&quot;text/html&quot; data=&quot;../resources/should-load.html&quot;&gt;&lt;/object&gt;
+      &lt;object data=&quot;../resources/should-load.html&quot; style=&quot;width: 100px; height: 100px&quot;&gt;&lt;/object&gt;
+    &lt;/div&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -19,6 +19,8 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-attributes.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-fallback.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-handler.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html
+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/test0.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/test1.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/test2.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstextfieldselectionselectionnotapplicationexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,55 +1,21 @@
</span><span class="cx"> 
</span><del>-FAIL text field selection for the input hidden assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input email assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; did not throw
-FAIL text field selection for the input datetime-local assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; did not throw
-FAIL text field selection for the input date assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; did not throw
-FAIL text field selection for the input month assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; did not throw
-FAIL text field selection for the input week assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; did not throw
-FAIL text field selection for the input time assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; did not throw
-FAIL text field selection for the input number assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; did not throw
-FAIL text field selection for the input range assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input color assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input checkbox assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input radio assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input file assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input submit assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input image assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input reset assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input button assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
</del><ins>+FAIL text field selection for the input hidden Type error
+FAIL text field selection for the input email assert_equals: expected (object) null but got (number) 0
+FAIL text field selection for the input datetime-local assert_equals: expected (object) null but got (number) 0
+FAIL text field selection for the input date assert_equals: expected (object) null but got (number) 0
+FAIL text field selection for the input month assert_equals: expected (object) null but got (number) 0
+FAIL text field selection for the input week assert_equals: expected (object) null but got (number) 0
+FAIL text field selection for the input time assert_equals: expected (object) null but got (number) 0
+FAIL text field selection for the input number assert_equals: expected (object) null but got (number) 0
+FAIL text field selection for the input range Type error
+FAIL text field selection for the input color Type error
+FAIL text field selection for the input checkbox Type error
+FAIL text field selection for the input radio Type error
+FAIL text field selection for the input file Type error
+FAIL text field selection for the input submit Type error
+FAIL text field selection for the input image Type error
+FAIL text field selection for the input reset Type error
+FAIL text field selection for the input button Type error
</ins><span class="cx"> PASS text field selection for the input text 
</span><span class="cx"> PASS text field selection for the input search 
</span><span class="cx"> PASS text field selection for the input tel 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstextfieldselectionselectionnotapplicationhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -14,14 +14,17 @@
</span><span class="cx">     test(function(){
</span><span class="cx">       var el = document.createElement(&quot;input&quot;);
</span><span class="cx">       el.type = type;
</span><ins>+      assert_equals(el.selectionStart, null);
+      assert_equals(el.selectionEnd, null);
+      assert_equals(el.selectionDirection, null);
</ins><span class="cx">       assert_throws(&quot;InvalidStateError&quot;, function(){
</span><del>-        el.selectionStart;
</del><ins>+        el.selectionStart = 0;
</ins><span class="cx">       });
</span><span class="cx">       assert_throws(&quot;InvalidStateError&quot;, function(){
</span><del>-        el.selectionEnd;
</del><ins>+        el.selectionEnd = 0;
</ins><span class="cx">       });
</span><span class="cx">       assert_throws(&quot;InvalidStateError&quot;, function(){
</span><del>-        el.selectionDirection;
</del><ins>+        el.selectionDirection = 'none';
</ins><span class="cx">       });
</span><span class="cx">       assert_throws(&quot;InvalidStateError&quot;, function(){
</span><span class="cx">         el.setRangeText(&quot;foobar&quot;);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstextfieldselectiontextfieldselectionsetSelectionRangeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -46,5 +46,4 @@
</span><span class="cx"> PASS textarea setSelectionRange(NaN,1) 
</span><span class="cx"> PASS textarea setSelectionRange(null,1) 
</span><span class="cx"> PASS textarea setSelectionRange(undefined,1) 
</span><del>-TIMEOUT textarea setSelectionRange fires a select event Test timed out
</del><span class="cx">   
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstextfieldselectiontextfieldselectionsetSelectionRangehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -258,17 +258,4 @@
</span><span class="cx">     assert_equals(textarea.selectionEnd, 1, &quot;element.selectionStart should be 1&quot;);
</span><span class="cx">   },'textarea setSelectionRange(undefined,1)');
</span><span class="cx"> },&quot;test of textarea.setSelectionRange&quot;);
</span><del>-
-async_test(function() {
-  var q = false;
-  var textarea = document.getElementById(&quot;b&quot;);
-  textarea.addEventListener(&quot;select&quot;, this.step_func_done(function(e) {
-    assert_true(q, &quot;event should be queued&quot;);
-    assert_true(e.isTrusted, &quot;event is trusted&quot;);
-    assert_true(e.bubbles, &quot;event bubbles&quot;);
-    assert_false(e.cancelable, &quot;event is not cancelable&quot;);
-  }));
-  textarea.setSelectionRange(0, 1);
-  q = true;
-}, &quot;textarea setSelectionRange fires a select event&quot;);
</del><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheinputelementvalueModeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,6 +1,18 @@
</span><span class="cx"> 
</span><del>-FAIL value IDL attribute of input type hidden without value attribute assert_equals: expected &quot;&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type hidden with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
</del><ins>+PASS value IDL attribute of input type hidden without value attribute 
+PASS value IDL attribute of input type hidden with value attribute 
+PASS value IDL attribute of input type submit without value attribute 
+PASS value IDL attribute of input type submit with value attribute 
+PASS value IDL attribute of input type image without value attribute 
+PASS value IDL attribute of input type image with value attribute 
+PASS value IDL attribute of input type reset without value attribute 
+PASS value IDL attribute of input type reset with value attribute 
+PASS value IDL attribute of input type button without value attribute 
+PASS value IDL attribute of input type button with value attribute 
+PASS value IDL attribute of input type checkbox without value attribute 
+PASS value IDL attribute of input type checkbox with value attribute 
+PASS value IDL attribute of input type radio without value attribute 
+PASS value IDL attribute of input type radio with value attribute 
</ins><span class="cx"> PASS value IDL attribute of input type text without value attribute 
</span><span class="cx"> PASS value IDL attribute of input type text with value attribute 
</span><span class="cx"> PASS value IDL attribute of input type search without value attribute 
</span><span class="lines">@@ -29,16 +41,4 @@
</span><span class="cx"> PASS value IDL attribute of input type range with value attribute 
</span><span class="cx"> PASS value IDL attribute of input type color without value attribute 
</span><span class="cx"> PASS value IDL attribute of input type color with value attribute 
</span><del>-FAIL value IDL attribute of input type checkbox without value attribute assert_equals: expected &quot;on&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type checkbox with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type radio without value attribute assert_equals: expected &quot;on&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type radio with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type submit without value attribute assert_equals: expected &quot;&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type submit with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type image without value attribute assert_equals: expected &quot;&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type image with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type reset without value attribute assert_equals: expected &quot;&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type reset with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type button without value attribute assert_equals: expected &quot;&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type button with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
</del><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheinputelementvalueModehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -6,67 +6,300 @@
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><del>-  var types = [
-    { type: &quot;hidden&quot;, mode: &quot;default&quot; },
-    { type: &quot;text&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;foo&quot; },
-    { type: &quot;search&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;foo&quot; },
-    { type: &quot;tel&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;foo&quot; },
-    { type: &quot;url&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;foo&quot; },
-    { type: &quot;email&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;foo&quot; },
-    { type: &quot;password&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;foo&quot; },
-    { type: &quot;datetime-local&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;&quot; },
-    { type: &quot;date&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;&quot; },
-    { type: &quot;month&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;&quot; },
-    { type: &quot;week&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;&quot; },
-    { type: &quot;time&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;&quot; },
-    { type: &quot;number&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;&quot; },
-    { type: &quot;range&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;50&quot; },
-    { type: &quot;color&quot;, mode: &quot;value&quot;, sanitizedValue: &quot;#000000&quot; },
-    { type: &quot;checkbox&quot;, mode: &quot;default/on&quot; },
-    { type: &quot;radio&quot;, mode: &quot;default/on&quot; },
-    { type: &quot;submit&quot;, mode: &quot;default&quot; },
-    { type: &quot;image&quot;, mode: &quot;default&quot; },
-    { type: &quot;reset&quot;, mode: &quot;default&quot; },
-    { type: &quot;button&quot;, mode: &quot;default&quot; }
-  ];
-  for (var i = 0; i &lt; types.length; i++) {
-    test(function() {
-      var input = document.createElement(&quot;input&quot;),
-          expected;
-      input.type = types[i].type;
-      input.value = &quot;foo&quot;;
-      switch(types[i].mode) {
-        case &quot;default&quot;:
-          expected = &quot;&quot;;
-          break;
-        case &quot;default/on&quot;:
-          expected = &quot;on&quot;;
-          break;
-        case &quot;value&quot;:
-          expected = types[i].sanitizedValue;
-          break;
-      }
-      assert_equals(input.value, expected);
-    }, &quot;value IDL attribute of input type &quot; + types[i].type + &quot; without value attribute&quot;);
</del><ins>+// MODE DEFAULT
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;hidden&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type hidden without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;hidden&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type hidden with value attribute&quot;);
</ins><span class="cx"> 
</span><del>-    test(function() {
-      var input = document.createElement(&quot;input&quot;),
-          expected;
-      input.type = types[i].type;
-      input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
-      input.value = &quot;foo&quot;;
-      switch(types[i].mode) {
-        case &quot;default&quot;:
-          expected = &quot;bar&quot;;
-          break;
-        case &quot;default/on&quot;:
-          expected = &quot;bar&quot;;
-          break;
-        case &quot;value&quot;:
-          expected = types[i].sanitizedValue;
-          break;
-      }
-      assert_equals(input.value, expected);
-    }, &quot;value IDL attribute of input type &quot; + types[i].type + &quot; with value attribute&quot;);
-  }
</del><ins>+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;submit&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type submit without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;submit&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type submit with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;image&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type image without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;image&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type image with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;reset&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type reset without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;reset&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type reset with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;button&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type button without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;button&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type button with value attribute&quot;);
+
+// MODE DEFAULT/ON
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;checkbox&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type checkbox without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;checkbox&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type checkbox with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;radio&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type radio without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;radio&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type radio with value attribute&quot;);
+
+// MODE VALUE
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;text&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type text without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;text&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type text with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;search&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type search without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;search&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type search with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;tel&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type tel without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;tel&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type tel with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;url&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type url without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;url&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type url with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;email&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type email without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;email&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type email with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;password&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type password without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;password&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;foo&quot;);
+}, &quot;value IDL attribute of input type password with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;datetime-local&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;&quot;);
+}, &quot;value IDL attribute of input type datetime-local without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;datetime-local&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;&quot;);
+}, &quot;value IDL attribute of input type datetime-local with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;date&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;&quot;);
+}, &quot;value IDL attribute of input type date without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;date&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;&quot;);
+}, &quot;value IDL attribute of input type date with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;month&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;&quot;);
+}, &quot;value IDL attribute of input type month without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;month&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;&quot;);
+}, &quot;value IDL attribute of input type month with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;week&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;&quot;);
+}, &quot;value IDL attribute of input type week without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;week&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;&quot;);
+}, &quot;value IDL attribute of input type week with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;time&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;&quot;);
+}, &quot;value IDL attribute of input type time without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;time&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;&quot;);
+}, &quot;value IDL attribute of input type time with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;number&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;&quot;);
+}, &quot;value IDL attribute of input type number without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;number&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;&quot;);
+}, &quot;value IDL attribute of input type number with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;range&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;50&quot;);
+}, &quot;value IDL attribute of input type range without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;range&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;50&quot;);
+}, &quot;value IDL attribute of input type range with value attribute&quot;);
+
+test(function () {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;color&quot;;
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;#000000&quot;);
+}, &quot;value IDL attribute of input type color without value attribute&quot;);
+test(function() {
+  var input = document.createElement(&quot;input&quot;);
+  input.type = &quot;color&quot;;
+  input.setAttribute(&quot;value&quot;, &quot;bar&quot;);
+  input.value = &quot;foo&quot;;
+  assert_equals(input.value, &quot;#000000&quot;);
+}, &quot;value IDL attribute of input type color with value attribute&quot;);
</ins><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheselectelementcommonHTMLOptionsCollectionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -6,4 +6,5 @@
</span><span class="cx"> PASS Setting a length lower than the old length trims nodes from the end 
</span><span class="cx"> PASS Setting element to null by index removed the element 
</span><span class="cx"> PASS Setting element by index should correctly append and replace elements 
</span><ins>+PASS Changing the length adds new nodes; The new nodes will not copy select's prefix 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheselectelementcommonHTMLOptionsCollectionhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -96,4 +96,22 @@
</span><span class="cx"> 
</span><span class="cx"> }, &quot;Setting element by index should correctly append and replace elements&quot;);
</span><span class="cx"> 
</span><ins>+test(function () {
+    var selection = document.createElementNS(&quot;http://www.w3.org/1999/xhtml&quot;, &quot;foo:select&quot;);
+
+    selection.length = 5;
+    assert_equals(selection.length, 5,
+                  &quot;Number of nodes in collection should have changed&quot;);
+    for (var i = 0; i &lt; 5; ++i) {
+        var child = selection.children[i];
+        assert_equals(child.localName, &quot;option&quot;,
+                      &quot;new child should be an option&quot;);
+        assert_equals(child.namespaceURI, &quot;http://www.w3.org/1999/xhtml&quot;,
+                      &quot;new child should be an HTML element&quot;);
+        assert_equals(child.prefix, null,
+                      &quot;new child should not copy select's prefix&quot;);
+    }
+
+}, &quot;Changing the length adds new nodes; The new nodes will not copy select's prefix&quot;);
+
</ins><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheselectelementselectedindexexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/selected-index-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/selected-index-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/selected-index-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -3,7 +3,10 @@
</span><span class="cx"> PASS get default 
</span><span class="cx"> PASS get disabled 
</span><span class="cx"> PASS get unselected 
</span><del>-PASS set empty 
-PASS set 
-PASS set and reset 
</del><ins>+PASS set empty (HTMLSelectElement) 
+PASS set empty (HTMLOptionsCollection) 
+PASS set (HTMLSelectElement) 
+PASS set (HTMLOptionsCollection) 
+PASS set and reset (HTMLSelectElement) 
+PASS set and reset (HTMLOptionsCollection) 
</ins><span class="cx">       
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheselectelementselectedindexhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/selected-index.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/selected-index.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/selected-index.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -28,46 +28,76 @@
</span><span class="cx"> &lt;/form&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;script&gt;
</span><ins>+function assertSelectedIndex(select, value) {
+  assert_equals(select.selectedIndex, value);
+  assert_equals(select.options.selectedIndex, value);
+}
+
</ins><span class="cx"> test(function () {
</span><span class="cx">   var select = document.getElementById('empty');
</span><del>-  assert_equals(select.selectedIndex, -1);
</del><ins>+  assertSelectedIndex(select, -1);
</ins><span class="cx"> }, &quot;get empty&quot;);
</span><span class="cx"> 
</span><span class="cx"> test(function () {
</span><span class="cx">   var select = document.getElementById('default');
</span><del>-  assert_equals(select.selectedIndex, 0);
</del><ins>+  assertSelectedIndex(select, 0);
</ins><span class="cx"> }, &quot;get default&quot;);
</span><span class="cx"> 
</span><span class="cx"> test(function () {
</span><span class="cx">   var select = document.getElementById('disabled');
</span><del>-  assert_equals(select.selectedIndex, 1);
</del><ins>+  assertSelectedIndex(select, 1);
</ins><span class="cx"> }, &quot;get disabled&quot;);
</span><span class="cx"> 
</span><span class="cx"> test(function () {
</span><span class="cx">   var select = document.getElementById('selected');
</span><del>-  assert_equals(select.selectedIndex, 1);
</del><ins>+  assertSelectedIndex(select, 1);
</ins><span class="cx"> }, &quot;get unselected&quot;);
</span><span class="cx"> 
</span><span class="cx"> test(function () {
</span><span class="cx">   var select = document.getElementById('empty');
</span><span class="cx">   select.selectedIndex = 1;
</span><del>-  assert_equals(select.selectedIndex, -1);
-}, &quot;set empty&quot;);
</del><ins>+  assertSelectedIndex(select, -1);
+}, &quot;set empty (HTMLSelectElement)&quot;);
</ins><span class="cx"> 
</span><span class="cx"> test(function () {
</span><ins>+  var select = document.getElementById('empty');
+  select.options.selectedIndex = 1;
+  assertSelectedIndex(select, -1);
+}, &quot;set empty (HTMLOptionsCollection)&quot;);
+
+test(function () {
</ins><span class="cx">   var select = document.getElementById('default');
</span><del>-  assert_equals(select.selectedIndex, 0);
</del><ins>+  assertSelectedIndex(select, 0);
</ins><span class="cx">   select.selectedIndex = 2;
</span><del>-  assert_equals(select.selectedIndex, 2);
-}, &quot;set&quot;);
</del><ins>+  assertSelectedIndex(select, 2);
+  this.add_cleanup(() =&gt; select.selectedIndex = 0);
+}, &quot;set (HTMLSelectElement)&quot;);
</ins><span class="cx"> 
</span><span class="cx"> test(function () {
</span><ins>+  var select = document.getElementById('default');
+  assertSelectedIndex(select, 0);
+  select.options.selectedIndex = 2;
+  assertSelectedIndex(select, 2);
+  this.add_cleanup(() =&gt; select.selectedIndex = 0);
+}, &quot;set (HTMLOptionsCollection)&quot;);
+
+test(function () {
</ins><span class="cx">   var select = document.getElementById('selected');
</span><span class="cx">   var form = document.getElementById('form');
</span><del>-  assert_equals(select.selectedIndex, 1);
</del><ins>+  assertSelectedIndex(select, 1);
</ins><span class="cx">   select.selectedIndex = 0;
</span><del>-  assert_equals(select.selectedIndex, 0);
</del><ins>+  assertSelectedIndex(select, 0);
</ins><span class="cx">   form.reset();
</span><del>-  assert_equals(select.selectedIndex, 1);
-}, &quot;set and reset&quot;);
</del><ins>+  assertSelectedIndex(select, 1);
+}, &quot;set and reset (HTMLSelectElement)&quot;);
+
+test(function () {
+  var select = document.getElementById('selected');
+  var form = document.getElementById('form');
+  assertSelectedIndex(select, 1);
+  select.options.selectedIndex = 0;
+  assertSelectedIndex(select, 0);
+  form.reset();
+  assertSelectedIndex(select, 1);
+}, &quot;set and reset (HTMLOptionsCollection)&quot;);
</ins><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsscripting1thescriptelementdataurlexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,5 +4,5 @@
</span><span class="cx"> CONSOLE MESSAGE: Origin http://localhost:8800 is not allowed by Access-Control-Allow-Origin.
</span><span class="cx"> CONSOLE MESSAGE: Cross-origin script load denied by Cross-Origin Resource Sharing policy.
</span><span class="cx"> 
</span><del>-FAIL data URL and scripts assert_not_equals: got disallowed value &quot;Script error.&quot;
</del><ins>+FAIL Test data URL and scripts errors assert_not_equals: got disallowed value &quot;Script error.&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsscripting1thescriptelementdataurlhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,15 +1,23 @@
</span><span class="cx"> &lt;!doctype html&gt;
</span><span class="cx"> &lt;meta charset=&quot;utf-8&quot;&gt;
</span><del>-&lt;title&gt;data URL and scripts&lt;/title&gt;
</del><ins>+&lt;title&gt;Test data URL and scripts errors&lt;/title&gt;
</ins><span class="cx"> &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;div id=log&gt;&lt;/div&gt;
</span><span class="cx"> &lt;script&gt;
</span><del>-  setup({allow_uncaught_exception:true})
-  async_test(t =&gt; {
</del><ins>+  setup({allow_uncaught_exception:true});
+  async_test(function(t) {
</ins><span class="cx">     var counter = 1
</span><del>-    window.onerror = t.step_func((message, x, xx, xxx, e) =&gt; {
-      assert_not_equals(message, &quot;Script error.&quot;) // Cannot be &quot;muted&quot; as data URLs are same-origin
</del><ins>+    window.onerror = t.step_func((message, url, lineno, colno, e) =&gt; {
+      // Test that error is not muted as data URLs have a response type of &quot;default&quot;
+      // and errors should only be muted if the response type is &quot;opaque&quot; or &quot;opaqueredirect&quot;
+      assert_not_equals(message, &quot;Script error.&quot;)
+      assert_not_equals(url, null);
+      assert_not_equals(url, &quot;&quot;);
+      assert_equals(typeof lineno, &quot;number&quot;);
+      assert_not_equals(lineno, 0);
+      assert_equals(typeof colno, &quot;number&quot;);
+      assert_not_equals(colno, 0);
</ins><span class="cx">       assert_equals(typeof e, &quot;number&quot;)
</span><span class="cx">       assert_equals(e, counter)
</span><span class="cx">       if (counter == 3) {
</span><span class="lines">@@ -16,8 +24,8 @@
</span><span class="cx">         t.done()
</span><span class="cx">       }
</span><span class="cx">       counter++
</span><del>-    })
-  })
</del><ins>+    });
+  });
</ins><span class="cx"> &lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;data:,throw 1&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;data:,throw 2&quot; crossorigin&gt;&lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticstabulardatathetableelementtFootexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,3 +1,4 @@
</span><span class="cx"> 
</span><span class="cx"> PASS tFoot tests 
</span><ins>+PASS tFoot tests 1 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticstabulardatathetableelementtFoothtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -54,4 +54,12 @@
</span><span class="cx">         t.tFoot = document.createElement(&quot;thead&quot;);
</span><span class="cx">     });
</span><span class="cx"> })
</span><ins>+
+test(function () {
+    var table = document.createElementNS(&quot;http://www.w3.org/1999/xhtml&quot;, &quot;foo:table&quot;)
+    var tfoot = table.createTFoot();
+
+    assert_equals(table.tFoot, tfoot);
+    assert_equals(tfoot.prefix, null);
+});
</ins><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticstabulardatathetableelementtHeadexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tHead-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tHead-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tHead-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,4 +1,5 @@
</span><span class="cx"> 
</span><span class="cx"> PASS tHead tests 
</span><span class="cx"> PASS tHead tests 1 
</span><ins>+PASS tHead tests 2 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticstabulardatathetableelementtHeadhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tHead.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tHead.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-table-element/tHead.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -63,4 +63,12 @@
</span><span class="cx">         t2.tHead = t2thead;
</span><span class="cx">     });
</span><span class="cx"> });
</span><ins>+
+test(function () {
+    var table = document.createElementNS(&quot;http://www.w3.org/1999/xhtml&quot;, &quot;foo:table&quot;)
+    var thead = table.createTHead();
+
+    assert_equals(table.tHead, thead);
+    assert_equals(thead.prefix, null);
+});
</ins><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticstabulardatathetrelementinsertCellexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-tr-element/insertCell-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-tr-element/insertCell-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-tr-element/insertCell-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -5,4 +5,5 @@
</span><span class="cx"> PASS HTMLTableRowElement insertCell() 
</span><span class="cx"> PASS HTMLTableRowElement insertCell(-2) 
</span><span class="cx"> PASS HTMLTableRowElement insertCell(cells.length + 1) 
</span><ins>+PASS HTMLTableRowElement insertCell will not copy table's prefix 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticstabulardatathetrelementinsertCellhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-tr-element/insertCell.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-tr-element/insertCell.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/tabular-data/the-tr-element/insertCell.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -52,4 +52,13 @@
</span><span class="cx">   });
</span><span class="cx"> }, &quot;HTMLTableRowElement insertCell(cells.length + 1)&quot;);
</span><span class="cx"> 
</span><ins>+test(function () {
+  var table = document.createElementNS(&quot;http://www.w3.org/1999/xhtml&quot;, &quot;foo:table&quot;)
+  var row = table.insertRow(0);
+  var cell = row.insertCell(0);
+
+  assert_equals(row.cells[0], cell);
+  assert_equals(cell.prefix, null);
+}, &quot;HTMLTableRowElement insertCell will not copy table's prefix&quot;);
+
</ins><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsyntaxparsingtestjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/test.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/test.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/test.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -320,7 +320,7 @@
</span><span class="cx">     var x = tests[test_id];
</span><span class="cx">     var t = x[0];
</span><span class="cx">     iframe_map[t.name] = iframe.id;
</span><del>-    setTimeout(function() {
</del><ins>+    step_timeout(function() {
</ins><span class="cx">                  t.step(function() {
</span><span class="cx">                    var string_uri_encoded_input = x[1];
</span><span class="cx">                    var string_escaped_expected = x[2];
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsyntaxparsinghtmlfragmentsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -23,8 +23,6 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-007.html.headers
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-009.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-009.html.headers
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-015.html
-/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-015.html.headers
</del><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-016.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-016.html.headers
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-018.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsbodyexposedwindoweventhandlersexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,4 +1,3 @@
</span><del>-Blocked access to external URL https://code.jquery.com/jquery-1.10.2.js
</del><span class="cx"> 
</span><span class="cx"> PASS Return null when getting the load event handler of a windowless body 
</span><span class="cx"> PASS Ignore setting of load window event handlers on windowless body 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsbodyexposedwindoweventhandlershtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -2,7 +2,6 @@
</span><span class="cx"> &lt;meta charset=&quot;utf-8&quot;&gt;
</span><span class="cx"> &lt;title&gt;&lt;/title&gt;
</span><span class="cx"> &lt;body&gt;&lt;/body&gt;
</span><del>-&lt;script src=&quot;https://code.jquery.com/jquery-1.10.2.js&quot;&gt;&lt;/script&gt;
</del><span class="cx"> &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventscompileeventhandlersettingsobjectsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+CONFIRM NAVIGATION: undefined
+
+PASS The Function instance must be created in the Realm of the node document 
+FAIL The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document assert_equals: expected &quot;/html/webappapis/scripting/events/resources/open-window.html&quot; but got &quot;/html/webappapis/scripting/events/open-window.html&quot;
+FAIL The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document assert_equals: expected &quot;iframe&quot; but got &quot;parent frame&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventscompileeventhandlersettingsobjectshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,69 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;Entry and incumbent settings objects when compiling an inline event handler&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+&quot;use strict&quot;;
+window.name = &quot;parent frame&quot;;
+
+async_test(t =&gt; {
+  const iframe = document.createElement(&quot;iframe&quot;);
+  iframe.src = &quot;resources/compiled-event-handler-settings-objects-support.html&quot;;
+  iframe.onload = t.step_func(() =&gt; {
+    const button = iframe.contentDocument.querySelector(&quot;button&quot;);
+    const compiled = button.onclick;
+
+    assert_equals(compiled.constructor, iframe.contentWindow.Function, &quot;The constructor must be from the iframe&quot;);
+    assert_not_equals(compiled.constructor, Function, &quot;The constructor must not be from this page&quot;);
+
+    t.done();
+  });
+
+  document.body.appendChild(iframe);
+
+}, &quot;The Function instance must be created in the Realm of the node document&quot;);
+
+async_test(t =&gt; {
+  const iframe = document.createElement(&quot;iframe&quot;);
+  iframe.src = &quot;resources/compiled-event-handler-settings-objects-support.html&quot;;
+  iframe.onload = t.step_func(() =&gt; {
+    const button = iframe.contentDocument.querySelector(&quot;button&quot;);
+
+    window.onWindowLoaded = t.step_func_done(url =&gt; {
+      const pathname = new URL(url).pathname;
+      assert_equals(pathname,
+        &quot;/html/webappapis/scripting/events/resources/open-window.html&quot;);
+      // This tests that the entry settings object used to resolve URLs in that window.open() was the same as that
+      // of the node document (i.e. the iframe document), not e.g. this window.
+    });
+
+    button.click();
+  });
+
+  document.body.appendChild(iframe);
+
+}, &quot;The entry settings object while executing the compiled callback via Web IDL's invoke must be that &quot; +
+   &quot;of the node document&quot;);
+
+async_test(t =&gt; {
+  const iframe = document.createElement(&quot;iframe&quot;);
+  iframe.src = &quot;resources/compiled-event-handler-settings-objects-support.html&quot;;
+  iframe.onload = t.step_func(() =&gt; {
+    window.onmessage = t.step_func_done(event =&gt; {
+      assert_equals(event.data, &quot;PASS&quot;);
+      assert_equals(event.source.name, &quot;iframe&quot;);
+      assert_equals(event.source, iframe.contentWindow, &quot;The source must be the iframe&quot;);
+    });
+
+    iframe.src = &quot;about:blank&quot;;
+  });
+
+  document.body.appendChild(iframe);
+
+}, &quot;The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that &quot; +
+   &quot;of the node document&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventseventhandleronauxclickhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-onauxclick.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-onauxclick.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-onauxclick.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -14,7 +14,7 @@
</span><span class="cx"> window.auxClick2Happened = false;
</span><span class="cx"> 
</span><span class="cx"> test(() =&gt; {
</span><del>-  for (const location of [window, HTMLElement.prototype, SVGElement.prototype, Document.prototype]) {
</del><ins>+  for (var location of [window, HTMLElement.prototype, SVGElement.prototype, Document.prototype]) {
</ins><span class="cx">     assert_true(location.hasOwnProperty(&quot;onauxclick&quot;),
</span><span class="cx">       `${location.constructor.name} has an own property named &quot;onauxclick&quot;`);
</span><span class="cx">   }
</span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx">   const htmlElement = document.createElement(&quot;span&quot;);
</span><span class="cx">   const svgElement = document.createElementNS(&quot;http://www.w3.org/2000/svg&quot;, &quot;g&quot;);
</span><span class="cx"> 
</span><del>-  for (const location of [window, htmlElement, svgElement, document]) {
</del><ins>+  for (var location of [window, htmlElement, svgElement, document]) {
</ins><span class="cx">     assert_equals(location.onauxclick, null,
</span><span class="cx">       `The default value of the property is null for a ${location.constructor.name} instance`);
</span><span class="cx">   }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventseventhandlerprocessingalgorithmexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-processing-algorithm-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-processing-algorithm-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-processing-algorithm-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><span class="cx"> 
</span><del>-FAIL mouseover listener returning true cancels event assert_equals: expected true but got false
-FAIL mouseover listener returning false doesn't cancel event assert_equals: expected false but got true
-FAIL beforeunload listener returning null cancels event assert_equals: expected true but got false
-PASS beforeunload listener returning non-null doesn't cancel event 
</del><ins>+PASS mouseover listener returning false cancels event (using Event) 
+PASS mouseover listener returning false cancels event (using MouseEvent) 
+PASS mouseover listener returning true doesn't cancel event (using Event) 
+PASS mouseover listener returning true doesn't cancel event (using MouseEvent) 
</ins><span class="cx"> PASS click listener returning false cancels event 
</span><span class="cx"> PASS blur listener returning false cancels event 
</span><span class="cx"> PASS dblclick listener returning false cancels event 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventseventhandlerprocessingalgorithmhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-processing-algorithm.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-processing-algorithm.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-processing-algorithm.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -5,59 +5,56 @@
</span><span class="cx">  &lt;body&gt;
</span><span class="cx">  &lt;div id=&quot;foo&quot; style=&quot;width: 100px; height: 100px; background-color: black&quot;&gt;&lt;/div&gt;
</span><span class="cx">  &lt;script&gt;
</span><del>- async_test(function(t) {
</del><ins>+
+ // Historically mouseover was special in the spec, but now it is not. See https://github.com/whatwg/html/pull/2398.
+ test(function(t) {
</ins><span class="cx">      var ev = new Event('mouseover', {cancelable: true});
</span><del>-     document.getElementById(&quot;foo&quot;).onmouseover = t.step_func(function() { return true });
</del><ins>+     document.getElementById(&quot;foo&quot;).onmouseover = t.step_func(function() { return false });
</ins><span class="cx">      document.getElementById(&quot;foo&quot;).dispatchEvent(ev);
</span><span class="cx">      assert_equals(ev.defaultPrevented, true)
</span><del>-     t.done();
- }, &quot;mouseover listener returning true cancels event&quot;);
</del><ins>+ }, &quot;mouseover listener returning false cancels event (using Event)&quot;);
</ins><span class="cx"> 
</span><del>- async_test(function(t) {
</del><ins>+ test(function(t) {
+     var ev = new MouseEvent('mouseover', {cancelable: true});
+     document.getElementById(&quot;foo&quot;).onmouseover = t.step_func(function() { return false });
+     document.getElementById(&quot;foo&quot;).dispatchEvent(ev);
+     assert_equals(ev.defaultPrevented, true)
+ }, &quot;mouseover listener returning false cancels event (using MouseEvent)&quot;);
+
+ test(function(t) {
</ins><span class="cx">      var ev = new Event('mouseover', {cancelable: true});
</span><del>-     document.getElementById(&quot;foo&quot;).onmouseover = t.step_func(function() { return false; });
</del><ins>+     document.getElementById(&quot;foo&quot;).onmouseover = t.step_func(function() { return true });
</ins><span class="cx">      document.getElementById(&quot;foo&quot;).dispatchEvent(ev);
</span><del>-     assert_equals(ev.defaultPrevented, false);
-     t.done();
- }, &quot;mouseover listener returning false doesn't cancel event&quot;);
</del><ins>+     assert_equals(ev.defaultPrevented, false)
+ }, &quot;mouseover listener returning true doesn't cancel event (using Event)&quot;);
</ins><span class="cx"> 
</span><del>- async_test(function(t) {
-     var ev = new Event('beforeunload', {cancelable: true});
-     window.onbeforeunload = t.step_func(function() {return null});
-     window.dispatchEvent(ev);
-     assert_equals(ev.defaultPrevented, true);
-     t.done();
- }, &quot;beforeunload listener returning null cancels event&quot;);
</del><ins>+ test(function(t) {
+     var ev = new MouseEvent('mouseover', {cancelable: true});
+     document.getElementById(&quot;foo&quot;).onmouseover = t.step_func(function() { return true });
+     document.getElementById(&quot;foo&quot;).dispatchEvent(ev);
+     assert_equals(ev.defaultPrevented, false)
+ }, &quot;mouseover listener returning true doesn't cancel event (using MouseEvent)&quot;);
</ins><span class="cx"> 
</span><del>- async_test(function(t) {
-     var ev = new Event('beforeunload', {cancelable: true});
-     window.onbeforeunload = t.step_func(function() {return true});
-     window.dispatchEvent(ev);
-     assert_equals(ev.defaultPrevented, false);
-     t.done();
- }, &quot;beforeunload listener returning non-null doesn't cancel event&quot;);
</del><ins>+ // beforeunload is tested in html/browsers/browsing-the-web/unloading-documents/beforeunload-canceling.html
</ins><span class="cx"> 
</span><del>- async_test(function(t) {
</del><ins>+ test(function(t) {
</ins><span class="cx">      var ev = new Event(&quot;click&quot;, {cancelable: true});
</span><span class="cx">      document.getElementById(&quot;foo&quot;).onclick = t.step_func(function() { return false; });
</span><span class="cx">      document.getElementById(&quot;foo&quot;).dispatchEvent(ev);
</span><span class="cx">      assert_equals(ev.defaultPrevented, true);
</span><del>-     t.done();
</del><span class="cx">  }, &quot;click listener returning false cancels event&quot;);
</span><span class="cx"> 
</span><del>- async_test(function(t) {
</del><ins>+ test(function(t) {
</ins><span class="cx">      var ev = new Event(&quot;blur&quot;, {cancelable: true});
</span><span class="cx">      document.getElementById(&quot;foo&quot;).onblur = t.step_func(function() { return false; });
</span><span class="cx">      document.getElementById(&quot;foo&quot;).dispatchEvent(ev);
</span><span class="cx">      assert_equals(ev.defaultPrevented, true);
</span><del>-     t.done();
</del><span class="cx">  }, &quot;blur listener returning false cancels event&quot;);
</span><span class="cx"> 
</span><del>- async_test(function(t) {
</del><ins>+ test(function(t) {
</ins><span class="cx">      var ev = new Event(&quot;dblclick&quot;, {cancelable: true});
</span><span class="cx">      document.getElementById(&quot;foo&quot;).ondblclick = t.step_func(function() { return false; });
</span><span class="cx">      document.getElementById(&quot;foo&quot;).dispatchEvent(ev);
</span><span class="cx">      assert_equals(ev.defaultPrevented, true);
</span><del>-     t.done();
</del><span class="cx">  }, &quot;dblclick listener returning false cancels event&quot;);
</span><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsresourcescompiledeventhandlersettingsobjectssupporthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/compiled-event-handler-settings-objects-support.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/compiled-event-handler-settings-objects-support.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/compiled-event-handler-settings-objects-support.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;This will be in an iframe&lt;/title&gt;
+
+&lt;script&gt;
+window.name = &quot;iframe&quot;;
+&lt;/script&gt;
+
+&lt;body onbeforeunload=&quot;return { toString: parent.postMessage.bind(parent, 'PASS', '*') };&quot;&gt;
+
+&lt;!--  window.open() uses the entry settings object to determine how the URL will be parsed  --&gt;
+&lt;button onclick=&quot;var w = window.open('open-window.html'); w.onload = () =&gt; { parent.onWindowLoaded(w.document.URL); };&quot;&gt;This will be clicked&lt;/button&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsresourcesopenwindowhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/open-window.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/open-window.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/open-window.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;This window will open during the course of the test&lt;/title&gt;
+&lt;h1&gt;Hello&lt;/h1&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsresourcesw3cimportlogfromrev213880trunkLayoutTestsimportedw3cwebplatformtestsfetchw3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/w3c-import.log (from rev 213880, trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/w3c-import.log) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/compiled-event-handler-settings-objects-support.html
+/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/resources/open-window.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -17,6 +17,7 @@
</span><span class="cx"> List of files:
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/body-onload.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/compile-event-handler-settings-objects.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/contains.json
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-javascript.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2compileerrorcrossoriginsetTimeouthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-cross-origin-setTimeout.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-cross-origin-setTimeout.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-cross-origin-setTimeout.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -29,4 +29,4 @@
</span><span class="cx">     document.body.appendChild(script);
</span><span class="cx">   &lt;/script&gt;
</span><span class="cx">  &lt;/body&gt;
</span><del>-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2compileerrorinsetIntervalhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-setInterval.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-setInterval.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-setInterval.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -23,7 +23,7 @@
</span><span class="cx">         assert_equals(typeof c, 'number', 'third arg');
</span><span class="cx">     });
</span><span class="cx">     interval = setInterval(&quot;{&quot;, 10);
</span><del>-    setTimeout(function(){
</del><ins>+    step_timeout(function(){
</ins><span class="cx">         t.step(function(){
</span><span class="cx">             clearInterval(interval);
</span><span class="cx">             assert_true(ran, 'ran');
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2compileerrorinsetTimeouthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-setTimeout.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-setTimeout.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-setTimeout.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -33,4 +33,4 @@
</span><span class="cx">     }, 20);
</span><span class="cx">   &lt;/script&gt;
</span><span class="cx">  &lt;/body&gt;
</span><del>-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2runtimeerrorcrossoriginsetTimeouthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-cross-origin-setTimeout.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-cross-origin-setTimeout.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-cross-origin-setTimeout.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -29,4 +29,4 @@
</span><span class="cx">     document.body.appendChild(script);
</span><span class="cx">   &lt;/script&gt;
</span><span class="cx">  &lt;/body&gt;
</span><del>-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2runtimeerrorinsetIntervalhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-in-setInterval.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-in-setInterval.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-in-setInterval.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -23,7 +23,7 @@
</span><span class="cx">         assert_equals(typeof c, 'number', 'third arg');
</span><span class="cx">     });
</span><span class="cx">     interval = setInterval(&quot;undefined_variable;&quot;, 10);
</span><del>-    setTimeout(function(){
</del><ins>+    step_timeout(function(){
</ins><span class="cx">         clearInterval(interval);
</span><span class="cx">         t.step(function(){
</span><span class="cx">             assert_true(ran, 'ran');
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2runtimeerrorinsetTimeouthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-in-setTimeout.html (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-in-setTimeout.html        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-in-setTimeout.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -33,4 +33,4 @@
</span><span class="cx">     }, 20);
</span><span class="cx">   &lt;/script&gt;
</span><span class="cx">  &lt;/body&gt;
</span><del>-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2supportsyntaxerrorinsetIntervaljs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/support/syntax-error-in-setInterval.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/support/syntax-error-in-setInterval.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/support/syntax-error-in-setInterval.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> interval = setInterval('{', 10);
</span><del>-setTimeout(function(){
</del><ins>+step_timeout(function(){
</ins><span class="cx">     clearInterval(interval);
</span><span class="cx">     t.step(function(){
</span><span class="cx">         assert_true(ran, 'ran');
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingprocessingmodel2supportundefinedvariableinsetIntervaljs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/support/undefined-variable-in-setInterval.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/support/undefined-variable-in-setInterval.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/support/undefined-variable-in-setInterval.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> interval = setInterval('undefined_variable;', 10);
</span><del>-setTimeout(function(){
</del><ins>+step_timeout(function(){
</ins><span class="cx">     clearInterval(interval);
</span><span class="cx">     t.step(function(){
</span><span class="cx">         assert_true(ran, 'ran');
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapissystemstateandcapabilitiesthenavigatorobjectNavigatorIDexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -6,7 +6,7 @@
</span><span class="cx"> PASS product 
</span><span class="cx"> PASS productSub 
</span><span class="cx"> PASS userAgent type 
</span><del>-PASS userAgent value 
</del><ins>+FAIL userAgent value assert_equals: userAgent should return the value sent in the User-Agent header expected &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot; but got &quot;user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/604.1.10+ (KHTML, like Gecko)\n&quot;
</ins><span class="cx"> PASS vendor 
</span><span class="cx"> PASS vendorSub 
</span><span class="cx"> PASS taintEnabled 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapissystemstateandcapabilitiesthenavigatorobjectNavigatorIDworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -6,7 +6,7 @@
</span><span class="cx"> PASS product 
</span><span class="cx"> PASS productSub 
</span><span class="cx"> PASS userAgent type 
</span><del>-PASS userAgent value 
</del><ins>+FAIL userAgent value assert_equals: userAgent should return the value sent in the User-Agent header expected &quot;{\&quot;error\&quot;: {\&quot;message\&quot;: \&quot;Traceback (most recent call last):\\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py\\&quot;, line 246, in __call__\n    rv = self.func(request, response)\n  File \\&quot;/Volumes/Data/EWS/WebKit/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/resources/inspect-headers.py\\&quot;, line 31, in main\n    result = get_response(request.raw_headers, filter_value, filter_name)\nAttributeError: 'Request' object has no attribute 'raw_headers'\n\&quot;, \&quot;code\&quot;: 500}}&quot; but got &quot;user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/604.1.10+ (KHTML, like Gecko)\n&quot;
</ins><span class="cx"> PASS vendor 
</span><span class="cx"> PASS vendorSub 
</span><span class="cx"> PASS taintEnabled 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestslintwhitelist"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/lint.whitelist (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/lint.whitelist        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/lint.whitelist        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -73,6 +73,7 @@
</span><span class="cx"> W3C-TEST.ORG:README.md
</span><span class="cx"> W3C-TEST.ORG:*/README.md
</span><span class="cx"> W3C-TEST.ORG:docs/*
</span><ins>+SET TIMEOUT: docs/*
</ins><span class="cx"> 
</span><span class="cx"> ## Helper scripts ##
</span><span class="cx"> 
</span><span class="lines">@@ -87,7 +88,7 @@
</span><span class="cx"> CR AT EOL:cors/resources/cors-headers.asis
</span><span class="cx"> CR AT EOL:html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html
</span><span class="cx"> INDENT TABS:html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html
</span><del>-CR AT EOL:webvtt/webvtt-file-format-parsing/webvtt-file-parsing/support/newlines.vtt
</del><ins>+CR AT EOL:webvtt/parsing/file-parsing/tests/support/newlines.vtt
</ins><span class="cx"> PARSE-FAILED:dom/nodes/Document-createElement-namespace-tests/empty.svg
</span><span class="cx"> PARSE-FAILED:dom/nodes/Document-createElement-namespace-tests/empty.xhtml
</span><span class="cx"> PARSE-FAILED:dom/nodes/Document-createElement-namespace-tests/minimal_html.svg
</span><span class="lines">@@ -106,6 +107,7 @@
</span><span class="cx"> W3C-TEST.ORG:subresource-integrity/refresh-header.js.headers
</span><span class="cx"> 
</span><span class="cx"> # semi-legitimate use of console.*
</span><ins>+CONSOLE:console/*
</ins><span class="cx"> CONSOLE:streams/resources/test-utils.js
</span><span class="cx"> CONSOLE:service-workers/service-worker/resources/navigation-redirect-other-origin.html
</span><span class="cx"> CONSOLE:service-workers/service-worker/navigation-redirect.https.html
</span><span class="lines">@@ -133,6 +135,76 @@
</span><span class="cx"> # The tests under this directory are not done by us
</span><span class="cx"> *:webgl/conformance-1.0.3/*
</span><span class="cx"> 
</span><ins>+# setTimeout usage (should probably mostly be fixed)
+SET TIMEOUT: *-manual.*
+SET TIMEOUT: 2dcontext/*
+SET TIMEOUT: annotation-model/scripts/ajv.min.js
+SET TIMEOUT: cookies/resources/testharness-helpers.js
+SET TIMEOUT: common/reftest-wait.js
+SET TIMEOUT: conformance-checkers/*
+SET TIMEOUT: content-security-policy/*
+SET TIMEOUT: encrypted-media/Google/migrated_to_root_disabled/encrypted-media-utils.js
+SET TIMEOUT: encrypted-media/polyfill/chrome-polyfill.js
+SET TIMEOUT: encrypted-media/polyfill/clearkey-polyfill.js
+SET TIMEOUT: encrypted-media/scripts/playback-temporary-events.js
+SET TIMEOUT: eventsource/eventsource-close.htm
+SET TIMEOUT: eventsource/eventsource-request-cancellation.htm
+SET TIMEOUT: html/*
+SET TIMEOUT: IndexedDB/*
+SET TIMEOUT: media-source/mediasource-util.js
+SET TIMEOUT: media-source/URL-createObjectURL-revoke.html
+SET TIMEOUT: mixed-content/generic/sanity-checker.js
+SET TIMEOUT: navigation-timing/*
+SET TIMEOUT: offscreen-canvas/the-offscreen-canvas/*
+SET TIMEOUT: old-tests/submission/Microsoft/history/history_000.htm
+SET TIMEOUT: old-tests/submission/Microsoft/sandbox/*
+SET TIMEOUT: old-tests/submission/Microsoft/structuredclone/structuredclone_0.html
+SET TIMEOUT: old-tests/submission/Opera/script_scheduling/*
+SET TIMEOUT: old-tests/webdriver/timeouts/res/implicit_waits_tests.html
+SET TIMEOUT: page-visibility/resources/pagevistestharness.js
+SET TIMEOUT: payment-request/allowpaymentrequest/setting-allowpaymentrequest-timing.https.sub.html
+SET TIMEOUT: pointerevents/pointerevent_support.js
+SET TIMEOUT: preload/single-download-preload.html
+SET TIMEOUT: resource-timing/resource-timing.js
+SET TIMEOUT: screen-orientation/lock-bad-argument.html
+SET TIMEOUT: screen-orientation/onchange-event.html
+SET TIMEOUT: screen-orientation/resources/sandboxed-iframe-locking.html
+SET TIMEOUT: secure-contexts/basic-popup-and-iframe-tests.https.js
+SET TIMEOUT: service-workers/service-worker/activation.https.html
+SET TIMEOUT: service-workers/service-worker/fetch-frame-resource.https.html
+SET TIMEOUT: service-workers/service-worker/fetch-request-redirect.https.html
+SET TIMEOUT: service-workers/service-worker/fetch-waits-for-activate.https.html
+SET TIMEOUT: service-workers/service-worker/update-recovery.https.html
+SET TIMEOUT: service-workers/service-worker/resources/extendable-event-async-waituntil.js
+SET TIMEOUT: service-workers/service-worker/resources/fetch-event-async-respond-with-worker.js
+SET TIMEOUT: service-workers/service-worker/resources/fetch-event-test-worker.js
+SET TIMEOUT: service-workers/service-worker/resources/performance-timeline-worker.js
+SET TIMEOUT: shadow-dom/Document-prototype-currentScript.html
+SET TIMEOUT: shadow-dom/scroll-to-the-fragment-in-shadow-tree.html
+SET TIMEOUT: shadow-dom/slotchange-event.html
+SET TIMEOUT: shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-003.html
+SET TIMEOUT: shadow-dom/untriaged/html-elements-in-shadow-trees/inert-html-elements/test-001.html
+SET TIMEOUT: streams/piping/close-propagation-forward.js
+SET TIMEOUT: streams/piping/error-propagation-backward.js
+SET TIMEOUT: streams/piping/error-propagation-forward.js
+SET TIMEOUT: streams/piping/general.js
+SET TIMEOUT: streams/readable-streams/cancel.js
+SET TIMEOUT: streams/resources/rs-utils.js
+SET TIMEOUT: streams/writable-streams/byte-length-queuing-strategy.js
+SET TIMEOUT: user-timing/*
+SET TIMEOUT: webaudio/js/lodash.js
+SET TIMEOUT: webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html
+SET TIMEOUT: webdriver/*
+SET TIMEOUT: webmessaging/*
+SET TIMEOUT: websockets/*
+SET TIMEOUT: webstorage/eventTestHarness.js
+SET TIMEOUT: webvtt/*
+SET TIMEOUT: workers/*
+SET TIMEOUT: XMLHttpRequest/open-url-multi-window-6.htm
+SET TIMEOUT: XMLHttpRequest/xmlhttprequest-timeout-reused.html
+SET TIMEOUT: XMLHttpRequest/resources/init.htm
+SET TIMEOUT: XMLHttpRequest/resources/xmlhttprequest-timeout.js
+
</ins><span class="cx"> # CI scripts
</span><span class="cx"> PRINT STATEMENT:check_stability.py
</span><span class="cx"> W3C-TEST.ORG:check_stability.py
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsmediaCanvasTestttf"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/media/CanvasTest.ttf (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/media/CanvasTest.ttf                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/media/CanvasTest.ttf        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+\x80`BASE\xFA42        |HFFTMUŠ\xC8        \xC4OS/2Yf/hVcmaptK\xE4\cvt &quot;\x88@gasp\xFF\xFF        tglyf@-FJ`\x80head\xF0\xBEB\xEC6hhea        p\xFE\xB4$$hmtx 8\xFC\x8B\xC0&quot;loca\xBE\x88DmaxpRMH name\xFEK\x96\xC5\xE00post$        d\xF0Vu_&lt;\xF5 Ǯ\xFE\xB8Ǯ\xFE\xB8\xFC\xFC\xDB,\xD1\xD1\xFC\xDB\\xFC\xFD\xD4,+@.\xF4\x99\xCC\x8F\x99\xCC\xEB3                PfEd@        E\xFF\\xD1%&quot;\xFCV:+ E\xFF\xFF         A\xFF\xFF\xFF\xE7\xFF\xC7        
+ &quot;\x88**D^x\x92\xAC\xAC\xBA\xC6\xFC2@&quot;2\xAA.\xB1/&lt;\xB2\xED2\xB1\xDC&lt;\xB2\xED2\xB1/&lt;\xB2\xED2\xB2\xFC&lt;\xB2\xED23!'3#&quot;\xEE\xCC\xCC\xAA\xFDV&quot;f\xCF\xED 77''7F\x8FU\x80\x8AP\x89vKo\x84_\x8D\x97U\x95\x88_\x8A\x8AZ\x84\xCF\xED 77''7F\x8FU\x80\x8AP\x89vKo\x84_\x8D\x97U\x95\x88_\x8A\x8AZ\x84\xCF\xED 77''7F\x8FU\x80\x8AP\x89vKo\x84_\x8D\x97U\x95\x88_\x8A\x8AZ\x84\xCF\xED 77''7F\x8FU\x80\x8AP\x89vKo\x84_\x8D\x97U\x95\x88_\x8A\x8AZ\x84\xCF\xED 77''7F\x8FU\x80\x8AP\x89vKo\x84_\x8D\x97U\x95\x88_\x8A\x8AZ\x84!!\xFC\xFD\xFF1!!\xFC\xFF\xFC\xDB\xD1 77
 ''7!!''7'7F\x8FU\x80\x8AP\x89vKo\xFE`\xFClU\x80\x8AP\x89vKo\x88F\x8Fh_\x8D\x97U\x95\x88_\x8A\x8AZ\x84\xFD&quot;\xFCTU\x95\x88_\x8A\x8AZ\x84\x8A_\x8D\xFC\xFF, 77''7!!''7'7\xFCF\x8FU\x80\x8AP\x89vKoc\xFC\xCDU\x80\x8AP\x89vKo\x88F\x8F\xC2_\x8D\x97U\x95\x88_\x8A\x8AZ\x84\xC8\xFCOU\x95\x88_\x8A\x8AZ\x84\x8A_\x8D\xFF!!\xFC\xFC\xAEu\xEC
+x\x91&amp;\xE6
+#P
+w        \xEA        b         \x83        L\x98        +         .        aCopyright (c) 2010 Philip Taylor.
+
+Released under the MIT License: http://www.opensource.org/licenses/mit-license.phpCopyright (c) 2010 Philip Taylor.
+
+Released under the MIT License: http://www.opensource.org/licenses/mit-license.phpCanvasTestCanvasTestMediumMediumFontForge 2.0 : CanvasTest : 27-2-2010FontForge 2.0 : CanvasTest : 27-2-2010CanvasTestCanvasTestVersion 001.000 Version 001.000 CanvasTestCanvasTest\xFF\x813+$%&amp;'(uni000Duni0009uni000Auni000Buni000C\xFF\xFFhangideomathromnDFLT \x80\x80\xC6e\xB7\xCAǭ\xD4RǮ\xFE\xAB
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsmediaw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/media/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/media/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/media/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -18,6 +18,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/media/2048x1360-random.jpg
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/media/A4.mp4
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/media/A4.ogv
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/media/CanvasTest.ttf
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/media/OWNERS
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/media/foo.vtt
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/media/foo.vtt.headers
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamspipinggeneraljs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/general.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/general.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/general.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -155,7 +155,7 @@
</span><span class="cx"> }, 'Piping from a ReadableStream for which a chunk becomes asynchronously readable after the pipeTo');
</span><span class="cx"> 
</span><span class="cx"> for (const preventAbort of [true, false]) {
</span><del>-  promise_test(t =&gt; {
</del><ins>+  promise_test(() =&gt; {
</ins><span class="cx"> 
</span><span class="cx">     const rs = new ReadableStream({
</span><span class="cx">       pull() {
</span><span class="lines">@@ -171,7 +171,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> for (const preventCancel of [true, false]) {
</span><del>-  promise_test(t =&gt; {
</del><ins>+  promise_test(() =&gt; {
</ins><span class="cx"> 
</span><span class="cx">     const rs = new ReadableStream({
</span><span class="cx">       pull(controller) {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamspipingpipethroughjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/pipe-through.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/pipe-through.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/pipe-through.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx">     assert_array_equals(chunks, [1, 2, 3, 4, 5]), 'chunks should match');
</span><span class="cx"> }, 'Piping through a duck-typed pass-through transform stream should work');
</span><span class="cx"> 
</span><del>-promise_test(t =&gt; {
</del><ins>+promise_test(() =&gt; {
</ins><span class="cx">   const transform = {
</span><span class="cx">     writable: new WritableStream({
</span><span class="cx">       start(c) {
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> 
</span><span class="cx"> test(() =&gt; {
</span><span class="cx">   const dummy = {
</span><del>-    pipeTo(args) {
</del><ins>+    pipeTo() {
</ins><span class="cx">       return { not: 'a promise' };
</span><span class="cx">     }
</span><span class="cx">   };
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx"> 
</span><span class="cx"> test(() =&gt; {
</span><span class="cx">   const dummy = {
</span><del>-    pipeTo(args) {
</del><ins>+    pipeTo() {
</ins><span class="cx">       return {
</span><span class="cx">         then() {},
</span><span class="cx">         this: 'is not a real promise'
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablebytestreamsgeneralexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,6 +4,8 @@
</span><span class="cx"> PASS ReadableStream with byte source: Construct and expect start and pull being called 
</span><span class="cx"> PASS ReadableStream with byte source: No automatic pull call if start doesn't finish 
</span><span class="cx"> PASS ReadableStream with byte source: Construct with highWaterMark of 0 
</span><ins>+FAIL ReadableStream with byte source: desiredSize when closed assert_equals: after closing, desiredSize must be 0 expected 0 but got 10
+FAIL ReadableStream with byte source: desiredSize when errored assert_equals: after erroring, desiredSize must be null expected (object) null but got (number) 10
</ins><span class="cx"> PASS ReadableStream with byte source: getReader(), then releaseLock() 
</span><span class="cx"> FAIL ReadableStream with byte source: getReader() with mode set to byob, then releaseLock() ReadableStreamBYOBReader is not implemented
</span><span class="cx"> PASS ReadableStream with byte source: Test that closing a stream does not release a reader automatically 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablebytestreamsgeneraldedicatedworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -4,6 +4,8 @@
</span><span class="cx"> PASS ReadableStream with byte source: Construct and expect start and pull being called 
</span><span class="cx"> PASS ReadableStream with byte source: No automatic pull call if start doesn't finish 
</span><span class="cx"> PASS ReadableStream with byte source: Construct with highWaterMark of 0 
</span><ins>+FAIL ReadableStream with byte source: desiredSize when closed assert_equals: after closing, desiredSize must be 0 expected 0 but got 10
+FAIL ReadableStream with byte source: desiredSize when errored assert_equals: after erroring, desiredSize must be null expected (object) null but got (number) 10
</ins><span class="cx"> PASS ReadableStream with byte source: getReader(), then releaseLock() 
</span><span class="cx"> FAIL ReadableStream with byte source: getReader() with mode set to byob, then releaseLock() ReadableStreamBYOBReader is not implemented
</span><span class="cx"> PASS ReadableStream with byte source: Test that closing a stream does not release a reader automatically 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablebytestreamsgeneraljs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -100,6 +100,32 @@
</span><span class="cx">   return Promise.resolve();
</span><span class="cx"> }, 'ReadableStream with byte source: Construct with highWaterMark of 0');
</span><span class="cx"> 
</span><ins>+test(() =&gt; {
+  new ReadableStream({
+    start(c) {
+      assert_equals(c.desiredSize, 10, 'desiredSize must start at the highWaterMark');
+      c.close();
+      assert_equals(c.desiredSize, 0, 'after closing, desiredSize must be 0');
+    },
+    type: 'bytes'
+  }, {
+    highWaterMark: 10
+  });
+}, 'ReadableStream with byte source: desiredSize when closed');
+
+test(() =&gt; {
+  new ReadableStream({
+    start(c) {
+      assert_equals(c.desiredSize, 10, 'desiredSize must start at the highWaterMark');
+      c.error();
+      assert_equals(c.desiredSize, null, 'after erroring, desiredSize must be null');
+    },
+    type: 'bytes'
+  }, {
+    highWaterMark: 10
+  });
+}, 'ReadableStream with byte source: desiredSize when errored');
+
</ins><span class="cx"> promise_test(t =&gt; {
</span><span class="cx">   const stream = new ReadableStream({
</span><span class="cx">     type: 'bytes'
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsbadunderlyingsourcesjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/bad-underlying-sources.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/bad-underlying-sources.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/bad-underlying-sources.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -153,7 +153,7 @@
</span><span class="cx">   });
</span><span class="cx"> 
</span><span class="cx">   rs.cancel();
</span><del>-  assert_throws(new TypeError, () =&gt; controller.enqueue('a'), 'Calling enqueue after canceling should throw');
</del><ins>+  assert_throws(new TypeError(), () =&gt; controller.enqueue('a'), 'Calling enqueue after canceling should throw');
</ins><span class="cx"> 
</span><span class="cx">   return rs.getReader().closed;
</span><span class="cx"> 
</span><span class="lines">@@ -171,7 +171,7 @@
</span><span class="cx">   });
</span><span class="cx"> 
</span><span class="cx">   rs.cancel();
</span><del>-  assert_throws(new TypeError, () =&gt; controller.enqueue('c'), 'Calling enqueue after canceling should throw');
</del><ins>+  assert_throws(new TypeError(), () =&gt; controller.enqueue('c'), 'Calling enqueue after canceling should throw');
</ins><span class="cx"> 
</span><span class="cx">   return rs.getReader().closed;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsbrandchecksexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/brand-checks-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/brand-checks-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/brand-checks-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,14 +1,14 @@
</span><span class="cx"> 
</span><del>-PASS Can get the ReadableStreamReader constructor indirectly 
</del><ins>+PASS Can get the ReadableStreamDefaultReader constructor indirectly 
</ins><span class="cx"> PASS Can get the ReadableStreamController constructor indirectly 
</span><span class="cx"> PASS ReadableStream.prototype.cancel enforces a brand check 
</span><span class="cx"> PASS ReadableStream.prototype.getReader enforces a brand check 
</span><span class="cx"> PASS ReadableStream.prototype.tee enforces a brand check 
</span><del>-PASS ReadableStreamReader enforces a brand check on its argument 
-PASS ReadableStreamReader.prototype.closed enforces a brand check 
-PASS ReadableStreamReader.prototype.cancel enforces a brand check 
-PASS ReadableStreamReader.prototype.read enforces a brand check 
-PASS ReadableStreamReader.prototype.releaseLock enforces a brand check 
</del><ins>+PASS ReadableStreamDefaultReader enforces a brand check on its argument 
+PASS ReadableStreamDefaultReader.prototype.closed enforces a brand check 
+PASS ReadableStreamDefaultReader.prototype.cancel enforces a brand check 
+PASS ReadableStreamDefaultReader.prototype.read enforces a brand check 
+PASS ReadableStreamDefaultReader.prototype.releaseLock enforces a brand check 
</ins><span class="cx"> PASS ReadableStreamController enforces a brand check on its argument 
</span><span class="cx"> PASS ReadableStreamController can't be given a fully-constructed ReadableStream 
</span><span class="cx"> PASS ReadableStreamController.prototype.close enforces a brand check 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsbrandchecksdedicatedworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/brand-checks.dedicatedworker-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/brand-checks.dedicatedworker-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/brand-checks.dedicatedworker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,14 +1,14 @@
</span><span class="cx"> 
</span><del>-PASS Can get the ReadableStreamReader constructor indirectly 
</del><ins>+PASS Can get the ReadableStreamDefaultReader constructor indirectly 
</ins><span class="cx"> PASS Can get the ReadableStreamController constructor indirectly 
</span><span class="cx"> PASS ReadableStream.prototype.cancel enforces a brand check 
</span><span class="cx"> PASS ReadableStream.prototype.getReader enforces a brand check 
</span><span class="cx"> PASS ReadableStream.prototype.tee enforces a brand check 
</span><del>-PASS ReadableStreamReader enforces a brand check on its argument 
-PASS ReadableStreamReader.prototype.closed enforces a brand check 
-PASS ReadableStreamReader.prototype.cancel enforces a brand check 
-PASS ReadableStreamReader.prototype.read enforces a brand check 
-PASS ReadableStreamReader.prototype.releaseLock enforces a brand check 
</del><ins>+PASS ReadableStreamDefaultReader enforces a brand check on its argument 
+PASS ReadableStreamDefaultReader.prototype.closed enforces a brand check 
+PASS ReadableStreamDefaultReader.prototype.cancel enforces a brand check 
+PASS ReadableStreamDefaultReader.prototype.read enforces a brand check 
+PASS ReadableStreamDefaultReader.prototype.releaseLock enforces a brand check 
</ins><span class="cx"> PASS ReadableStreamController enforces a brand check on its argument 
</span><span class="cx"> PASS ReadableStreamController can't be given a fully-constructed ReadableStream 
</span><span class="cx"> PASS ReadableStreamController.prototype.close enforces a brand check 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsbrandchecksjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/brand-checks.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/brand-checks.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/brand-checks.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -5,15 +5,15 @@
</span><span class="cx">   self.importScripts('/resources/testharness.js');
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-let ReadableStreamReader;
</del><ins>+let ReadableStreamDefaultReader;
</ins><span class="cx"> let ReadableStreamController;
</span><span class="cx"> 
</span><span class="cx"> test(() =&gt; {
</span><span class="cx"> 
</span><span class="cx">   // It's not exposed globally, but we test a few of its properties here.
</span><del>-  ReadableStreamReader = (new ReadableStream()).getReader().constructor;
</del><ins>+  ReadableStreamDefaultReader = (new ReadableStream()).getReader().constructor;
</ins><span class="cx"> 
</span><del>-}, 'Can get the ReadableStreamReader constructor indirectly');
</del><ins>+}, 'Can get the ReadableStreamDefaultReader constructor indirectly');
</ins><span class="cx"> 
</span><span class="cx"> test(() =&gt; {
</span><span class="cx"> 
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> function fakeReadableStream() {
</span><span class="cx">   return {
</span><span class="cx">     cancel() { return Promise.resolve(); },
</span><del>-    getReader() { return new ReadableStreamReader(new ReadableStream()); },
</del><ins>+    getReader() { return new ReadableStreamDefaultReader(new ReadableStream()); },
</ins><span class="cx">     pipeThrough(obj) { return obj.readable; },
</span><span class="cx">     pipeTo() { return Promise.resolve(); },
</span><span class="cx">     tee() { return [realReadableStream(), realReadableStream()]; }
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx">   return new ReadableStream();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function fakeReadableStreamReader() {
</del><ins>+function fakeReadableStreamDefaultReader() {
</ins><span class="cx">   return {
</span><span class="cx">     get closed() { return Promise.resolve(); },
</span><span class="cx">     cancel() { return Promise.resolve(); },
</span><span class="lines">@@ -77,44 +77,44 @@
</span><span class="cx"> 
</span><span class="cx"> test(() =&gt; {
</span><span class="cx"> 
</span><del>-  assert_throws(new TypeError(), () =&gt; new ReadableStreamReader(fakeReadableStream()),
-                'Constructing a ReadableStreamReader should throw');
</del><ins>+  assert_throws(new TypeError(), () =&gt; new ReadableStreamDefaultReader(fakeReadableStream()),
+                'Constructing a ReadableStreamDefaultReader should throw');
</ins><span class="cx"> 
</span><del>-}, 'ReadableStreamReader enforces a brand check on its argument');
</del><ins>+}, 'ReadableStreamDefaultReader enforces a brand check on its argument');
</ins><span class="cx"> 
</span><span class="cx"> promise_test(t =&gt; {
</span><span class="cx"> 
</span><span class="cx">   return Promise.all([
</span><del>-    getterRejects(t, ReadableStreamReader.prototype, 'closed', fakeReadableStreamReader()),
-    getterRejects(t, ReadableStreamReader.prototype, 'closed', realReadableStream())
</del><ins>+    getterRejects(t, ReadableStreamDefaultReader.prototype, 'closed', fakeReadableStreamDefaultReader()),
+    getterRejects(t, ReadableStreamDefaultReader.prototype, 'closed', realReadableStream())
</ins><span class="cx">   ]);
</span><span class="cx"> 
</span><del>-}, 'ReadableStreamReader.prototype.closed enforces a brand check');
</del><ins>+}, 'ReadableStreamDefaultReader.prototype.closed enforces a brand check');
</ins><span class="cx"> 
</span><span class="cx"> promise_test(t =&gt; {
</span><span class="cx"> 
</span><span class="cx">   return Promise.all([
</span><del>-    methodRejects(t, ReadableStreamReader.prototype, 'cancel', fakeReadableStreamReader()),
-    methodRejects(t, ReadableStreamReader.prototype, 'cancel', realReadableStream())
</del><ins>+    methodRejects(t, ReadableStreamDefaultReader.prototype, 'cancel', fakeReadableStreamDefaultReader()),
+    methodRejects(t, ReadableStreamDefaultReader.prototype, 'cancel', realReadableStream())
</ins><span class="cx">   ]);
</span><span class="cx"> 
</span><del>-}, 'ReadableStreamReader.prototype.cancel enforces a brand check');
</del><ins>+}, 'ReadableStreamDefaultReader.prototype.cancel enforces a brand check');
</ins><span class="cx"> 
</span><span class="cx"> promise_test(t =&gt; {
</span><span class="cx"> 
</span><span class="cx">   return Promise.all([
</span><del>-    methodRejects(t, ReadableStreamReader.prototype, 'read', fakeReadableStreamReader()),
-    methodRejects(t, ReadableStreamReader.prototype, 'read', realReadableStream())
</del><ins>+    methodRejects(t, ReadableStreamDefaultReader.prototype, 'read', fakeReadableStreamDefaultReader()),
+    methodRejects(t, ReadableStreamDefaultReader.prototype, 'read', realReadableStream())
</ins><span class="cx">   ]);
</span><span class="cx"> 
</span><del>-}, 'ReadableStreamReader.prototype.read enforces a brand check');
</del><ins>+}, 'ReadableStreamDefaultReader.prototype.read enforces a brand check');
</ins><span class="cx"> 
</span><span class="cx"> test(() =&gt; {
</span><span class="cx"> 
</span><del>-  methodThrows(ReadableStreamReader.prototype, 'releaseLock', fakeReadableStreamReader());
-  methodThrows(ReadableStreamReader.prototype, 'releaseLock', realReadableStream());
</del><ins>+  methodThrows(ReadableStreamDefaultReader.prototype, 'releaseLock', fakeReadableStreamDefaultReader());
+  methodThrows(ReadableStreamDefaultReader.prototype, 'releaseLock', realReadableStream());
</ins><span class="cx"> 
</span><del>-}, 'ReadableStreamReader.prototype.releaseLock enforces a brand check');
</del><ins>+}, 'ReadableStreamDefaultReader.prototype.releaseLock enforces a brand check');
</ins><span class="cx"> 
</span><span class="cx"> test(() =&gt; {
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamscanceljs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/cancel.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/cancel.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/cancel.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -39,10 +39,10 @@
</span><span class="cx">   // We call delay multiple times to avoid cancelling too early for the
</span><span class="cx">   // source to enqueue at least one chunk.
</span><span class="cx">   const cancel = delay(5).then(() =&gt; delay(5)).then(() =&gt; delay(5)).then(() =&gt; {
</span><del>-    let cancelPromise = reader.cancel();
</del><ins>+    const cancelPromise = reader.cancel();
</ins><span class="cx">     assert_false(cancellationFinished, 'cancellation in source should happen later');
</span><span class="cx">     return cancelPromise;
</span><del>-  })
</del><ins>+  });
</ins><span class="cx"> 
</span><span class="cx">   return readableStreamToArray(rs, reader).then(chunks =&gt; {
</span><span class="cx">     assert_greater_than(chunks.length, 0, 'at least one chunk should be read');
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+
+PASS Can get the ReadableStreamDefaultReader constructor indirectly 
+PASS ReadableStreamDefaultReader constructor should get a ReadableStream object as argument 
+PASS ReadableStreamDefaultReader instances should have the correct list of properties 
+PASS ReadableStreamDefaultReader closed should always return the same promise object 
+PASS Constructing a ReadableStreamDefaultReader directly should fail if the stream is already locked (via direct construction) 
+PASS Getting a ReadableStreamDefaultReader via getReader should fail if the stream is already locked (via direct construction) 
+PASS Constructing a ReadableStreamDefaultReader directly should fail if the stream is already locked (via getReader) 
+PASS Getting a ReadableStreamDefaultReader via getReader should fail if the stream is already locked (via getReader) 
+PASS Constructing a ReadableStreamDefaultReader directly should be OK if the stream is closed 
+PASS Constructing a ReadableStreamDefaultReader directly should be OK if the stream is errored 
+PASS Reading from a reader for an empty stream will wait until a chunk is available 
+PASS cancel() on a reader does not release the reader 
+PASS closed should be fulfilled after stream is closed (.closed access before acquiring) 
+PASS closed should be rejected after reader releases its lock (multiple stream locks) 
+PASS Multiple readers can access the stream in sequence 
+PASS Cannot use an already-released reader to unlock a stream again 
+PASS cancel() on a released reader is a no-op and does not pass through 
+PASS Getting a second reader after erroring the stream and releasing the reader should succeed 
+PASS ReadableStreamDefaultReader closed promise should be rejected with undefined if that is the error 
+PASS ReadableStreamDefaultReader: if start rejects with no parameter, it should error the stream with an undefined error 
+PASS Erroring a ReadableStream after checking closed should reject ReadableStreamDefaultReader closed promise 
+PASS Erroring a ReadableStream before checking closed should reject ReadableStreamDefaultReader closed promise 
+PASS Reading twice on a stream that gets closed 
+PASS Reading twice on a closed stream 
+PASS Reading twice on an errored stream 
+PASS Reading twice on a stream that gets errored 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderdedicatedworkerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.dedicatedworker-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.dedicatedworker-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.dedicatedworker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+
+PASS Can get the ReadableStreamDefaultReader constructor indirectly 
+PASS ReadableStreamDefaultReader constructor should get a ReadableStream object as argument 
+PASS ReadableStreamDefaultReader instances should have the correct list of properties 
+PASS ReadableStreamDefaultReader closed should always return the same promise object 
+PASS Constructing a ReadableStreamDefaultReader directly should fail if the stream is already locked (via direct construction) 
+PASS Getting a ReadableStreamDefaultReader via getReader should fail if the stream is already locked (via direct construction) 
+PASS Constructing a ReadableStreamDefaultReader directly should fail if the stream is already locked (via getReader) 
+PASS Getting a ReadableStreamDefaultReader via getReader should fail if the stream is already locked (via getReader) 
+PASS Constructing a ReadableStreamDefaultReader directly should be OK if the stream is closed 
+PASS Constructing a ReadableStreamDefaultReader directly should be OK if the stream is errored 
+PASS Reading from a reader for an empty stream will wait until a chunk is available 
+PASS cancel() on a reader does not release the reader 
+PASS closed should be fulfilled after stream is closed (.closed access before acquiring) 
+PASS closed should be rejected after reader releases its lock (multiple stream locks) 
+PASS Multiple readers can access the stream in sequence 
+PASS Cannot use an already-released reader to unlock a stream again 
+PASS cancel() on a released reader is a no-op and does not pass through 
+PASS Getting a second reader after erroring the stream and releasing the reader should succeed 
+PASS ReadableStreamDefaultReader closed promise should be rejected with undefined if that is the error 
+PASS ReadableStreamDefaultReader: if start rejects with no parameter, it should error the stream with an undefined error 
+PASS Erroring a ReadableStream after checking closed should reject ReadableStreamDefaultReader closed promise 
+PASS Erroring a ReadableStream before checking closed should reject ReadableStreamDefaultReader closed promise 
+PASS Reading twice on a stream that gets closed 
+PASS Reading twice on a closed stream 
+PASS Reading twice on an errored stream 
+PASS Reading twice on a stream that gets errored 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderdedicatedworkerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.dedicatedworker.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.dedicatedworker.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.dedicatedworker.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;default-reader.js dedicated worker wrapper file&lt;/title&gt;
+
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+
+&lt;script&gt;
+'use strict';
+fetch_tests_from_worker(new Worker('default-reader.js'));
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;default-reader.js browser context wrapper file&lt;/title&gt;
+
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+
+&lt;script src=&quot;../resources/rs-utils.js&quot;&gt;&lt;/script&gt;
+
+&lt;script src=&quot;default-reader.js&quot;&gt;&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.js (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.js                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,486 @@
</span><ins>+'use strict';
+
+if (self.importScripts) {
+  self.importScripts('../resources/rs-utils.js');
+  self.importScripts('/resources/testharness.js');
+}
+
+let ReadableStreamDefaultReader;
+
+test(() =&gt; {
+
+  // It's not exposed globally, but we test a few of its properties here.
+  ReadableStreamDefaultReader = (new ReadableStream()).getReader().constructor;
+
+}, 'Can get the ReadableStreamDefaultReader constructor indirectly');
+
+test(() =&gt; {
+
+  assert_throws(new TypeError(), () =&gt; new ReadableStreamDefaultReader('potato'));
+  assert_throws(new TypeError(), () =&gt; new ReadableStreamDefaultReader({}));
+  assert_throws(new TypeError(), () =&gt; new ReadableStreamDefaultReader());
+
+}, 'ReadableStreamDefaultReader constructor should get a ReadableStream object as argument');
+
+test(() =&gt; {
+
+  const methods = ['cancel', 'constructor', 'read', 'releaseLock'];
+  const properties = methods.concat(['closed']).sort();
+
+  const rsReader = new ReadableStreamDefaultReader(new ReadableStream());
+  const proto = Object.getPrototypeOf(rsReader);
+
+  assert_array_equals(Object.getOwnPropertyNames(proto).sort(), properties);
+
+  for (const m of methods) {
+    const propDesc = Object.getOwnPropertyDescriptor(proto, m);
+    assert_equals(propDesc.enumerable, false, 'method should be non-enumerable');
+    assert_equals(propDesc.configurable, true, 'method should be configurable');
+    assert_equals(propDesc.writable, true, 'method should be writable');
+    assert_equals(typeof rsReader[m], 'function', 'should have be a method');
+  }
+
+  const closedPropDesc = Object.getOwnPropertyDescriptor(proto, 'closed');
+  assert_equals(closedPropDesc.enumerable, false, 'closed should be non-enumerable');
+  assert_equals(closedPropDesc.configurable, true, 'closed should be configurable');
+  assert_not_equals(closedPropDesc.get, undefined, 'closed should have a getter');
+  assert_equals(closedPropDesc.set, undefined, 'closed should not have a setter');
+
+  assert_equals(rsReader.cancel.length, 1, 'cancel has 1 parameter');
+  assert_not_equals(rsReader.closed, undefined, 'has a non-undefined closed property');
+  assert_equals(typeof rsReader.closed.then, 'function', 'closed property is thenable');
+  assert_equals(typeof rsReader.constructor, 'function', 'has a constructor method');
+  assert_equals(rsReader.constructor.length, 1, 'constructor has 1 parameter');
+  assert_equals(typeof rsReader.read, 'function', 'has a getReader method');
+  assert_equals(rsReader.read.length, 0, 'read has no parameters');
+  assert_equals(typeof rsReader.releaseLock, 'function', 'has a releaseLock method');
+  assert_equals(rsReader.releaseLock.length, 0, 'releaseLock has no parameters');
+
+}, 'ReadableStreamDefaultReader instances should have the correct list of properties');
+
+test(() =&gt; {
+
+  const rsReader = new ReadableStreamDefaultReader(new ReadableStream());
+  assert_equals(rsReader.closed, rsReader.closed, 'closed should return the same promise');
+
+}, 'ReadableStreamDefaultReader closed should always return the same promise object');
+
+test(() =&gt; {
+
+  const rs = new ReadableStream();
+  new ReadableStreamDefaultReader(rs); // Constructing directly the first time should be fine.
+  assert_throws(new TypeError(), () =&gt; new ReadableStreamDefaultReader(rs),
+                'constructing directly the second time should fail');
+
+}, 'Constructing a ReadableStreamDefaultReader directly should fail if the stream is already locked (via direct ' +
+   'construction)');
+
+test(() =&gt; {
+
+  const rs = new ReadableStream();
+  new ReadableStreamDefaultReader(rs); // Constructing directly should be fine.
+  assert_throws(new TypeError(), () =&gt; rs.getReader(), 'getReader() should fail');
+
+}, 'Getting a ReadableStreamDefaultReader via getReader should fail if the stream is already locked (via direct ' +
+   'construction)');
+
+test(() =&gt; {
+
+  const rs = new ReadableStream();
+  rs.getReader(); // getReader() should be fine.
+  assert_throws(new TypeError(), () =&gt; new ReadableStreamDefaultReader(rs), 'constructing directly should fail');
+
+}, 'Constructing a ReadableStreamDefaultReader directly should fail if the stream is already locked (via getReader)');
+
+test(() =&gt; {
+
+  const rs = new ReadableStream();
+  rs.getReader(); // getReader() should be fine.
+  assert_throws(new TypeError(), () =&gt; rs.getReader(), 'getReader() should fail');
+
+}, 'Getting a ReadableStreamDefaultReader via getReader should fail if the stream is already locked (via getReader)');
+
+test(() =&gt; {
+
+  const rs = new ReadableStream({
+    start(c) {
+      c.close();
+    }
+  });
+
+  new ReadableStreamDefaultReader(rs); // Constructing directly should not throw.
+
+}, 'Constructing a ReadableStreamDefaultReader directly should be OK if the stream is closed');
+
+test(() =&gt; {
+
+  const theError = new Error('don\'t say i didn\'t warn ya');
+  const rs = new ReadableStream({
+    start(c) {
+      c.error(theError);
+    }
+  });
+
+  new ReadableStreamDefaultReader(rs); // Constructing directly should not throw.
+
+}, 'Constructing a ReadableStreamDefaultReader directly should be OK if the stream is errored');
+
+promise_test(() =&gt; {
+
+  let controller;
+  const rs = new ReadableStream({
+    start(c) {
+      controller = c;
+    }
+  });
+  const reader = rs.getReader();
+
+  const promise = reader.read().then(result =&gt; {
+    assert_object_equals(result, { value: 'a', done: false }, 'read() should fulfill with the enqueued chunk');
+  });
+
+  controller.enqueue('a');
+  return promise;
+
+}, 'Reading from a reader for an empty stream will wait until a chunk is available');
+
+promise_test(() =&gt; {
+
+  let cancelCalled = false;
+  const passedReason = new Error('it wasn\'t the right time, sorry');
+  const rs = new ReadableStream({
+    cancel(reason) {
+      assert_true(rs.locked, 'the stream should still be locked');
+      assert_throws(new TypeError(), () =&gt; rs.getReader(), 'should not be able to get another reader');
+      assert_equals(reason, passedReason, 'the cancellation reason is passed through to the underlying source');
+      cancelCalled = true;
+    }
+  });
+
+  const reader = rs.getReader();
+  return reader.cancel(passedReason).then(() =&gt; assert_true(cancelCalled));
+
+}, 'cancel() on a reader does not release the reader');
+
+promise_test(() =&gt; {
+
+  let controller;
+  const rs = new ReadableStream({
+    start(c) {
+      controller = c;
+    }
+  });
+
+  const reader = rs.getReader();
+  const promise = reader.closed;
+
+  controller.close();
+  return promise;
+
+}, 'closed should be fulfilled after stream is closed (.closed access before acquiring)');
+
+promise_test(t =&gt; {
+
+  let controller;
+  const rs = new ReadableStream({
+    start(c) {
+      controller = c;
+    }
+  });
+
+  const reader1 = rs.getReader();
+
+  reader1.releaseLock();
+
+  const reader2 = rs.getReader();
+  controller.close();
+
+  return Promise.all([
+    promise_rejects(t, new TypeError(), reader1.closed),
+    reader2.closed
+  ]);
+
+}, 'closed should be rejected after reader releases its lock (multiple stream locks)');
+
+promise_test(() =&gt; {
+
+  const rs = new ReadableStream({
+    start(c) {
+      c.enqueue('a');
+      c.enqueue('b');
+      c.close();
+    }
+  });
+
+  const reader1 = rs.getReader();
+  const promise1 = reader1.read().then(r =&gt; {
+    assert_object_equals(r, { value: 'a', done: false }, 'reading the first chunk from reader1 works');
+  });
+  reader1.releaseLock();
+
+  const reader2 = rs.getReader();
+  const promise2 = reader2.read().then(r =&gt; {
+    assert_object_equals(r, { value: 'b', done: false }, 'reading the second chunk from reader2 works');
+  });
+  reader2.releaseLock();
+
+  return Promise.all([promise1, promise2]);
+
+}, 'Multiple readers can access the stream in sequence');
+
+promise_test(() =&gt; {
+  const rs = new ReadableStream({
+    start(c) {
+      c.enqueue('a');
+    }
+  });
+
+  const reader1 = rs.getReader();
+  reader1.releaseLock();
+
+  const reader2 = rs.getReader();
+
+  // Should be a no-op
+  reader1.releaseLock();
+
+  return reader2.read().then(result =&gt; {
+    assert_object_equals(result, { value: 'a', done: false },
+                         'read() should still work on reader2 even after reader1 is released');
+  });
+
+}, 'Cannot use an already-released reader to unlock a stream again');
+
+promise_test(t =&gt; {
+
+  const rs = new ReadableStream({
+    start(c) {
+      c.enqueue('a');
+    },
+    cancel() {
+      assert_unreached('underlying source cancel should not be called');
+    }
+  });
+
+  const reader = rs.getReader();
+  reader.releaseLock();
+  const cancelPromise = reader.cancel();
+
+  const reader2 = rs.getReader();
+  const readPromise = reader2.read().then(r =&gt; {
+    assert_object_equals(r, { value: 'a', done: false }, 'a new reader should be able to read a chunk');
+  });
+
+  return Promise.all([
+    promise_rejects(t, new TypeError(), cancelPromise),
+    readPromise
+  ]);
+
+}, 'cancel() on a released reader is a no-op and does not pass through');
+
+promise_test(t =&gt; {
+
+  const promiseAsserts = [];
+
+  let controller;
+  const theError = { name: 'unique error' };
+  const rs = new ReadableStream({
+    start(c) {
+      controller = c;
+    }
+  });
+
+  const reader1 = rs.getReader();
+
+  promiseAsserts.push(
+    promise_rejects(t, theError, reader1.closed),
+    promise_rejects(t, theError, reader1.read())
+  );
+
+  assert_throws(new TypeError(), () =&gt; rs.getReader(), 'trying to get another reader before erroring should throw');
+
+  controller.error(theError);
+
+  reader1.releaseLock();
+
+  const reader2 = rs.getReader();
+
+  promiseAsserts.push(
+    promise_rejects(t, theError, reader2.closed),
+    promise_rejects(t, theError, reader2.read())
+  );
+
+  return Promise.all(promiseAsserts);
+
+}, 'Getting a second reader after erroring the stream and releasing the reader should succeed');
+
+promise_test(t =&gt; {
+
+  let controller;
+  const rs = new ReadableStream({
+    start(c) {
+      controller = c;
+    }
+  });
+
+  const promise = rs.getReader().closed.then(
+    t.unreached_func('closed promise should not be fulfilled when stream is errored'),
+    err =&gt; {
+      assert_equals(err, undefined, 'passed error should be undefined as it was');
+    }
+  );
+
+  controller.error();
+  return promise;
+
+}, 'ReadableStreamDefaultReader closed promise should be rejected with undefined if that is the error');
+
+
+promise_test(t =&gt; {
+
+  const rs = new ReadableStream({
+    start() {
+      return Promise.reject();
+    }
+  });
+
+  return rs.getReader().read().then(
+    t.unreached_func('read promise should not be fulfilled when stream is errored'),
+    err =&gt; {
+      assert_equals(err, undefined, 'passed error should be undefined as it was');
+    }
+  );
+
+}, 'ReadableStreamDefaultReader: if start rejects with no parameter, it should error the stream with an undefined ' +
+    'error');
+
+promise_test(t =&gt; {
+
+  const theError = { name: 'unique string' };
+  let controller;
+  const rs = new ReadableStream({
+    start(c) {
+      controller = c;
+    }
+  });
+
+  const promise = promise_rejects(t, theError, rs.getReader().closed);
+
+  controller.error(theError);
+  return promise;
+
+}, 'Erroring a ReadableStream after checking closed should reject ReadableStreamDefaultReader closed promise');
+
+promise_test(t =&gt; {
+
+  const theError = { name: 'unique string' };
+  let controller;
+  const rs = new ReadableStream({
+    start(c) {
+      controller = c;
+    }
+  });
+
+  controller.error(theError);
+
+  // Let's call getReader twice for extra test coverage of this code path.
+  rs.getReader().releaseLock();
+
+  return promise_rejects(t, theError, rs.getReader().closed);
+
+}, 'Erroring a ReadableStream before checking closed should reject ReadableStreamDefaultReader closed promise');
+
+promise_test(() =&gt; {
+
+  let controller;
+  const rs = new ReadableStream({
+    start(c) {
+      controller = c;
+    }
+  });
+  const reader = rs.getReader();
+
+  const promise = Promise.all([
+    reader.read().then(result =&gt; {
+      assert_object_equals(result, { value: undefined, done: true }, 'read() should fulfill with close (1)');
+    }),
+    reader.read().then(result =&gt; {
+      assert_object_equals(result, { value: undefined, done: true }, 'read() should fulfill with close (2)');
+    }),
+    reader.closed
+  ]);
+
+  controller.close();
+  return promise;
+
+}, 'Reading twice on a stream that gets closed');
+
+promise_test(() =&gt; {
+
+  let controller;
+  const rs = new ReadableStream({
+    start(c) {
+      controller = c;
+    }
+  });
+
+  controller.close();
+  const reader = rs.getReader();
+
+  return Promise.all([
+    reader.read().then(result =&gt; {
+      assert_object_equals(result, { value: undefined, done: true }, 'read() should fulfill with close (1)');
+    }),
+    reader.read().then(result =&gt; {
+      assert_object_equals(result, { value: undefined, done: true }, 'read() should fulfill with close (2)');
+    }),
+    reader.closed
+  ]);
+
+}, 'Reading twice on a closed stream');
+
+promise_test(t =&gt; {
+
+  let controller;
+  const rs = new ReadableStream({
+    start(c) {
+      controller = c;
+    }
+  });
+
+  const myError = { name: 'mashed potatoes' };
+  controller.error(myError);
+
+  const reader = rs.getReader();
+
+  return Promise.all([
+    promise_rejects(t, myError, reader.read()),
+    promise_rejects(t, myError, reader.read()),
+    promise_rejects(t, myError, reader.closed)
+  ]);
+
+}, 'Reading twice on an errored stream');
+
+promise_test(t =&gt; {
+
+  let controller;
+  const rs = new ReadableStream({
+    start(c) {
+      controller = c;
+    }
+  });
+
+  const myError = { name: 'mashed potatoes' };
+  const reader = rs.getReader();
+
+  const promise = Promise.all([
+    promise_rejects(t, myError, reader.read()),
+    promise_rejects(t, myError, reader.read()),
+    promise_rejects(t, myError, reader.closed)
+  ]);
+
+  controller.error(myError);
+  return promise;
+
+}, 'Reading twice on a stream that gets errored');
+
+done();
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderserviceworkerhttpsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.serviceworker.https-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.serviceworker.https-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.serviceworker.https-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL Service worker test setup undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreaderserviceworkerhttpshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.serviceworker.https.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.serviceworker.https.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.serviceworker.https.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;default-reader.js service worker wrapper file&lt;/title&gt;
+
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/service-workers/service-worker/resources/test-helpers.sub.js&quot;&gt;&lt;/script&gt;
+
+&lt;script&gt;
+'use strict';
+service_worker_test('default-reader.js', 'Service worker test setup');
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreadersharedworkerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.sharedworker-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.sharedworker-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.sharedworker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+CONSOLE MESSAGE: line 10: ReferenceError: Can't find variable: SharedWorker
+
+Harness Error (FAIL), message = ReferenceError: Can't find variable: SharedWorker
+
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsdefaultreadersharedworkerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.sharedworker.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.sharedworker.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.sharedworker.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;default-reader.js shared worker wrapper file&lt;/title&gt;
+
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+
+&lt;script&gt;
+'use strict';
+fetch_tests_from_worker(new SharedWorker('default-reader.js'));
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizeexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+
+FAIL Floating point arithmetic must manifest near NUMBER.MAX_SAFE_INTEGER (total ends up positive) assert_equals: [[queueTotalSize]] must clamp to 0 if it becomes negative expected 0 but got 1
+FAIL Floating point arithmetic must manifest near 0 (total ends up positive, but clamped) assert_equals: [[queueTotalSize]] must clamp to 0 if it becomes negative expected 0 but got 1.1102230246251565e-16
+PASS Floating point arithmetic must manifest near 0 (total ends up positive, and not clamped) 
+PASS Floating point arithmetic must manifest near 0 (total ends up zero) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizededicatedworkerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+
+Harness Error (TIMEOUT), message = null
+
+FAIL Floating point arithmetic must manifest near NUMBER.MAX_SAFE_INTEGER (total ends up positive) assert_equals: [[queueTotalSize]] must clamp to 0 if it becomes negative expected 0 but got 1
+FAIL Floating point arithmetic must manifest near 0 (total ends up positive, but clamped) assert_equals: [[queueTotalSize]] must clamp to 0 if it becomes negative expected 0 but got 1.1102230246251565e-16
+PASS Floating point arithmetic must manifest near 0 (total ends up positive, and not clamped) 
+PASS Floating point arithmetic must manifest near 0 (total ends up zero) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizededicatedworkerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;floating-point-total-queue-size.js dedicated worker wrapper file&lt;/title&gt;
+
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+
+&lt;script&gt;
+'use strict';
+fetch_tests_from_worker(new Worker('floating-point-total-queue-size.js'));
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;floating-point-total-queue-size.js browser context wrapper file&lt;/title&gt;
+
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+
+
+
+&lt;script src=&quot;floating-point-total-queue-size.js&quot;&gt;&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizejs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.js (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.js                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,119 @@
</span><ins>+'use strict';
+
+if (self.importScripts) {
+  self.importScripts('/resources/testharness.js');
+}
+
+// Due to the limitations of floating-point precision, the calculation of desiredSize sometimes gives different answers
+// than adding up the items in the queue would. It is important that implementations give the same result in these edge
+// cases so that developers do not come to depend on non-standard behaviour. See
+// https://github.com/whatwg/streams/issues/582 and linked issues for further discussion.
+
+promise_test(() =&gt; {
+  const { reader, controller } = setupTestStream();
+
+  controller.enqueue(2);
+  assert_equals(controller.desiredSize, 0 - 2, 'desiredSize must be -2 after enqueueing such a chunk');
+
+  controller.enqueue(Number.MAX_SAFE_INTEGER);
+  assert_equals(controller.desiredSize, 0 - Number.MAX_SAFE_INTEGER - 2,
+    'desiredSize must be calculated using double-precision floating-point arithmetic (adding a second chunk)');
+
+  return reader.read().then(() =&gt; {
+    assert_equals(controller.desiredSize, 0 - Number.MAX_SAFE_INTEGER - 2 + 2,
+      'desiredSize must be calculated using double-precision floating-point arithmetic (subtracting a chunk)');
+
+    return reader.read();
+  }).then(() =&gt; {
+    assert_equals(controller.desiredSize, 0, '[[queueTotalSize]] must clamp to 0 if it becomes negative');
+  });
+}, 'Floating point arithmetic must manifest near NUMBER.MAX_SAFE_INTEGER (total ends up positive)');
+
+promise_test(() =&gt; {
+  const { reader, controller } = setupTestStream();
+
+  controller.enqueue(1e-16);
+  assert_equals(controller.desiredSize, 0 - 1e-16, 'desiredSize must be -1e16 after enqueueing such a chunk');
+
+  controller.enqueue(1);
+  assert_equals(controller.desiredSize, 0 - 1e-16 - 1,
+    'desiredSize must be calculated using double-precision floating-point arithmetic (adding a second chunk)');
+
+  return reader.read().then(() =&gt; {
+    assert_equals(controller.desiredSize, 0 - 1e-16 - 1 + 1e-16,
+      'desiredSize must be calculated using double-precision floating-point arithmetic (subtracting a chunk)');
+
+    return reader.read();
+  }).then(() =&gt; {
+    assert_equals(controller.desiredSize, 0, '[[queueTotalSize]] must clamp to 0 if it becomes negative');
+  });
+}, 'Floating point arithmetic must manifest near 0 (total ends up positive, but clamped)');
+
+promise_test(() =&gt; {
+  const { reader, controller } = setupTestStream();
+
+  controller.enqueue(1e-16);
+  assert_equals(controller.desiredSize, 0 - 1e-16, 'desiredSize must be -2e16 after enqueueing such a chunk');
+
+  controller.enqueue(1);
+  assert_equals(controller.desiredSize, 0 - 1e-16 - 1,
+    'desiredSize must be calculated using double-precision floating-point arithmetic (adding a second chunk)');
+
+  controller.enqueue(2e-16);
+  assert_equals(controller.desiredSize, 0 - 1e-16 - 1 - 2e-16,
+    'desiredSize must be calculated using double-precision floating-point arithmetic (adding a third chunk)');
+
+  return reader.read().then(() =&gt; {
+    assert_equals(controller.desiredSize, 0 - 1e-16 - 1 - 2e-16 + 1e-16,
+      'desiredSize must be calculated using double-precision floating-point arithmetic (subtracting a chunk)');
+
+    return reader.read();
+  }).then(() =&gt; {
+    assert_equals(controller.desiredSize, 0 - 1e-16 - 1 - 2e-16 + 1e-16 + 1,
+      'desiredSize must be calculated using double-precision floating-point arithmetic (subtracting a second chunk)');
+
+    return reader.read();
+  }).then(() =&gt; {
+    assert_equals(controller.desiredSize, 0 - 1e-16 - 1 - 2e-16 + 1e-16 + 1 + 2e-16,
+      'desiredSize must be calculated using double-precision floating-point arithmetic (subtracting a third chunk)');
+  });
+}, 'Floating point arithmetic must manifest near 0 (total ends up positive, and not clamped)');
+
+promise_test(() =&gt; {
+  const { reader, controller } = setupTestStream();
+
+  controller.enqueue(2e-16);
+  assert_equals(controller.desiredSize, 0 - 2e-16, 'desiredSize must be -2e16 after enqueueing such a chunk');
+
+  controller.enqueue(1);
+  assert_equals(controller.desiredSize, 0 - 2e-16 - 1,
+    'desiredSize must be calculated using double-precision floating-point arithmetic (adding a second chunk)');
+
+  return reader.read().then(() =&gt; {
+    assert_equals(controller.desiredSize, 0 - 2e-16 - 1 + 2e-16,
+      'desiredSize must be calculated using double-precision floating-point arithmetic (subtracting a chunk)');
+
+    return reader.read();
+  }).then(() =&gt; {
+    assert_equals(controller.desiredSize, 0,
+      'desiredSize must be calculated using double-precision floating-point arithmetic (subtracting a second chunk)');
+  });
+}, 'Floating point arithmetic must manifest near 0 (total ends up zero)');
+
+function setupTestStream() {
+  const strategy = {
+    size(x) {
+      return x;
+    },
+    highWaterMark: 0
+  };
+
+  let controller;
+  const rs = new ReadableStream({
+    start(c) {
+      controller = c;
+    }
+  }, strategy);
+
+  return { reader: rs.getReader(), controller };
+}
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizeserviceworkerhttpsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL Service worker test setup undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizeserviceworkerhttpshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;floating-point-total-queue-size.js service worker wrapper file&lt;/title&gt;
+
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/service-workers/service-worker/resources/test-helpers.sub.js&quot;&gt;&lt;/script&gt;
+
+&lt;script&gt;
+'use strict';
+service_worker_test('floating-point-total-queue-size.js', 'Service worker test setup');
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizesharedworkerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+CONSOLE MESSAGE: line 10: ReferenceError: Can't find variable: SharedWorker
+
+Harness Error (FAIL), message = ReferenceError: Can't find variable: SharedWorker
+
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsfloatingpointtotalqueuesizesharedworkerhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;floating-point-total-queue-size.js shared worker wrapper file&lt;/title&gt;
+
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+
+&lt;script&gt;
+'use strict';
+fetch_tests_from_worker(new SharedWorker('floating-point-total-queue-size.js'));
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsgarbagecollectionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -2,5 +2,5 @@
</span><span class="cx"> PASS ReadableStreamController methods should continue working properly when scripts lose their reference to the readable stream 
</span><span class="cx"> PASS ReadableStream closed promise should fulfill even if the stream and reader JS references are lost 
</span><span class="cx"> PASS ReadableStream closed promise should reject even if stream and reader JS references are lost 
</span><del>-PASS Garbage-collecting a ReadableStreamReader should not unlock its stream 
</del><ins>+PASS Garbage-collecting a ReadableStreamDefaultReader should not unlock its stream 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsgarbagecollectiondedicatedworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection.dedicatedworker-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection.dedicatedworker-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection.dedicatedworker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -2,5 +2,5 @@
</span><span class="cx"> PASS ReadableStreamController methods should continue working properly when scripts lose their reference to the readable stream 
</span><span class="cx"> PASS ReadableStream closed promise should fulfill even if the stream and reader JS references are lost 
</span><span class="cx"> PASS ReadableStream closed promise should reject even if stream and reader JS references are lost 
</span><del>-PASS Garbage-collecting a ReadableStreamReader should not unlock its stream 
</del><ins>+PASS Garbage-collecting a ReadableStreamDefaultReader should not unlock its stream 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsgarbagecollectionjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -70,6 +70,6 @@
</span><span class="cx">   return delay(50).then(() =&gt; assert_throws(new TypeError(), () =&gt; rs.getReader(),
</span><span class="cx">     'old reader should still be locking the stream even after garbage collection'));
</span><span class="cx"> 
</span><del>-}, 'Garbage-collecting a ReadableStreamReader should not unlock its stream');
</del><ins>+}, 'Garbage-collecting a ReadableStreamDefaultReader should not unlock its stream');
</ins><span class="cx"> 
</span><span class="cx"> done();
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsgeneralexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/general-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/general-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/general-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -29,6 +29,8 @@
</span><span class="cx"> PASS ReadableStream: enqueue should throw when the stream is readable but draining 
</span><span class="cx"> PASS ReadableStream: enqueue should throw when the stream is closed 
</span><span class="cx"> PASS ReadableStream: should call underlying source methods as methods 
</span><ins>+FAIL ReadableStream: desiredSize when closed assert_equals: after closing, desiredSize must be 0 expected 0 but got 10
+FAIL ReadableStream: desiredSize when errored assert_equals: after erroring, desiredSize must be null expected (object) null but got (number) 10
</ins><span class="cx"> PASS ReadableStream strategies: the default strategy should give desiredSize of 1 to start, decreasing by 1 per enqueue 
</span><span class="cx"> PASS ReadableStream strategies: the default strategy should continue giving desiredSize of 1 if the chunks are read immediately 
</span><span class="cx"> PASS ReadableStream integration test: adapting a random push source 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsgeneraldedicatedworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/general.dedicatedworker-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/general.dedicatedworker-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/general.dedicatedworker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -29,6 +29,8 @@
</span><span class="cx"> PASS ReadableStream: enqueue should throw when the stream is readable but draining 
</span><span class="cx"> PASS ReadableStream: enqueue should throw when the stream is closed 
</span><span class="cx"> PASS ReadableStream: should call underlying source methods as methods 
</span><ins>+FAIL ReadableStream: desiredSize when closed assert_equals: after closing, desiredSize must be 0 expected 0 but got 10
+FAIL ReadableStream: desiredSize when errored assert_equals: after erroring, desiredSize must be null expected (object) null but got (number) 10
</ins><span class="cx"> PASS ReadableStream strategies: the default strategy should give desiredSize of 1 to start, decreasing by 1 per enqueue 
</span><span class="cx"> PASS ReadableStream strategies: the default strategy should continue giving desiredSize of 1 if the chunks are read immediately 
</span><span class="cx"> PASS ReadableStream integration test: adapting a random push source 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsgeneraljs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/general.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/general.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/general.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -195,7 +195,9 @@
</span><span class="cx">   const theError = new Error('rejected!');
</span><span class="cx">   const rs = new ReadableStream({
</span><span class="cx">     start() {
</span><del>-      return delay(1).then(() =&gt; { throw theError; });
</del><ins>+      return delay(1).then(() =&gt; {
+        throw theError;
+      });
</ins><span class="cx">     }
</span><span class="cx">   });
</span><span class="cx"> 
</span><span class="lines">@@ -733,7 +735,31 @@
</span><span class="cx"> }, 'ReadableStream: should call underlying source methods as methods');
</span><span class="cx"> 
</span><span class="cx"> test(() =&gt; {
</span><ins>+  new ReadableStream({
+    start(c) {
+      assert_equals(c.desiredSize, 10, 'desiredSize must start at highWaterMark');
+      c.close();
+      assert_equals(c.desiredSize, 0, 'after closing, desiredSize must be 0');
+    }
+  }, {
+    highWaterMark: 10
+  });
+}, 'ReadableStream: desiredSize when closed');
</ins><span class="cx"> 
</span><ins>+test(() =&gt; {
+  new ReadableStream({
+    start(c) {
+      assert_equals(c.desiredSize, 10, 'desiredSize must start at highWaterMark');
+      c.error();
+      assert_equals(c.desiredSize, null, 'after erroring, desiredSize must be null');
+    }
+  }, {
+    highWaterMark: 10
+  });
+}, 'ReadableStream: desiredSize when errored');
+
+test(() =&gt; {
+
</ins><span class="cx">   let startCalled = false;
</span><span class="cx">   new ReadableStream({
</span><span class="cx">     start(c) {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamspipethroughjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/pipe-through.js (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/pipe-through.js        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/pipe-through.js        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -9,8 +9,8 @@
</span><span class="cx"> 
</span><span class="cx">   let pipeToArguments;
</span><span class="cx">   const thisValue = {
</span><del>-    pipeTo() {
-      pipeToArguments = arguments;
</del><ins>+    pipeTo(...args) {
+      pipeToArguments = args;
</ins><span class="cx">     }
</span><span class="cx">   };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsreadablestreamsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -40,6 +40,16 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/count-queuing-strategy-integration.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/count-queuing-strategy-integration.serviceworker.https.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/count-queuing-strategy-integration.sharedworker.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.dedicatedworker.html
+/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.html
+/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.js
+/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.serviceworker.https.html
+/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/default-reader.sharedworker.html
+/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker.html
+/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.html
+/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.js
+/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.serviceworker.https.html
+/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection.dedicatedworker.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/garbage-collection.js
</span><span class="lines">@@ -55,11 +65,6 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/pipe-through.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/pipe-through.serviceworker.https.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/pipe-through.sharedworker.html
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/readable-stream-reader.dedicatedworker.html
-/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/readable-stream-reader.html
-/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/readable-stream-reader.js
-/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/readable-stream-reader.serviceworker.https.html
-/LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/readable-stream-reader.sharedworker.html
</del><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/tee.dedicatedworker.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/tee.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/tee.js
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlOWNERS"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/OWNERS (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/OWNERS        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/OWNERS        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,9 +1,9 @@
</span><span class="cx"> @mikewest
</span><span class="cx"> @tomalec
</span><span class="cx"> @rubys
</span><del>-@sideshowbarker
</del><span class="cx"> @zcorpan
</span><span class="cx"> @xiaojunwu
</span><span class="cx"> @smola
</span><span class="cx"> @domenic
</span><span class="cx"> @Sebmaster
</span><ins>+@annevk
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlaelementexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -13,6 +13,7 @@
</span><span class="cx"> PASS Parsing: &lt; foo.com  &gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;a:         foo.com&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://f:21/ b ? d # e &gt; against &lt;http://example.org/foo/bar&gt; 
</span><ins>+PASS Parsing: &lt;lolscheme:x x#x x&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://f:/c&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://f:0/c&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://f:00000000000000/c&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="lines">@@ -267,6 +268,7 @@
</span><span class="cx"> PASS Parsing: &lt;http://%ef%b7%90zyx.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;https://�&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;https://%EF%BF%BD&gt; against &lt;about:blank&gt; 
</span><ins>+PASS Parsing: &lt;https://x/�?�#�&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://Go.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%41.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%ef%bc%85%ef%bc%94%ef%bc%91.com&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -273,6 +275,8 @@
</span><span class="cx"> PASS Parsing: &lt;http://%00.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%ef%bc%85%ef%bc%90%ef%bc%90.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://你好你好&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;https://faß.ExAmPlE/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://faß.ExAmPlE/&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://%zz%66%a.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%25&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://hello%00&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -281,6 +285,7 @@
</span><span class="cx"> PASS Parsing: &lt;http://192.168.0.257&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%3g%78%63%30%2e%30%32%35%30%2E.01&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://192.168.0.1 hello&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;https://x x:12&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://0Xc0.0250.01&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://[www.google.com]/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://[google.com]&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -344,6 +349,8 @@
</span><span class="cx"> PASS Parsing: &lt;x&gt; against &lt;sc://ñ&gt; 
</span><span class="cx"> PASS Parsing: &lt;sc:\../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;sc::a@example.net&gt; against &lt;about:blank&gt; 
</span><ins>+PASS Parsing: &lt;wow:%NBD&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;wow:%1G&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;ftp://example.com%80/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;ftp://example.com%A0/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;https://example.com%80/&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -380,6 +387,7 @@
</span><span class="cx"> PASS Parsing: &lt;http://0xffffffff1&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://256.256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;https://0x.0x.0&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;file:///C%3A/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;file:///C%7C/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;pix/submit.gif&gt; against &lt;file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html&gt; 
</span><span class="lines">@@ -390,10 +398,24 @@
</span><span class="cx"> PASS Parsing: &lt;//d:/..&gt; against &lt;file:///C:/a/b&gt; 
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///ab:/&gt; 
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///1:/&gt; 
</span><ins>+PASS Parsing: &lt;&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;file:&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;?x&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;file:?x&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;#x&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;file:#x&gt; against &lt;file:///test?test#test&gt; 
</ins><span class="cx"> PASS Parsing: &lt;file:&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;file:?q=v&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;file:#frag&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://[1:0::]&gt; against &lt;http://example.net/&gt; 
</span><ins>+PASS Parsing: &lt;http://[0:1:2:3:4:5:6:7:8]&gt; against &lt;http://example.net/&gt; 
+PASS Parsing: &lt;https://[0::0::0]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:.0]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:0:]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:1:2:3:4:5:6:7.0.0.0.1]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:1.00.0.0.0]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:1.290.0.0.0]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:1.23.23]&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://?&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://#&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;sc://ñ&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -424,4 +446,6 @@
</span><span class="cx"> PASS Parsing: &lt;non-special://[1:2:0:0:0:0:0:3]/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;non-special://[1:2::3]:80/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;non-special://[:80/&gt; against &lt;about:blank&gt; 
</span><ins>+PASS Parsing: &lt;blob:https://example.com:443/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;blob:d3958f5c-0777-0845-9dcf-2cb28783acaf&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlaelementoriginexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -206,8 +206,10 @@
</span><span class="cx"> PASS Parsing origin: &lt;http://ExAmPlE.CoM&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://GOO​⁠goo.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://www.foo。bar.com&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing origin: &lt;https://x/�?�#�&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing origin: &lt;http://Go.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> FAIL Parsing origin: &lt;http://你好你好&gt; against &lt;http://other.com/&gt; assert_equals: origin expected &quot;http://你好你好&quot; but got &quot;http://xn--6qqa088eba&quot;
</span><ins>+FAIL Parsing origin: &lt;https://faß.ExAmPlE/&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;https://faß.example&quot; but got &quot;https://xn--fa-hia.example&quot;
</ins><span class="cx"> PASS Parsing origin: &lt;http://%30%78%63%30%2e%30%32%35%30.01&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://%30%78%63%30%2e%30%32%35%30.01%2e&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://0Xc0.0250.01&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -249,6 +251,8 @@
</span><span class="cx"> FAIL Parsing origin: &lt;x&gt; against &lt;sc://ñ&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
</span><span class="cx"> FAIL Parsing origin: &lt;sc:\../&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://&quot;
</span><span class="cx"> FAIL Parsing origin: &lt;sc::a@example.net&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://&quot;
</span><ins>+FAIL Parsing origin: &lt;wow:%NBD&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;wow://&quot;
+FAIL Parsing origin: &lt;wow:%1G&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;wow://&quot;
</ins><span class="cx"> FAIL Parsing origin: &lt;ftp://%e2%98%83&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;ftp://☃&quot; but got &quot;ftp://xn--n3h&quot;
</span><span class="cx"> FAIL Parsing origin: &lt;https://%e2%98%83&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;https://☃&quot; but got &quot;https://xn--n3h&quot;
</span><span class="cx"> PASS Parsing origin: &lt;http://127.0.0.1:10100/relative_import.html&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -276,6 +280,7 @@
</span><span class="cx"> PASS Parsing origin: &lt;http://4294967295&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://0xffffffff&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://256.256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing origin: &lt;https://0x.0x.0&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing origin: &lt;http://[1:0::]&gt; against &lt;http://example.net/&gt; 
</span><span class="cx"> FAIL Parsing origin: &lt;sc://ñ&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
</span><span class="cx"> FAIL Parsing origin: &lt;sc://ñ?x&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlaelementoriginxhtmlexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -206,8 +206,10 @@
</span><span class="cx"> PASS Parsing origin: &lt;http://ExAmPlE.CoM&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://GOO​⁠goo.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://www.foo。bar.com&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing origin: &lt;https://x/�?�#�&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing origin: &lt;http://Go.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> FAIL Parsing origin: &lt;http://你好你好&gt; against &lt;http://other.com/&gt; assert_equals: origin expected &quot;http://你好你好&quot; but got &quot;http://xn--6qqa088eba&quot;
</span><ins>+FAIL Parsing origin: &lt;https://faß.ExAmPlE/&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;https://faß.example&quot; but got &quot;https://xn--fa-hia.example&quot;
</ins><span class="cx"> PASS Parsing origin: &lt;http://%30%78%63%30%2e%30%32%35%30.01&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://%30%78%63%30%2e%30%32%35%30.01%2e&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://0Xc0.0250.01&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -249,6 +251,8 @@
</span><span class="cx"> FAIL Parsing origin: &lt;x&gt; against &lt;sc://ñ&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
</span><span class="cx"> FAIL Parsing origin: &lt;sc:\../&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://&quot;
</span><span class="cx"> FAIL Parsing origin: &lt;sc::a@example.net&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://&quot;
</span><ins>+FAIL Parsing origin: &lt;wow:%NBD&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;wow://&quot;
+FAIL Parsing origin: &lt;wow:%1G&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;wow://&quot;
</ins><span class="cx"> FAIL Parsing origin: &lt;ftp://%e2%98%83&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;ftp://☃&quot; but got &quot;ftp://xn--n3h&quot;
</span><span class="cx"> FAIL Parsing origin: &lt;https://%e2%98%83&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;https://☃&quot; but got &quot;https://xn--n3h&quot;
</span><span class="cx"> PASS Parsing origin: &lt;http://127.0.0.1:10100/relative_import.html&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -276,6 +280,7 @@
</span><span class="cx"> PASS Parsing origin: &lt;http://4294967295&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://0xffffffff&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing origin: &lt;http://256.256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing origin: &lt;https://0x.0x.0&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing origin: &lt;http://[1:0::]&gt; against &lt;http://example.net/&gt; 
</span><span class="cx"> FAIL Parsing origin: &lt;sc://ñ&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
</span><span class="cx"> FAIL Parsing origin: &lt;sc://ñ?x&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlaelementxhtmlexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -13,6 +13,7 @@
</span><span class="cx"> PASS Parsing: &lt; foo.com  &gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;a:         foo.com&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://f:21/ b ? d # e &gt; against &lt;http://example.org/foo/bar&gt; 
</span><ins>+PASS Parsing: &lt;lolscheme:x x#x x&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://f:/c&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://f:0/c&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://f:00000000000000/c&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="lines">@@ -267,6 +268,7 @@
</span><span class="cx"> PASS Parsing: &lt;http://%ef%b7%90zyx.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;https://�&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;https://%EF%BF%BD&gt; against &lt;about:blank&gt; 
</span><ins>+PASS Parsing: &lt;https://x/�?�#�&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://Go.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%41.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%ef%bc%85%ef%bc%94%ef%bc%91.com&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -273,6 +275,8 @@
</span><span class="cx"> PASS Parsing: &lt;http://%00.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%ef%bc%85%ef%bc%90%ef%bc%90.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://你好你好&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;https://faß.ExAmPlE/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://faß.ExAmPlE/&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://%zz%66%a.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%25&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://hello%00&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -281,6 +285,7 @@
</span><span class="cx"> PASS Parsing: &lt;http://192.168.0.257&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%3g%78%63%30%2e%30%32%35%30%2E.01&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://192.168.0.1 hello&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;https://x x:12&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://0Xc0.0250.01&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://[www.google.com]/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://[google.com]&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -344,6 +349,8 @@
</span><span class="cx"> PASS Parsing: &lt;x&gt; against &lt;sc://ñ&gt; 
</span><span class="cx"> PASS Parsing: &lt;sc:\../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;sc::a@example.net&gt; against &lt;about:blank&gt; 
</span><ins>+PASS Parsing: &lt;wow:%NBD&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;wow:%1G&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;ftp://example.com%80/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;ftp://example.com%A0/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;https://example.com%80/&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -380,6 +387,7 @@
</span><span class="cx"> PASS Parsing: &lt;http://0xffffffff1&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://256.256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;https://0x.0x.0&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;file:///C%3A/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;file:///C%7C/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;pix/submit.gif&gt; against &lt;file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html&gt; 
</span><span class="lines">@@ -390,10 +398,24 @@
</span><span class="cx"> PASS Parsing: &lt;//d:/..&gt; against &lt;file:///C:/a/b&gt; 
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///ab:/&gt; 
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///1:/&gt; 
</span><ins>+PASS Parsing: &lt;&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;file:&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;?x&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;file:?x&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;#x&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;file:#x&gt; against &lt;file:///test?test#test&gt; 
</ins><span class="cx"> PASS Parsing: &lt;file:&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;file:?q=v&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;file:#frag&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://[1:0::]&gt; against &lt;http://example.net/&gt; 
</span><ins>+PASS Parsing: &lt;http://[0:1:2:3:4:5:6:7:8]&gt; against &lt;http://example.net/&gt; 
+PASS Parsing: &lt;https://[0::0::0]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:.0]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:0:]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:1:2:3:4:5:6:7.0.0.0.1]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:1.00.0.0.0]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:1.290.0.0.0]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:1.23.23]&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://?&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://#&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;sc://ñ&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -424,4 +446,6 @@
</span><span class="cx"> PASS Parsing: &lt;non-special://[1:2:0:0:0:0:0:3]/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;non-special://[1:2::3]:80/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;non-special://[:80/&gt; against &lt;about:blank&gt; 
</span><ins>+PASS Parsing: &lt;blob:https://example.com:443/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;blob:d3958f5c-0777-0845-9dcf-2cb28783acaf&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlfailureexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/url/failure-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/failure-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/failure-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,187 @@
</span><ins>+
+PASS Loading data… 
+FAIL URL's href: file://example:1/ should throw assert_throws: function &quot;() =&gt; url.href = test.input&quot; did not throw
+FAIL XHR: file://example:1/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): file://example:1/ should throw 
+FAIL Location's href: file://example:1/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: file://example:test/ should throw 
+FAIL XHR: file://example:test/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): file://example:test/ should throw 
+FAIL Location's href: file://example:test/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: file://example%/ should throw 
+FAIL XHR: file://example%/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): file://example%/ should throw 
+FAIL Location's href: file://example%/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: file://[example]/ should throw 
+FAIL XHR: file://[example]/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): file://[example]/ should throw 
+FAIL Location's href: file://[example]/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http://user:pass@/ should throw 
+FAIL XHR: http://user:pass@/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http://user:pass@/ should throw 
+FAIL Location's href: http://user:pass@/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http://foo:-80/ should throw 
+FAIL XHR: http://foo:-80/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http://foo:-80/ should throw 
+FAIL Location's href: http://foo:-80/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http:/:@/www.example.com should throw 
+FAIL XHR: http:/:@/www.example.com should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http:/:@/www.example.com should throw 
+FAIL Location's href: http:/:@/www.example.com should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http://user@/www.example.com should throw 
+FAIL XHR: http://user@/www.example.com should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http://user@/www.example.com should throw 
+FAIL Location's href: http://user@/www.example.com should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http:@/www.example.com should throw 
+FAIL XHR: http:@/www.example.com should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http:@/www.example.com should throw 
+FAIL Location's href: http:@/www.example.com should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http:/@/www.example.com should throw 
+FAIL XHR: http:/@/www.example.com should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http:/@/www.example.com should throw 
+FAIL Location's href: http:/@/www.example.com should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http://@/www.example.com should throw 
+FAIL XHR: http://@/www.example.com should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http://@/www.example.com should throw 
+FAIL Location's href: http://@/www.example.com should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: https:@/www.example.com should throw 
+FAIL XHR: https:@/www.example.com should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): https:@/www.example.com should throw 
+FAIL Location's href: https:@/www.example.com should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http:a:b@/www.example.com should throw 
+FAIL XHR: http:a:b@/www.example.com should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http:a:b@/www.example.com should throw 
+FAIL Location's href: http:a:b@/www.example.com should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http:/a:b@/www.example.com should throw 
+FAIL XHR: http:/a:b@/www.example.com should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http:/a:b@/www.example.com should throw 
+FAIL Location's href: http:/a:b@/www.example.com should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http://a:b@/www.example.com should throw 
+FAIL XHR: http://a:b@/www.example.com should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http://a:b@/www.example.com should throw 
+FAIL Location's href: http://a:b@/www.example.com should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http::@/www.example.com should throw 
+FAIL XHR: http::@/www.example.com should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http::@/www.example.com should throw 
+FAIL Location's href: http::@/www.example.com should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http:@:www.example.com should throw 
+FAIL XHR: http:@:www.example.com should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http:@:www.example.com should throw 
+FAIL Location's href: http:@:www.example.com should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http:/@:www.example.com should throw 
+FAIL XHR: http:/@:www.example.com should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http:/@:www.example.com should throw 
+FAIL Location's href: http:/@:www.example.com should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http://@:www.example.com should throw 
+FAIL XHR: http://@:www.example.com should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http://@:www.example.com should throw 
+FAIL Location's href: http://@:www.example.com should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: https://� should throw 
+FAIL XHR: https://� should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): https://� should throw 
+FAIL Location's href: https://� should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: https://%EF%BF%BD should throw 
+FAIL XHR: https://%EF%BF%BD should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): https://%EF%BF%BD should throw 
+FAIL Location's href: https://%EF%BF%BD should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: https://x x:12 should throw 
+FAIL XHR: https://x x:12 should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): https://x x:12 should throw 
+FAIL Location's href: https://x x:12 should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http://[www.google.com]/ should throw 
+FAIL XHR: http://[www.google.com]/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http://[www.google.com]/ should throw 
+FAIL Location's href: http://[www.google.com]/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: sc://\0/ should throw 
+FAIL XHR: sc://\0/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): sc://\0/ should throw 
+FAIL Location's href: sc://\0/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: sc:// / should throw 
+FAIL XHR: sc:// / should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): sc:// / should throw 
+FAIL Location's href: sc:// / should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: sc://@/ should throw 
+FAIL XHR: sc://@/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): sc://@/ should throw 
+FAIL Location's href: sc://@/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: sc://te@s:t@/ should throw 
+FAIL XHR: sc://te@s:t@/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): sc://te@s:t@/ should throw 
+FAIL Location's href: sc://te@s:t@/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: sc://:/ should throw 
+FAIL XHR: sc://:/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): sc://:/ should throw 
+FAIL Location's href: sc://:/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: sc://:12/ should throw 
+FAIL XHR: sc://:12/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): sc://:12/ should throw 
+FAIL Location's href: sc://:12/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: sc://[/ should throw 
+FAIL XHR: sc://[/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): sc://[/ should throw 
+FAIL Location's href: sc://[/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: sc://\/ should throw 
+FAIL XHR: sc://\/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): sc://\/ should throw 
+FAIL Location's href: sc://\/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: sc://]/ should throw 
+FAIL XHR: sc://]/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): sc://]/ should throw 
+FAIL Location's href: sc://]/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: ftp://example.com%80/ should throw 
+FAIL XHR: ftp://example.com%80/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): ftp://example.com%80/ should throw 
+FAIL Location's href: ftp://example.com%80/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: ftp://example.com%A0/ should throw 
+FAIL XHR: ftp://example.com%A0/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): ftp://example.com%A0/ should throw 
+FAIL Location's href: ftp://example.com%A0/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: https://example.com%80/ should throw 
+FAIL XHR: https://example.com%80/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): https://example.com%80/ should throw 
+FAIL Location's href: https://example.com%80/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: https://example.com%A0/ should throw 
+FAIL XHR: https://example.com%A0/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): https://example.com%A0/ should throw 
+FAIL Location's href: https://example.com%A0/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: https://[0::0::0] should throw 
+FAIL XHR: https://[0::0::0] should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): https://[0::0::0] should throw 
+FAIL Location's href: https://[0::0::0] should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: https://[0:.0] should throw 
+FAIL XHR: https://[0:.0] should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): https://[0:.0] should throw 
+FAIL Location's href: https://[0:.0] should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: https://[0:0:] should throw 
+FAIL XHR: https://[0:0:] should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): https://[0:0:] should throw 
+FAIL Location's href: https://[0:0:] should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw 
+FAIL XHR: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw 
+FAIL Location's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: https://[0:1.00.0.0.0] should throw 
+FAIL XHR: https://[0:1.00.0.0.0] should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): https://[0:1.00.0.0.0] should throw 
+FAIL Location's href: https://[0:1.00.0.0.0] should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: https://[0:1.290.0.0.0] should throw 
+FAIL XHR: https://[0:1.290.0.0.0] should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): https://[0:1.290.0.0.0] should throw 
+FAIL Location's href: https://[0:1.290.0.0.0] should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: https://[0:1.23.23] should throw 
+FAIL XHR: https://[0:1.23.23] should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): https://[0:1.23.23] should throw 
+FAIL Location's href: https://[0:1.23.23] should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http://? should throw 
+FAIL XHR: http://? should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http://? should throw 
+FAIL Location's href: http://? should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: http://# should throw 
+FAIL XHR: http://# should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): http://# should throw 
+FAIL Location's href: http://# should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+PASS URL's href: non-special://[:80/ should throw 
+FAIL XHR: non-special://[:80/ should throw assert_throws: function &quot;() =&gt; client.open(&quot;GET&quot;, test.input)&quot; did not throw
+PASS sendBeacon(): non-special://[:80/ should throw 
+FAIL Location's href: non-special://[:80/ should throw assert_throws: function &quot;() =&gt; self[0].location = test.input&quot; did not throw
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlfailurehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/url/failure.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/failure.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/failure.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,38 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;Test URL parser failure consistency&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;iframe&gt;&lt;/iframe&gt;
+&lt;script&gt;
+promise_test(() =&gt; fetch(&quot;urltestdata.json&quot;).then(res =&gt; res.json()).then(runTests), &quot;Loading data…&quot;)
+
+function runTests(testData) {
+  for(const test of testData) {
+    if (typeof test === &quot;string&quot; || !test.failure || test.base !== &quot;about:blank&quot;) {
+      continue
+    }
+
+    const name = test.input + &quot; should throw&quot;
+
+    self.test(() =&gt; { // new URL itself is already tested by url-constructor.html
+      const url = new URL(&quot;about:blank&quot;)
+      assert_throws(new TypeError, () =&gt; url.href = test.input)
+    }, &quot;URL's href: &quot; + name)
+
+    self.test(() =&gt; {
+      const client = new XMLHttpRequest()
+      assert_throws(&quot;SyntaxError&quot;, () =&gt; client.open(&quot;GET&quot;, test.input))
+    }, &quot;XHR: &quot; + name)
+
+    self.test(() =&gt; {
+      assert_throws(new TypeError, () =&gt; self.navigator.sendBeacon(test.input))
+    }, &quot;sendBeacon(): &quot; + name)
+
+    self.test(() =&gt; {
+      assert_throws(new TypeError, () =&gt; self[0].location = test.input)
+    }, &quot;Location's href: &quot; + name)
+  }
+}
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlsetters_testsjson"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/setters_tests.json (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/setters_tests.json        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/setters_tests.json        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -40,6 +40,14 @@
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="cx">         {
</span><ins>+            &quot;href&quot;: &quot;javascript:alert(1)&quot;,
+            &quot;new_value&quot;: &quot;defuse&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;defuse:alert(1)&quot;,
+                &quot;protocol&quot;: &quot;defuse:&quot;
+            }
+        },
+        {
</ins><span class="cx">             &quot;comment&quot;: &quot;Upper-case ASCII is lower-cased&quot;,
</span><span class="cx">             &quot;href&quot;: &quot;a://example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;B&quot;,
</span><span class="lines">@@ -216,6 +224,14 @@
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="cx">         {
</span><ins>+            &quot;href&quot;: &quot;javascript:alert(1)&quot;,
+            &quot;new_value&quot;: &quot;wario&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;javascript:alert(1)&quot;,
+                &quot;username&quot;: &quot;&quot;
+            }
+        },
+        {
</ins><span class="cx">             &quot;href&quot;: &quot;http://example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;me&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><span class="lines">@@ -274,6 +290,14 @@
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="cx">         {
</span><ins>+            &quot;href&quot;: &quot;javascript://x/&quot;,
+            &quot;new_value&quot;: &quot;wario&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;javascript://wario@x/&quot;,
+                &quot;username&quot;: &quot;wario&quot;
+            }
+        },
+        {
</ins><span class="cx">             &quot;href&quot;: &quot;file://test/&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;test&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><span class="lines">@@ -369,6 +393,14 @@
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="cx">         {
</span><ins>+            &quot;href&quot;: &quot;javascript://x/&quot;,
+            &quot;new_value&quot;: &quot;bowser&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;javascript://:bowser@x/&quot;,
+                &quot;password&quot;: &quot;bowser&quot;
+            }
+        },
+        {
</ins><span class="cx">             &quot;href&quot;: &quot;file://test/&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;test&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><span class="lines">@@ -461,6 +493,25 @@
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="cx">         {
</span><ins>+            &quot;href&quot;: &quot;sc://x/&quot;,
+            &quot;new_value&quot;: &quot;ß&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;sc://%C3%9F/&quot;,
+                &quot;host&quot;: &quot;%C3%9F&quot;,
+                &quot;hostname&quot;: &quot;%C3%9F&quot;
+            }
+        },
+        {
+            &quot;comment&quot;: &quot;IDNA Nontransitional_Processing&quot;,
+            &quot;href&quot;: &quot;https://x/&quot;,
+            &quot;new_value&quot;: &quot;ß&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;https://xn--zca/&quot;,
+                &quot;host&quot;: &quot;xn--zca&quot;,
+                &quot;hostname&quot;: &quot;xn--zca&quot;
+            }
+        },
+        {
</ins><span class="cx">             &quot;comment&quot;: &quot;Cannot-be-a-base means no host&quot;,
</span><span class="cx">             &quot;href&quot;: &quot;mailto:me@example.net&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;example.com&quot;,
</span><span class="lines">@@ -813,6 +864,16 @@
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="cx">         {
</span><ins>+            &quot;href&quot;: &quot;file://hi/x&quot;,
+            &quot;new_value&quot;: &quot;&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;file:///x&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;,
+                &quot;port&quot;: &quot;&quot;
+            }
+        },
+        {
</ins><span class="cx">             &quot;href&quot;: &quot;sc://test@test/&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><span class="lines">@@ -1137,6 +1198,16 @@
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="cx">         {
</span><ins>+            &quot;href&quot;: &quot;file://hi/x&quot;,
+            &quot;new_value&quot;: &quot;&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;file:///x&quot;,
+                &quot;host&quot;: &quot;&quot;,
+                &quot;hostname&quot;: &quot;&quot;,
+                &quot;port&quot;: &quot;&quot;
+            }
+        },
+        {
</ins><span class="cx">             &quot;href&quot;: &quot;sc://test@test/&quot;,
</span><span class="cx">             &quot;new_value&quot;: &quot;&quot;,
</span><span class="cx">             &quot;expected&quot;: {
</span><span class="lines">@@ -1350,6 +1421,14 @@
</span><span class="cx">                 &quot;href&quot;: &quot;sc://x:12/&quot;,
</span><span class="cx">                 &quot;port&quot;: &quot;12&quot;
</span><span class="cx">             }
</span><ins>+        },
+        {
+            &quot;href&quot;: &quot;javascript://x/&quot;,
+            &quot;new_value&quot;: &quot;12&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;javascript://x:12/&quot;,
+                &quot;port&quot;: &quot;12&quot;
+            }
</ins><span class="cx">         }
</span><span class="cx">     ],
</span><span class="cx">     &quot;pathname&quot;: [
</span><span class="lines">@@ -1609,6 +1688,14 @@
</span><span class="cx">                 &quot;href&quot;: &quot;http://example.net/#%c3%89t%C3%A9&quot;,
</span><span class="cx">                 &quot;hash&quot;: &quot;#%c3%89t%C3%A9&quot;
</span><span class="cx">             }
</span><ins>+        },
+        {
+            &quot;href&quot;: &quot;javascript:alert(1)&quot;,
+            &quot;new_value&quot;: &quot;castle&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;javascript:alert(1)#castle&quot;,
+                &quot;hash&quot;: &quot;#castle&quot;
+            }
</ins><span class="cx">         }
</span><span class="cx">     ]
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurlconstructorexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -17,6 +17,7 @@
</span><span class="cx"> PASS Parsing: &lt; foo.com  &gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;a:         foo.com&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://f:21/ b ? d # e &gt; against &lt;http://example.org/foo/bar&gt; 
</span><ins>+PASS Parsing: &lt;lolscheme:x x#x x&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://f:/c&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://f:0/c&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://f:00000000000000/c&gt; against &lt;http://example.org/foo/bar&gt; 
</span><span class="lines">@@ -273,6 +274,7 @@
</span><span class="cx"> PASS Parsing: &lt;http://%ef%b7%90zyx.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;https://�&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;https://%EF%BF%BD&gt; against &lt;about:blank&gt; 
</span><ins>+PASS Parsing: &lt;https://x/�?�#�&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://Go.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%41.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%ef%bc%85%ef%bc%94%ef%bc%91.com&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -279,6 +281,8 @@
</span><span class="cx"> PASS Parsing: &lt;http://%00.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%ef%bc%85%ef%bc%90%ef%bc%90.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://你好你好&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;https://faß.ExAmPlE/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;sc://faß.ExAmPlE/&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://%zz%66%a.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%25&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://hello%00&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -287,6 +291,7 @@
</span><span class="cx"> PASS Parsing: &lt;http://192.168.0.257&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://%3g%78%63%30%2e%30%32%35%30%2E.01&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://192.168.0.1 hello&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;https://x x:12&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://0Xc0.0250.01&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://[www.google.com]/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://[google.com]&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -350,6 +355,8 @@
</span><span class="cx"> PASS Parsing: &lt;x&gt; against &lt;sc://ñ&gt; 
</span><span class="cx"> PASS Parsing: &lt;sc:\../&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;sc::a@example.net&gt; against &lt;about:blank&gt; 
</span><ins>+PASS Parsing: &lt;wow:%NBD&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;wow:%1G&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;ftp://example.com%80/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;ftp://example.com%A0/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;https://example.com%80/&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -388,6 +395,7 @@
</span><span class="cx"> PASS Parsing: &lt;http://0xffffffff1&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://256.256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Parsing: &lt;https://0x.0x.0&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;file:///C%3A/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;file:///C%7C/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;pix/submit.gif&gt; against &lt;file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html&gt; 
</span><span class="lines">@@ -398,10 +406,24 @@
</span><span class="cx"> PASS Parsing: &lt;//d:/..&gt; against &lt;file:///C:/a/b&gt; 
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///ab:/&gt; 
</span><span class="cx"> PASS Parsing: &lt;..&gt; against &lt;file:///1:/&gt; 
</span><ins>+PASS Parsing: &lt;&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;file:&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;?x&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;file:?x&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;#x&gt; against &lt;file:///test?test#test&gt; 
+PASS Parsing: &lt;file:#x&gt; against &lt;file:///test?test#test&gt; 
</ins><span class="cx"> PASS Parsing: &lt;file:&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;file:?q=v&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;file:#frag&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://[1:0::]&gt; against &lt;http://example.net/&gt; 
</span><ins>+PASS Parsing: &lt;http://[0:1:2:3:4:5:6:7:8]&gt; against &lt;http://example.net/&gt; 
+PASS Parsing: &lt;https://[0::0::0]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:.0]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:0:]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:1:2:3:4:5:6:7.0.0.0.1]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:1.00.0.0.0]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:1.290.0.0.0]&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;https://[0:1.23.23]&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Parsing: &lt;http://?&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;http://#&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;sc://ñ&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -432,4 +454,6 @@
</span><span class="cx"> PASS Parsing: &lt;non-special://[1:2:0:0:0:0:0:3]/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;non-special://[1:2::3]:80/&gt; against &lt;about:blank&gt; 
</span><span class="cx"> PASS Parsing: &lt;non-special://[:80/&gt; against &lt;about:blank&gt; 
</span><ins>+PASS Parsing: &lt;blob:https://example.com:443/&gt; against &lt;about:blank&gt; 
+PASS Parsing: &lt;blob:d3958f5c-0777-0845-9dcf-2cb28783acaf&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurloriginexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-origin-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-origin-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-origin-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -206,8 +206,10 @@
</span><span class="cx"> PASS Origin parsing: &lt;http://ExAmPlE.CoM&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Origin parsing: &lt;http://GOO​⁠goo.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Origin parsing: &lt;http://www.foo。bar.com&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Origin parsing: &lt;https://x/�?�#�&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Origin parsing: &lt;http://Go.com&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> FAIL Origin parsing: &lt;http://你好你好&gt; against &lt;http://other.com/&gt; assert_equals: origin expected &quot;http://你好你好&quot; but got &quot;http://xn--6qqa088eba&quot;
</span><ins>+FAIL Origin parsing: &lt;https://faß.ExAmPlE/&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;https://faß.example&quot; but got &quot;https://xn--fa-hia.example&quot;
</ins><span class="cx"> PASS Origin parsing: &lt;http://%30%78%63%30%2e%30%32%35%30.01&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Origin parsing: &lt;http://%30%78%63%30%2e%30%32%35%30.01%2e&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Origin parsing: &lt;http://0Xc0.0250.01&gt; against &lt;http://other.com/&gt; 
</span><span class="lines">@@ -249,6 +251,8 @@
</span><span class="cx"> FAIL Origin parsing: &lt;x&gt; against &lt;sc://ñ&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
</span><span class="cx"> FAIL Origin parsing: &lt;sc:\../&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://&quot;
</span><span class="cx"> FAIL Origin parsing: &lt;sc::a@example.net&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://&quot;
</span><ins>+FAIL Origin parsing: &lt;wow:%NBD&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;wow://&quot;
+FAIL Origin parsing: &lt;wow:%1G&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;wow://&quot;
</ins><span class="cx"> FAIL Origin parsing: &lt;ftp://%e2%98%83&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;ftp://☃&quot; but got &quot;ftp://xn--n3h&quot;
</span><span class="cx"> FAIL Origin parsing: &lt;https://%e2%98%83&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;https://☃&quot; but got &quot;https://xn--n3h&quot;
</span><span class="cx"> PASS Origin parsing: &lt;http://127.0.0.1:10100/relative_import.html&gt; against &lt;about:blank&gt; 
</span><span class="lines">@@ -276,6 +280,7 @@
</span><span class="cx"> PASS Origin parsing: &lt;http://4294967295&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Origin parsing: &lt;http://0xffffffff&gt; against &lt;http://other.com/&gt; 
</span><span class="cx"> PASS Origin parsing: &lt;http://256.256.256.256.256&gt; against &lt;http://other.com/&gt; 
</span><ins>+PASS Origin parsing: &lt;https://0x.0x.0&gt; against &lt;about:blank&gt; 
</ins><span class="cx"> PASS Origin parsing: &lt;http://[1:0::]&gt; against &lt;http://example.net/&gt; 
</span><span class="cx"> FAIL Origin parsing: &lt;sc://ñ&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
</span><span class="cx"> FAIL Origin parsing: &lt;sc://ñ?x&gt; against &lt;about:blank&gt; assert_equals: origin expected &quot;null&quot; but got &quot;sc://%c3%b1&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurlsettersexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -6,6 +6,9 @@
</span><span class="cx"> PASS URL: Setting &lt;a://example.net&gt;.protocol = 'b' 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'b' 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'b' 
</span><ins>+PASS URL: Setting &lt;javascript:alert(1)&gt;.protocol = 'defuse' 
+PASS &lt;a&gt;: Setting &lt;javascript:alert(1)&gt;.protocol = 'defuse' 
+PASS &lt;area&gt;: Setting &lt;javascript:alert(1)&gt;.protocol = 'defuse' 
</ins><span class="cx"> PASS URL: Setting &lt;a://example.net&gt;.protocol = 'B' Upper-case ASCII is lower-cased 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'B' Upper-case ASCII is lower-cased 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'B' Upper-case ASCII is lower-cased 
</span><span class="lines">@@ -66,6 +69,9 @@
</span><span class="cx"> PASS URL: Setting &lt;mailto:you@example.net&gt;.username = 'me' Cannot-be-a-base means no username 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;mailto:you@example.net&gt;.username = 'me' Cannot-be-a-base means no username 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;mailto:you@example.net&gt;.username = 'me' Cannot-be-a-base means no username 
</span><ins>+PASS URL: Setting &lt;javascript:alert(1)&gt;.username = 'wario' 
+PASS &lt;a&gt;: Setting &lt;javascript:alert(1)&gt;.username = 'wario' 
+PASS &lt;area&gt;: Setting &lt;javascript:alert(1)&gt;.username = 'wario' 
</ins><span class="cx"> PASS URL: Setting &lt;http://example.net&gt;.username = 'me' 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;http://example.net&gt;.username = 'me' 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;http://example.net&gt;.username = 'me' 
</span><span class="lines">@@ -90,6 +96,9 @@
</span><span class="cx"> PASS URL: Setting &lt;sc:///&gt;.username = 'x' 
</span><span class="cx"> FAIL &lt;a&gt;: Setting &lt;sc:///&gt;.username = 'x' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://x@/&quot;
</span><span class="cx"> FAIL &lt;area&gt;: Setting &lt;sc:///&gt;.username = 'x' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://x@/&quot;
</span><ins>+PASS URL: Setting &lt;javascript://x/&gt;.username = 'wario' 
+PASS &lt;a&gt;: Setting &lt;javascript://x/&gt;.username = 'wario' 
+PASS &lt;area&gt;: Setting &lt;javascript://x/&gt;.username = 'wario' 
</ins><span class="cx"> PASS URL: Setting &lt;file://test/&gt;.username = 'test' 
</span><span class="cx"> FAIL &lt;a&gt;: Setting &lt;file://test/&gt;.username = 'test' assert_equals: expected &quot;file://test/&quot; but got &quot;file://test@test/&quot;
</span><span class="cx"> FAIL &lt;area&gt;: Setting &lt;file://test/&gt;.username = 'test' assert_equals: expected &quot;file://test/&quot; but got &quot;file://test@test/&quot;
</span><span class="lines">@@ -126,6 +135,9 @@
</span><span class="cx"> PASS URL: Setting &lt;sc:///&gt;.password = 'x' 
</span><span class="cx"> FAIL &lt;a&gt;: Setting &lt;sc:///&gt;.password = 'x' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://:x@/&quot;
</span><span class="cx"> FAIL &lt;area&gt;: Setting &lt;sc:///&gt;.password = 'x' assert_equals: expected &quot;sc:///&quot; but got &quot;sc://:x@/&quot;
</span><ins>+PASS URL: Setting &lt;javascript://x/&gt;.password = 'bowser' 
+PASS &lt;a&gt;: Setting &lt;javascript://x/&gt;.password = 'bowser' 
+PASS &lt;area&gt;: Setting &lt;javascript://x/&gt;.password = 'bowser' 
</ins><span class="cx"> PASS URL: Setting &lt;file://test/&gt;.password = 'test' 
</span><span class="cx"> FAIL &lt;a&gt;: Setting &lt;file://test/&gt;.password = 'test' assert_equals: expected &quot;file://test/&quot; but got &quot;file://:test@test/&quot;
</span><span class="cx"> FAIL &lt;area&gt;: Setting &lt;file://test/&gt;.password = 'test' assert_equals: expected &quot;file://test/&quot; but got &quot;file://:test@test/&quot;
</span><span class="lines">@@ -159,6 +171,12 @@
</span><span class="cx"> PASS URL: Setting &lt;sc://x/&gt;.host = '@' 
</span><span class="cx"> FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.host = '@' assert_equals: expected &quot;sc://x/&quot; but got &quot;sc://@/&quot;
</span><span class="cx"> FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.host = '@' assert_equals: expected &quot;sc://x/&quot; but got &quot;sc://@/&quot;
</span><ins>+FAIL URL: Setting &lt;sc://x/&gt;.host = 'ß' assert_equals: expected &quot;sc://%C3%9F/&quot; but got &quot;sc://ss/&quot;
+FAIL &lt;a&gt;: Setting &lt;sc://x/&gt;.host = 'ß' assert_equals: expected &quot;sc://%C3%9F/&quot; but got &quot;sc://ss/&quot;
+FAIL &lt;area&gt;: Setting &lt;sc://x/&gt;.host = 'ß' assert_equals: expected &quot;sc://%C3%9F/&quot; but got &quot;sc://ss/&quot;
+FAIL URL: Setting &lt;https://x/&gt;.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected &quot;https://xn--zca/&quot; but got &quot;https://ss/&quot;
+FAIL &lt;a&gt;: Setting &lt;https://x/&gt;.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected &quot;https://xn--zca/&quot; but got &quot;https://ss/&quot;
+FAIL &lt;area&gt;: Setting &lt;https://x/&gt;.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected &quot;https://xn--zca/&quot; but got &quot;https://ss/&quot;
</ins><span class="cx"> PASS URL: Setting &lt;mailto:me@example.net&gt;.host = 'example.com' Cannot-be-a-base means no host 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;mailto:me@example.net&gt;.host = 'example.com' Cannot-be-a-base means no host 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;mailto:me@example.net&gt;.host = 'example.com' Cannot-be-a-base means no host 
</span><span class="lines">@@ -261,6 +279,9 @@
</span><span class="cx"> PASS URL: Setting &lt;file://y/&gt;.host = 'loc%41lhost' 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;file://y/&gt;.host = 'loc%41lhost' 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;file://y/&gt;.host = 'loc%41lhost' 
</span><ins>+FAIL URL: Setting &lt;file://hi/x&gt;.host = '' assert_equals: expected &quot;file:///x&quot; but got &quot;file://hi/x&quot;
+FAIL &lt;a&gt;: Setting &lt;file://hi/x&gt;.host = '' assert_equals: expected &quot;file:///x&quot; but got &quot;file://hi/x&quot;
+FAIL &lt;area&gt;: Setting &lt;file://hi/x&gt;.host = '' assert_equals: expected &quot;file:///x&quot; but got &quot;file://hi/x&quot;
</ins><span class="cx"> PASS URL: Setting &lt;sc://test@test/&gt;.host = '' 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;sc://test@test/&gt;.host = '' 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;sc://test@test/&gt;.host = '' 
</span><span class="lines">@@ -363,6 +384,9 @@
</span><span class="cx"> PASS URL: Setting &lt;file://y/&gt;.hostname = 'loc%41lhost' 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;file://y/&gt;.hostname = 'loc%41lhost' 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;file://y/&gt;.hostname = 'loc%41lhost' 
</span><ins>+FAIL URL: Setting &lt;file://hi/x&gt;.hostname = '' assert_equals: expected &quot;file:///x&quot; but got &quot;file://hi/x&quot;
+FAIL &lt;a&gt;: Setting &lt;file://hi/x&gt;.hostname = '' assert_equals: expected &quot;file:///x&quot; but got &quot;file://hi/x&quot;
+FAIL &lt;area&gt;: Setting &lt;file://hi/x&gt;.hostname = '' assert_equals: expected &quot;file:///x&quot; but got &quot;file://hi/x&quot;
</ins><span class="cx"> PASS URL: Setting &lt;sc://test@test/&gt;.hostname = '' 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;sc://test@test/&gt;.hostname = '' 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;sc://test@test/&gt;.hostname = '' 
</span><span class="lines">@@ -426,6 +450,9 @@
</span><span class="cx"> PASS URL: Setting &lt;sc://x/&gt;.port = '12' 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;sc://x/&gt;.port = '12' 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;sc://x/&gt;.port = '12' 
</span><ins>+PASS URL: Setting &lt;javascript://x/&gt;.port = '12' 
+PASS &lt;a&gt;: Setting &lt;javascript://x/&gt;.port = '12' 
+PASS &lt;area&gt;: Setting &lt;javascript://x/&gt;.port = '12' 
</ins><span class="cx"> PASS URL: Setting &lt;mailto:me@example.net&gt;.pathname = '/foo' Cannot-be-a-base don’t have a path 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;mailto:me@example.net&gt;.pathname = '/foo' Cannot-be-a-base don’t have a path 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;mailto:me@example.net&gt;.pathname = '/foo' Cannot-be-a-base don’t have a path 
</span><span class="lines">@@ -525,4 +552,7 @@
</span><span class="cx"> PASS URL: Setting &lt;http://example.net&gt;.hash = '%c3%89té' Bytes already percent-encoded are left as-is 
</span><span class="cx"> PASS &lt;a&gt;: Setting &lt;http://example.net&gt;.hash = '%c3%89té' Bytes already percent-encoded are left as-is 
</span><span class="cx"> PASS &lt;area&gt;: Setting &lt;http://example.net&gt;.hash = '%c3%89té' Bytes already percent-encoded are left as-is 
</span><ins>+PASS URL: Setting &lt;javascript:alert(1)&gt;.hash = 'castle' 
+PASS &lt;a&gt;: Setting &lt;javascript:alert(1)&gt;.hash = 'castle' 
+PASS &lt;area&gt;: Setting &lt;javascript:alert(1)&gt;.hash = 'castle' 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurltestdatajson"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/urltestdata.json (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/urltestdata.json        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/urltestdata.json        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -166,6 +166,20 @@
</span><span class="cx">     &quot;hash&quot;: &quot;# e&quot;
</span><span class="cx">   },
</span><span class="cx">   {
</span><ins>+    &quot;input&quot;: &quot;lolscheme:x x#x x&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;lolscheme:x x#x x&quot;,
+    &quot;protocol&quot;: &quot;lolscheme:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;x x&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;#x x&quot;
+  },
+  {
</ins><span class="cx">     &quot;input&quot;: &quot;http://f:/c&quot;,
</span><span class="cx">     &quot;base&quot;: &quot;http://example.org/foo/bar&quot;,
</span><span class="cx">     &quot;href&quot;: &quot;http://f/c&quot;,
</span><span class="lines">@@ -3568,7 +3582,7 @@
</span><span class="cx">     &quot;base&quot;: &quot;http://other.com/&quot;,
</span><span class="cx">     &quot;failure&quot;: true
</span><span class="cx">   },
</span><del>-  &quot;U+FFFD is disallowed&quot;,
</del><ins>+  &quot;U+FFFD&quot;,
</ins><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;https://\ufffd&quot;,
</span><span class="cx">     &quot;base&quot;: &quot;about:blank&quot;,
</span><span class="lines">@@ -3579,6 +3593,21 @@
</span><span class="cx">     &quot;base&quot;: &quot;about:blank&quot;,
</span><span class="cx">     &quot;failure&quot;: true
</span><span class="cx">   },
</span><ins>+  {
+    &quot;input&quot;: &quot;https://x/\ufffd?\ufffd#\ufffd&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD&quot;,
+    &quot;origin&quot;: &quot;https://x&quot;,
+    &quot;protocol&quot;: &quot;https:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;x&quot;,
+    &quot;hostname&quot;: &quot;x&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/%EF%BF%BD&quot;,
+    &quot;search&quot;: &quot;?%EF%BF%BD&quot;,
+    &quot;hash&quot;: &quot;#%EF%BF%BD&quot;
+  },
</ins><span class="cx">   &quot;Test name prepping, fullwidth input should be converted to ASCII and NOT IDN-ized. This is 'Go' in fullwidth UTF-8/UTF-16.&quot;,
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;http://Go.com&quot;,
</span><span class="lines">@@ -3633,6 +3662,35 @@
</span><span class="cx">     &quot;search&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hash&quot;: &quot;&quot;
</span><span class="cx">   },
</span><ins>+  {
+    &quot;input&quot;: &quot;https://faß.ExAmPlE/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;https://xn--fa-hia.example/&quot;,
+    &quot;origin&quot;: &quot;https://faß.example&quot;,
+    &quot;protocol&quot;: &quot;https:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;xn--fa-hia.example&quot;,
+    &quot;hostname&quot;: &quot;xn--fa-hia.example&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;sc://faß.ExAmPlE/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;sc://fa%C3%9F.ExAmPlE/&quot;,
+    &quot;protocol&quot;: &quot;sc:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;fa%C3%9F.ExAmPlE&quot;,
+    &quot;hostname&quot;: &quot;fa%C3%9F.ExAmPlE&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
</ins><span class="cx">   &quot;Invalid escaped characters should fail and the percents should be escaped. https://www.w3.org/Bugs/Public/show_bug.cgi?id=24191&quot;,
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;http://%zz%66%a.com&quot;,
</span><span class="lines">@@ -3686,18 +3744,23 @@
</span><span class="cx">     &quot;base&quot;: &quot;http://other.com/&quot;,
</span><span class="cx">     &quot;failure&quot;: true
</span><span class="cx">   },
</span><del>-  &quot;Invalid escaping should trigger the regular host error handling&quot;,
</del><ins>+  &quot;Invalid escaping in hosts causes failure&quot;,
</ins><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;http://%3g%78%63%30%2e%30%32%35%30%2E.01&quot;,
</span><span class="cx">     &quot;base&quot;: &quot;http://other.com/&quot;,
</span><span class="cx">     &quot;failure&quot;: true
</span><span class="cx">   },
</span><del>-  &quot;Something that isn't exactly an IP should get treated as a host and spaces escaped&quot;,
</del><ins>+  &quot;A space in a host causes failure&quot;,
</ins><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;http://192.168.0.1 hello&quot;,
</span><span class="cx">     &quot;base&quot;: &quot;http://other.com/&quot;,
</span><span class="cx">     &quot;failure&quot;: true
</span><span class="cx">   },
</span><ins>+  {
+    &quot;input&quot;: &quot;https://x x:12&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
</ins><span class="cx">   &quot;Fullwidth and escaped UTF-8 fullwidth should still be treated as IP&quot;,
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;http://0Xc0.0250.01&quot;,
</span><span class="lines">@@ -4424,6 +4487,37 @@
</span><span class="cx">     &quot;search&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hash&quot;: &quot;&quot;
</span><span class="cx">   },
</span><ins>+  &quot;# unknown scheme with bogus percent-encoding&quot;,
+  {
+    &quot;input&quot;: &quot;wow:%NBD&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;wow:%NBD&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;wow:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;%NBD&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;wow:%1G&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;wow:%1G&quot;,
+    &quot;origin&quot;: &quot;null&quot;,
+    &quot;protocol&quot;: &quot;wow:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;%1G&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
</ins><span class="cx">   &quot;# Hosts and percent-encoding&quot;,
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;ftp://example.com%80/&quot;,
</span><span class="lines">@@ -4796,6 +4890,21 @@
</span><span class="cx">     &quot;search&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hash&quot;: &quot;&quot;
</span><span class="cx">   },
</span><ins>+  {
+    &quot;input&quot;: &quot;https://0x.0x.0&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;https://0.0.0.0/&quot;,
+    &quot;origin&quot;: &quot;https://0.0.0.0&quot;,
+    &quot;protocol&quot;: &quot;https:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;0.0.0.0&quot;,
+    &quot;hostname&quot;: &quot;0.0.0.0&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
</ins><span class="cx">   &quot;# file URLs containing percent-encoded Windows drive letters (shouldn't work)&quot;,
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;file:///C%3A/&quot;,
</span><span class="lines">@@ -4868,7 +4977,7 @@
</span><span class="cx">     &quot;search&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hash&quot;: &quot;&quot;
</span><span class="cx">   },
</span><del>-  &quot;# More file URL tests by zcorpan&quot;,
</del><ins>+  &quot;# More file URL tests by zcorpan and annevk&quot;,
</ins><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;/&quot;,
</span><span class="cx">     &quot;base&quot;: &quot;file:///C:/a/b&quot;,
</span><span class="lines">@@ -4939,6 +5048,90 @@
</span><span class="cx">     &quot;search&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hash&quot;: &quot;&quot;
</span><span class="cx">   },
</span><ins>+  {
+    &quot;input&quot;: &quot;&quot;,
+    &quot;base&quot;: &quot;file:///test?test#test&quot;,
+    &quot;href&quot;: &quot;file:///test?test&quot;,
+    &quot;protocol&quot;: &quot;file:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/test&quot;,
+    &quot;search&quot;: &quot;?test&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;file:&quot;,
+    &quot;base&quot;: &quot;file:///test?test#test&quot;,
+    &quot;href&quot;: &quot;file:///test?test&quot;,
+    &quot;protocol&quot;: &quot;file:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/test&quot;,
+    &quot;search&quot;: &quot;?test&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;?x&quot;,
+    &quot;base&quot;: &quot;file:///test?test#test&quot;,
+    &quot;href&quot;: &quot;file:///test?x&quot;,
+    &quot;protocol&quot;: &quot;file:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/test&quot;,
+    &quot;search&quot;: &quot;?x&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;file:?x&quot;,
+    &quot;base&quot;: &quot;file:///test?test#test&quot;,
+    &quot;href&quot;: &quot;file:///test?x&quot;,
+    &quot;protocol&quot;: &quot;file:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/test&quot;,
+    &quot;search&quot;: &quot;?x&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;#x&quot;,
+    &quot;base&quot;: &quot;file:///test?test#test&quot;,
+    &quot;href&quot;: &quot;file:///test?test#x&quot;,
+    &quot;protocol&quot;: &quot;file:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/test&quot;,
+    &quot;search&quot;: &quot;?test&quot;,
+    &quot;hash&quot;: &quot;#x&quot;
+  },
+  {
+    &quot;input&quot;: &quot;file:#x&quot;,
+    &quot;base&quot;: &quot;file:///test?test#test&quot;,
+    &quot;href&quot;: &quot;file:///test?test#x&quot;,
+    &quot;protocol&quot;: &quot;file:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;/test&quot;,
+    &quot;search&quot;: &quot;?test&quot;,
+    &quot;hash&quot;: &quot;#x&quot;
+  },
</ins><span class="cx">   &quot;# file URLs without base URL by Rimas Misevičius&quot;,
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;file:&quot;,
</span><span class="lines">@@ -4982,7 +5175,7 @@
</span><span class="cx">     &quot;search&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hash&quot;: &quot;#frag&quot;
</span><span class="cx">   },
</span><del>-  &quot;# IPv6 trailing zeros test&quot;,
</del><ins>+  &quot;# IPv6 tests&quot;,
</ins><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;http://[1:0::]&quot;,
</span><span class="cx">     &quot;base&quot;: &quot;http://example.net/&quot;,
</span><span class="lines">@@ -4998,16 +5191,56 @@
</span><span class="cx">     &quot;search&quot;: &quot;&quot;,
</span><span class="cx">     &quot;hash&quot;: &quot;&quot;
</span><span class="cx">   },
</span><ins>+  {
+    &quot;input&quot;: &quot;http://[0:1:2:3:4:5:6:7:8]&quot;,
+    &quot;base&quot;: &quot;http://example.net/&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;https://[0::0::0]&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;https://[0:.0]&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;https://[0:0:]&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;https://[0:1:2:3:4:5:6:7.0.0.0.1]&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;https://[0:1.00.0.0.0]&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;https://[0:1.290.0.0.0]&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
+  {
+    &quot;input&quot;: &quot;https://[0:1.23.23]&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;failure&quot;: true
+  },
</ins><span class="cx">   &quot;# Empty host&quot;,
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;http://?&quot;,
</span><span class="cx">     &quot;base&quot;: &quot;about:blank&quot;,
</span><del>-    &quot;failure&quot;: &quot;true&quot;
</del><ins>+    &quot;failure&quot;: true
</ins><span class="cx">   },
</span><span class="cx">   {
</span><span class="cx">     &quot;input&quot;: &quot;http://#&quot;,
</span><span class="cx">     &quot;base&quot;: &quot;about:blank&quot;,
</span><del>-    &quot;failure&quot;: &quot;true&quot;
</del><ins>+    &quot;failure&quot;: true
</ins><span class="cx">   },
</span><span class="cx">   &quot;# Non-special-URL path tests&quot;,
</span><span class="cx">   {
</span><span class="lines">@@ -5411,5 +5644,33 @@
</span><span class="cx">     &quot;input&quot;: &quot;non-special://[:80/&quot;,
</span><span class="cx">     &quot;base&quot;: &quot;about:blank&quot;,
</span><span class="cx">     &quot;failure&quot;: true
</span><ins>+  },
+  {
+    &quot;input&quot;: &quot;blob:https://example.com:443/&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;blob:https://example.com:443/&quot;,
+    &quot;protocol&quot;: &quot;blob:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;https://example.com:443/&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
+  },
+  {
+    &quot;input&quot;: &quot;blob:d3958f5c-0777-0845-9dcf-2cb28783acaf&quot;,
+    &quot;base&quot;: &quot;about:blank&quot;,
+    &quot;href&quot;: &quot;blob:d3958f5c-0777-0845-9dcf-2cb28783acaf&quot;,
+    &quot;protocol&quot;: &quot;blob:&quot;,
+    &quot;username&quot;: &quot;&quot;,
+    &quot;password&quot;: &quot;&quot;,
+    &quot;host&quot;: &quot;&quot;,
+    &quot;hostname&quot;: &quot;&quot;,
+    &quot;port&quot;: &quot;&quot;,
+    &quot;pathname&quot;: &quot;d3958f5c-0777-0845-9dcf-2cb28783acaf&quot;,
+    &quot;search&quot;: &quot;&quot;,
+    &quot;hash&quot;: &quot;&quot;
</ins><span class="cx">   }
</span><span class="cx"> ]
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -23,6 +23,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml.xhtml
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/url/a-element.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/url/a-element.js
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/url/failure.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/url/historical.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/url/historical.worker.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/url/interfaces.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -30,5 +30,4 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/serve
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/serve.py
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/server-side.md
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/test_keys_wdspec.html
</del><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/update-built-tests.sh
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionsetRemoteDescriptionexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+
+Harness Error (TIMEOUT), message = null
+
+TIMEOUT Triggers onaddstream when called with a remote description and the MSID is parsed. Test timed out
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionsetRemoteDescriptionhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription.html (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription.html        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,56 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+&lt;head&gt;
+  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
+  &lt;title&gt;RTCPeerConnection setRemoteDescription tests&lt;/title&gt;
+&lt;/head&gt;
+&lt;body&gt;
+  &lt;!--  These files are in place when executing on W3C.  --&gt;
+  &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+  &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+  &lt;script type=&quot;text/javascript&quot;&gt;
+  // tests that onaddstream is called and parses the msid information from the SDP and creates
+  // the streams and tracks with matching identifiers.
+  // TODO: onaddstream is no longer part of the spec but is more widely implemented than ontrack
+  //       as of Feb. 2017. This test should be deprecated once ontrack is more widely implemented.
+  async_test(function(test) {
+    const sdp = 'v=0\r\n' +
+        'o=- 166855176514521964 2 IN IP4 127.0.0.1\r\n' +
+        's=-\r\n' +
+        't=0 0\r\n' +
+        'a=msid-semantic:WMS *\r\n' +
+        'm=audio 9 UDP/TLS/RTP/SAVPF 111\r\n' +
+        'c=IN IP4 0.0.0.0\r\n' +
+        'a=rtcp:9 IN IP4 0.0.0.0\r\n' +
+        'a=ice-ufrag:someufrag\r\n' +
+        'a=ice-pwd:somelongpwdwithenoughrandomness\r\n' +
+        'a=fingerprint:sha-256 8C:71:B3:8D:A5:38:FD:8F:A4:2E:A2:65:6C:86:52:BC:E0:6E:94:F2:9F:7C:4D:B5:DF:AF:AA:6F:44:90:8D:F4\r\n' +
+        'a=setup:actpass\r\n' +
+        'a=rtcp-mux\r\n' +
+        'a=mid:mid1\r\n' +
+        'a=sendonly\r\n' +
+        'a=rtpmap:111 opus/48000/2\r\n' +
+        'a=msid:stream1 track1\r\n' +
+        'a=ssrc:1001 cname:some\r\n';
+
+    var pc = new RTCPeerConnection(null);
+
+    pc.onaddstream = test.step_func(function(event) {
+      assert_equals(event.stream.getTracks().length, 1, 'the stream contains one track');
+      assert_equals(event.stream.getAudioTracks().length, 1, 'the stream contains one audio track');
+      assert_equals(event.stream.getVideoTracks().length, 0, 'the stream contains no video tracks');
+
+      assert_equals(event.stream.id, 'stream1', 'the stream name is parsed from the MSID line');
+      assert_equals(event.stream.getTracks()[0].id, 'track1', 'the track name is parsed from the MSID line');
+      test.done();
+    });
+
+    pc.setRemoteDescription(new RTCSessionDescription({type: 'offer', sdp: sdp}))
+    .catch(test.step_func(function(e) {
+      assert_unreached('Error ' + e.name + ': ' + e.message);
+    }));
+  }, 'Triggers onaddstream when called with a remote description and the MSID is parsed.');
+&lt;/script&gt;
+
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -17,3 +17,4 @@
</span><span class="cx"> List of files:
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription.html
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatorwk2TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator-wk2/TestExpectations (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator-wk2/TestExpectations        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/platform/ios-simulator-wk2/TestExpectations        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1893,6 +1893,9 @@
</span><span class="cx"> webkit.org/b/161359 imported/w3c/web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-top.html [ Pass Failure ]
</span><span class="cx"> webkit.org/b/161631 imported/w3c/web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-id-top.html [ Pass Failure ]
</span><span class="cx"> 
</span><ins>+webkit.org/b/169523 imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker.html [ Failure ]
+webkit.org/b/169523 imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html [ Failure ]
+
</ins><span class="cx"> # rdar://problem/26477855
</span><span class="cx"> http/tests/xmlhttprequest/logout.html [ Failure ]
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatorwk2importedw3cwebplatformtestshtmldominterfacesworkerexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/dom/interfaces.worker-expected.txt (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/dom/interfaces.worker-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/dom/interfaces.worker-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,511 @@
</span><ins>+CONSOLE MESSAGE: WebSocket network error: The operation couldn’t be completed. (kCFErrorDomainCFNetwork error 2.)
+
+PASS Test driver 
+PASS EventListener interface: existence and properties of interface object 
+PASS NodeList interface: existence and properties of interface object 
+PASS HTMLCollection interface: existence and properties of interface object 
+PASS MutationObserver interface: existence and properties of interface object 
+PASS MutationRecord interface: existence and properties of interface object 
+PASS Node interface: existence and properties of interface object 
+PASS Document interface: existence and properties of interface object 
+PASS XMLDocument interface: existence and properties of interface object 
+PASS DOMImplementation interface: existence and properties of interface object 
+PASS DocumentFragment interface: existence and properties of interface object 
+PASS DocumentType interface: existence and properties of interface object 
+PASS Element interface: existence and properties of interface object 
+PASS NamedNodeMap interface: existence and properties of interface object 
+PASS Attr interface: existence and properties of interface object 
+PASS CharacterData interface: existence and properties of interface object 
+PASS Text interface: existence and properties of interface object 
+PASS CDATASection interface: existence and properties of interface object 
+PASS ProcessingInstruction interface: existence and properties of interface object 
+PASS Comment interface: existence and properties of interface object 
+PASS Range interface: existence and properties of interface object 
+PASS NodeIterator interface: existence and properties of interface object 
+PASS TreeWalker interface: existence and properties of interface object 
+PASS NodeFilter interface: existence and properties of interface object 
+PASS DOMTokenList interface: existence and properties of interface object 
+PASS UIEvent interface: existence and properties of interface object 
+PASS MouseEvent interface: existence and properties of interface object 
+PASS Touch interface: existence and properties of interface object 
+PASS MediaList interface: existence and properties of interface object 
+PASS StyleSheet interface: existence and properties of interface object 
+PASS CSSStyleSheet interface: existence and properties of interface object 
+PASS CSSRule interface: existence and properties of interface object 
+PASS CSSStyleRule interface: existence and properties of interface object 
+PASS CSSImportRule interface: existence and properties of interface object 
+PASS CSSMediaRule interface: existence and properties of interface object 
+PASS CSSFontFaceRule interface: existence and properties of interface object 
+PASS CSSPageRule interface: existence and properties of interface object 
+PASS CSSNamespaceRule interface: existence and properties of interface object 
+PASS CSSStyleDeclaration interface: existence and properties of interface object 
+PASS CSSStyleDeclarationValue interface: existence and properties of interface object 
+PASS CSSPropertyValue interface: existence and properties of interface object 
+PASS HTMLAllCollection interface: existence and properties of interface object 
+PASS HTMLFormControlsCollection interface: existence and properties of interface object 
+PASS RadioNodeList interface: existence and properties of interface object 
+PASS HTMLOptionsCollection interface: existence and properties of interface object 
+PASS DOMStringMap interface: existence and properties of interface object 
+PASS HTMLElement interface: existence and properties of interface object 
+PASS HTMLUnknownElement interface: existence and properties of interface object 
+PASS HTMLHtmlElement interface: existence and properties of interface object 
+PASS HTMLHeadElement interface: existence and properties of interface object 
+PASS HTMLTitleElement interface: existence and properties of interface object 
+PASS HTMLBaseElement interface: existence and properties of interface object 
+PASS HTMLLinkElement interface: existence and properties of interface object 
+PASS HTMLMetaElement interface: existence and properties of interface object 
+PASS HTMLStyleElement interface: existence and properties of interface object 
+PASS HTMLBodyElement interface: existence and properties of interface object 
+PASS HTMLHeadingElement interface: existence and properties of interface object 
+PASS HTMLParagraphElement interface: existence and properties of interface object 
+PASS HTMLHRElement interface: existence and properties of interface object 
+PASS HTMLPreElement interface: existence and properties of interface object 
+PASS HTMLQuoteElement interface: existence and properties of interface object 
+PASS HTMLOListElement interface: existence and properties of interface object 
+PASS HTMLUListElement interface: existence and properties of interface object 
+PASS HTMLLIElement interface: existence and properties of interface object 
+PASS HTMLDListElement interface: existence and properties of interface object 
+PASS HTMLDivElement interface: existence and properties of interface object 
+PASS HTMLAnchorElement interface: existence and properties of interface object 
+PASS HTMLDataElement interface: existence and properties of interface object 
+PASS HTMLTimeElement interface: existence and properties of interface object 
+PASS HTMLSpanElement interface: existence and properties of interface object 
+PASS HTMLBRElement interface: existence and properties of interface object 
+PASS HTMLModElement interface: existence and properties of interface object 
+PASS HTMLPictureElement interface: existence and properties of interface object 
+PASS HTMLImageElement interface: existence and properties of interface object 
+PASS HTMLIFrameElement interface: existence and properties of interface object 
+PASS HTMLEmbedElement interface: existence and properties of interface object 
+PASS HTMLObjectElement interface: existence and properties of interface object 
+PASS HTMLParamElement interface: existence and properties of interface object 
+PASS HTMLVideoElement interface: existence and properties of interface object 
+PASS HTMLAudioElement interface: existence and properties of interface object 
+PASS HTMLSourceElement interface: existence and properties of interface object 
+PASS HTMLTrackElement interface: existence and properties of interface object 
+PASS HTMLMediaElement interface: existence and properties of interface object 
+PASS MediaError interface: existence and properties of interface object 
+PASS AudioTrackList interface: existence and properties of interface object 
+PASS AudioTrack interface: existence and properties of interface object 
+PASS VideoTrackList interface: existence and properties of interface object 
+PASS VideoTrack interface: existence and properties of interface object 
+PASS TextTrackList interface: existence and properties of interface object 
+PASS TextTrack interface: existence and properties of interface object 
+PASS TextTrackCueList interface: existence and properties of interface object 
+PASS TextTrackCue interface: existence and properties of interface object 
+PASS TimeRanges interface: existence and properties of interface object 
+PASS TrackEvent interface: existence and properties of interface object 
+PASS HTMLMapElement interface: existence and properties of interface object 
+PASS HTMLAreaElement interface: existence and properties of interface object 
+PASS HTMLTableElement interface: existence and properties of interface object 
+PASS HTMLTableCaptionElement interface: existence and properties of interface object 
+PASS HTMLTableColElement interface: existence and properties of interface object 
+PASS HTMLTableSectionElement interface: existence and properties of interface object 
+PASS HTMLTableRowElement interface: existence and properties of interface object 
+PASS HTMLTableCellElement interface: existence and properties of interface object 
+PASS HTMLFormElement interface: existence and properties of interface object 
+PASS HTMLLabelElement interface: existence and properties of interface object 
+PASS HTMLInputElement interface: existence and properties of interface object 
+PASS HTMLButtonElement interface: existence and properties of interface object 
+PASS HTMLSelectElement interface: existence and properties of interface object 
+PASS HTMLDataListElement interface: existence and properties of interface object 
+PASS HTMLOptGroupElement interface: existence and properties of interface object 
+PASS HTMLOptionElement interface: existence and properties of interface object 
+PASS HTMLTextAreaElement interface: existence and properties of interface object 
+PASS HTMLOutputElement interface: existence and properties of interface object 
+PASS HTMLProgressElement interface: existence and properties of interface object 
+PASS HTMLMeterElement interface: existence and properties of interface object 
+PASS HTMLFieldSetElement interface: existence and properties of interface object 
+PASS HTMLLegendElement interface: existence and properties of interface object 
+PASS ValidityState interface: existence and properties of interface object 
+PASS HTMLDetailsElement interface: existence and properties of interface object 
+PASS HTMLMenuElement interface: existence and properties of interface object 
+PASS HTMLMenuItemElement interface: existence and properties of interface object 
+PASS RelatedEvent interface: existence and properties of interface object 
+PASS HTMLDialogElement interface: existence and properties of interface object 
+PASS HTMLScriptElement interface: existence and properties of interface object 
+PASS HTMLTemplateElement interface: existence and properties of interface object 
+PASS HTMLSlotElement interface: existence and properties of interface object 
+PASS HTMLCanvasElement interface: existence and properties of interface object 
+PASS CanvasRenderingContext2D interface: existence and properties of interface object 
+PASS CanvasGradient interface: existence and properties of interface object 
+PASS CanvasPattern interface: existence and properties of interface object 
+PASS TextMetrics interface: existence and properties of interface object 
+PASS ImageData interface: existence and properties of interface object 
+PASS ImageData interface object length 
+PASS ImageData interface object name 
+PASS ImageData interface: existence and properties of interface prototype object 
+PASS ImageData interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS ImageData interface: attribute width 
+PASS ImageData interface: attribute height 
+PASS ImageData interface: attribute data 
+FAIL Path2D interface: existence and properties of interface object assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface object length assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface object name assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation addPath(Path2D,DOMMatrixInit) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation closePath() assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation moveTo(unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation lineTo(unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation quadraticCurveTo(unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation bezierCurveTo(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation arcTo(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation arcTo(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation rect(unrestricted double,unrestricted double,unrestricted double,unrestricted double) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation arc(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,boolean) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+FAIL Path2D interface: operation ellipse(unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,unrestricted double,boolean) assert_own_property: self does not have own property &quot;Path2D&quot; expected property &quot;Path2D&quot; missing
+PASS DataTransfer interface: existence and properties of interface object 
+PASS DataTransferItemList interface: existence and properties of interface object 
+PASS DataTransferItem interface: existence and properties of interface object 
+PASS DragEvent interface: existence and properties of interface object 
+PASS Window interface: existence and properties of interface object 
+PASS BarProp interface: existence and properties of interface object 
+PASS History interface: existence and properties of interface object 
+PASS Location interface: existence and properties of interface object 
+PASS PopStateEvent interface: existence and properties of interface object 
+PASS HashChangeEvent interface: existence and properties of interface object 
+PASS PageTransitionEvent interface: existence and properties of interface object 
+PASS BeforeUnloadEvent interface: existence and properties of interface object 
+PASS ApplicationCache interface: existence and properties of interface object 
+PASS ErrorEvent interface: existence and properties of interface object 
+PASS ErrorEvent interface object length 
+PASS ErrorEvent interface object name 
+PASS ErrorEvent interface: existence and properties of interface prototype object 
+PASS ErrorEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS ErrorEvent interface: attribute message 
+PASS ErrorEvent interface: attribute filename 
+PASS ErrorEvent interface: attribute lineno 
+PASS ErrorEvent interface: attribute colno 
+PASS ErrorEvent interface: attribute error 
+PASS Navigator interface: existence and properties of interface object 
+PASS PluginArray interface: existence and properties of interface object 
+PASS MimeTypeArray interface: existence and properties of interface object 
+PASS Plugin interface: existence and properties of interface object 
+PASS MimeType interface: existence and properties of interface object 
+PASS External interface: existence and properties of interface object 
+FAIL ImageBitmap interface: existence and properties of interface object assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+FAIL ImageBitmap interface object length assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+FAIL ImageBitmap interface object name assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+FAIL ImageBitmap interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+FAIL ImageBitmap interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+FAIL ImageBitmap interface: attribute width assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+FAIL ImageBitmap interface: attribute height assert_own_property: self does not have own property &quot;ImageBitmap&quot; expected property &quot;ImageBitmap&quot; missing
+PASS MessageEvent interface: existence and properties of interface object 
+PASS MessageEvent interface object length 
+PASS MessageEvent interface object name 
+PASS MessageEvent interface: existence and properties of interface prototype object 
+PASS MessageEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS MessageEvent interface: attribute data 
+PASS MessageEvent interface: attribute origin 
+PASS MessageEvent interface: attribute lastEventId 
+PASS MessageEvent interface: attribute source 
+PASS MessageEvent interface: attribute ports 
+PASS MessageEvent interface: operation initMessageEvent(DOMString,boolean,boolean,any,DOMString,DOMString,[object Object],[object Object],[object Object]) 
+PASS MessageEvent must be primary interface of new MessageEvent(&quot;message&quot;, { data: 5 }) 
+PASS Stringification of new MessageEvent(&quot;message&quot;, { data: 5 }) 
+PASS MessageEvent interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;data&quot; with the proper type (0) 
+PASS MessageEvent interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;origin&quot; with the proper type (1) 
+PASS MessageEvent interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;lastEventId&quot; with the proper type (2) 
+PASS MessageEvent interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;source&quot; with the proper type (3) 
+FAIL MessageEvent interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;ports&quot; with the proper type (4) Unrecognized type [object Object]
+PASS MessageEvent interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;initMessageEvent&quot; with the proper type (5) 
+PASS MessageEvent interface: calling initMessageEvent(DOMString,boolean,boolean,any,DOMString,DOMString,[object Object],[object Object],[object Object]) on new MessageEvent(&quot;message&quot;, { data: 5 }) with too few arguments must throw TypeError 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;type&quot; with the proper type (0) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;target&quot; with the proper type (1) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;currentTarget&quot; with the proper type (2) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;NONE&quot; with the proper type (3) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;CAPTURING_PHASE&quot; with the proper type (4) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;AT_TARGET&quot; with the proper type (5) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;BUBBLING_PHASE&quot; with the proper type (6) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;eventPhase&quot; with the proper type (7) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;stopPropagation&quot; with the proper type (8) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;stopImmediatePropagation&quot; with the proper type (9) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;bubbles&quot; with the proper type (10) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;cancelable&quot; with the proper type (11) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;preventDefault&quot; with the proper type (12) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;defaultPrevented&quot; with the proper type (13) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must have own property &quot;isTrusted&quot; 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;timeStamp&quot; with the proper type (15) 
+PASS Event interface: new MessageEvent(&quot;message&quot;, { data: 5 }) must inherit property &quot;initEvent&quot; with the proper type (16) 
+FAIL Event interface: calling initEvent(DOMString,boolean,boolean) on new MessageEvent(&quot;message&quot;, { data: 5 }) with too few arguments must throw TypeError assert_throws: Called with 1 arguments function &quot;function () {
+            fn.apply(obj, args);
+        }&quot; did not throw
+PASS EventSource interface: existence and properties of interface object 
+PASS EventSource interface object length 
+PASS EventSource interface object name 
+PASS EventSource interface: existence and properties of interface prototype object 
+PASS EventSource interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS EventSource interface: attribute url 
+PASS EventSource interface: attribute withCredentials 
+PASS EventSource interface: constant CONNECTING on interface object 
+PASS EventSource interface: constant CONNECTING on interface prototype object 
+PASS EventSource interface: constant OPEN on interface object 
+PASS EventSource interface: constant OPEN on interface prototype object 
+PASS EventSource interface: constant CLOSED on interface object 
+PASS EventSource interface: constant CLOSED on interface prototype object 
+PASS EventSource interface: attribute readyState 
+PASS EventSource interface: attribute onopen 
+PASS EventSource interface: attribute onmessage 
+PASS EventSource interface: attribute onerror 
+PASS EventSource interface: operation close() 
+PASS WebSocket interface: existence and properties of interface object 
+PASS WebSocket interface object length 
+PASS WebSocket interface object name 
+PASS WebSocket interface: existence and properties of interface prototype object 
+PASS WebSocket interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS WebSocket interface: attribute url 
+PASS WebSocket interface: constant CONNECTING on interface object 
+PASS WebSocket interface: constant CONNECTING on interface prototype object 
+PASS WebSocket interface: constant OPEN on interface object 
+PASS WebSocket interface: constant OPEN on interface prototype object 
+PASS WebSocket interface: constant CLOSING on interface object 
+PASS WebSocket interface: constant CLOSING on interface prototype object 
+PASS WebSocket interface: constant CLOSED on interface object 
+PASS WebSocket interface: constant CLOSED on interface prototype object 
+PASS WebSocket interface: attribute readyState 
+PASS WebSocket interface: attribute bufferedAmount 
+PASS WebSocket interface: attribute onopen 
+PASS WebSocket interface: attribute onerror 
+PASS WebSocket interface: attribute onclose 
+PASS WebSocket interface: attribute extensions 
+PASS WebSocket interface: attribute protocol 
+PASS WebSocket interface: operation close(unsigned short,USVString) 
+PASS WebSocket interface: attribute onmessage 
+PASS WebSocket interface: attribute binaryType 
+PASS WebSocket interface: operation send(USVString) 
+PASS WebSocket interface: operation send(Blob) 
+PASS WebSocket interface: operation send(ArrayBuffer) 
+PASS WebSocket interface: operation send(ArrayBufferView) 
+PASS WebSocket must be primary interface of new WebSocket(&quot;ws://foo&quot;) 
+PASS Stringification of new WebSocket(&quot;ws://foo&quot;) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;url&quot; with the proper type (0) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;CONNECTING&quot; with the proper type (1) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;OPEN&quot; with the proper type (2) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;CLOSING&quot; with the proper type (3) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;CLOSED&quot; with the proper type (4) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;readyState&quot; with the proper type (5) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;bufferedAmount&quot; with the proper type (6) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;onopen&quot; with the proper type (7) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;onerror&quot; with the proper type (8) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;onclose&quot; with the proper type (9) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;extensions&quot; with the proper type (10) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;protocol&quot; with the proper type (11) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;close&quot; with the proper type (12) 
+PASS WebSocket interface: calling close(unsigned short,USVString) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;onmessage&quot; with the proper type (13) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;binaryType&quot; with the proper type (14) 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;send&quot; with the proper type (15) 
+PASS WebSocket interface: calling send(USVString) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;send&quot; with the proper type (16) 
+PASS WebSocket interface: calling send(Blob) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;send&quot; with the proper type (17) 
+PASS WebSocket interface: calling send(ArrayBuffer) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS WebSocket interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;send&quot; with the proper type (18) 
+PASS WebSocket interface: calling send(ArrayBufferView) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS EventTarget interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;addEventListener&quot; with the proper type (0) 
+PASS EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS EventTarget interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;removeEventListener&quot; with the proper type (1) 
+PASS EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+PASS EventTarget interface: new WebSocket(&quot;ws://foo&quot;) must inherit property &quot;dispatchEvent&quot; with the proper type (2) 
+PASS EventTarget interface: calling dispatchEvent(Event) on new WebSocket(&quot;ws://foo&quot;) with too few arguments must throw TypeError 
+FAIL CloseEvent interface: existence and properties of interface object assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface object length assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface object name assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface: attribute wasClean assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface: attribute code assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent interface: attribute reason assert_own_property: self does not have own property &quot;CloseEvent&quot; expected property &quot;CloseEvent&quot; missing
+FAIL CloseEvent must be primary interface of new CloseEvent(&quot;close&quot;) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Stringification of new CloseEvent(&quot;close&quot;) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL CloseEvent interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;wasClean&quot; with the proper type (0) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL CloseEvent interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;code&quot; with the proper type (1) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL CloseEvent interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;reason&quot; with the proper type (2) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;type&quot; with the proper type (0) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;target&quot; with the proper type (1) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;currentTarget&quot; with the proper type (2) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;NONE&quot; with the proper type (3) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;CAPTURING_PHASE&quot; with the proper type (4) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;AT_TARGET&quot; with the proper type (5) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;BUBBLING_PHASE&quot; with the proper type (6) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;eventPhase&quot; with the proper type (7) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;stopPropagation&quot; with the proper type (8) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;stopImmediatePropagation&quot; with the proper type (9) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;bubbles&quot; with the proper type (10) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;cancelable&quot; with the proper type (11) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;preventDefault&quot; with the proper type (12) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;defaultPrevented&quot; with the proper type (13) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must have own property &quot;isTrusted&quot; assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;timeStamp&quot; with the proper type (15) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: new CloseEvent(&quot;close&quot;) must inherit property &quot;initEvent&quot; with the proper type (16) assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+FAIL Event interface: calling initEvent(DOMString,boolean,boolean) on new CloseEvent(&quot;close&quot;) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object &quot;ReferenceError: Can't find variable: CloseEvent&quot;
+PASS MessageChannel interface: existence and properties of interface object 
+PASS MessageChannel interface object length 
+PASS MessageChannel interface object name 
+PASS MessageChannel interface: existence and properties of interface prototype object 
+PASS MessageChannel interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS MessageChannel interface: attribute port1 
+PASS MessageChannel interface: attribute port2 
+PASS MessagePort interface: existence and properties of interface object 
+PASS MessagePort interface object length 
+PASS MessagePort interface object name 
+PASS MessagePort interface: existence and properties of interface prototype object 
+PASS MessagePort interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS MessagePort interface: operation postMessage(any,[object Object]) 
+PASS MessagePort interface: operation start() 
+PASS MessagePort interface: operation close() 
+PASS MessagePort interface: attribute onmessage 
+FAIL BroadcastChannel interface: existence and properties of interface object assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface object length assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface object name assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface: attribute name assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface: operation postMessage(any) assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface: operation close() assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+FAIL BroadcastChannel interface: attribute onmessage assert_own_property: self does not have own property &quot;BroadcastChannel&quot; expected property &quot;BroadcastChannel&quot; missing
+PASS WorkerGlobalScope interface: existence and properties of interface object 
+PASS WorkerGlobalScope interface object length 
+PASS WorkerGlobalScope interface object name 
+PASS WorkerGlobalScope interface: existence and properties of interface prototype object 
+PASS WorkerGlobalScope interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS WorkerGlobalScope interface: attribute self 
+PASS WorkerGlobalScope interface: attribute location 
+PASS WorkerGlobalScope interface: attribute navigator 
+PASS WorkerGlobalScope interface: operation importScripts(USVString) 
+PASS WorkerGlobalScope interface: attribute onerror 
+FAIL WorkerGlobalScope interface: attribute onlanguagechange assert_true: The prototype object must have a property &quot;onlanguagechange&quot; expected true got false
+PASS WorkerGlobalScope interface: attribute onoffline 
+PASS WorkerGlobalScope interface: attribute ononline 
+FAIL WorkerGlobalScope interface: attribute origin assert_true: The prototype object must have a property &quot;origin&quot; expected true got false
+PASS WorkerGlobalScope interface: operation btoa(DOMString) 
+PASS WorkerGlobalScope interface: operation atob(DOMString) 
+PASS WorkerGlobalScope interface: operation setTimeout(TimerHandler,long,any) 
+PASS WorkerGlobalScope interface: operation clearTimeout(long) 
+PASS WorkerGlobalScope interface: operation setInterval(TimerHandler,long,any) 
+PASS WorkerGlobalScope interface: operation clearInterval(long) 
+FAIL WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource,ImageBitmapOptions) assert_own_property: interface prototype object missing non-static operation expected property &quot;createImageBitmap&quot; missing
+FAIL WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource,long,long,long,long,ImageBitmapOptions) assert_own_property: interface prototype object missing non-static operation expected property &quot;createImageBitmap&quot; missing
+PASS DedicatedWorkerGlobalScope interface: existence and properties of interface object 
+PASS DedicatedWorkerGlobalScope interface object length 
+PASS DedicatedWorkerGlobalScope interface object name 
+PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object 
+PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS DedicatedWorkerGlobalScope interface: operation postMessage(any,[object Object]) 
+FAIL DedicatedWorkerGlobalScope interface: attribute onmessage The DedicatedWorkerGlobalScope.onmessage getter can only be used on instances of DedicatedWorkerGlobalScope
+PASS DedicatedWorkerGlobalScope must be primary interface of self 
+PASS Stringification of self 
+PASS DedicatedWorkerGlobalScope interface: self must inherit property &quot;postMessage&quot; with the proper type (0) 
+PASS DedicatedWorkerGlobalScope interface: calling postMessage(any,[object Object]) on self with too few arguments must throw TypeError 
+PASS DedicatedWorkerGlobalScope interface: self must inherit property &quot;onmessage&quot; with the proper type (1) 
+PASS WorkerGlobalScope interface: self must inherit property &quot;self&quot; with the proper type (0) 
+PASS WorkerGlobalScope interface: self must inherit property &quot;location&quot; with the proper type (1) 
+PASS WorkerGlobalScope interface: self must inherit property &quot;navigator&quot; with the proper type (2) 
+PASS WorkerGlobalScope interface: self must inherit property &quot;importScripts&quot; with the proper type (3) 
+PASS WorkerGlobalScope interface: calling importScripts(USVString) on self with too few arguments must throw TypeError 
+PASS WorkerGlobalScope interface: self must inherit property &quot;onerror&quot; with the proper type (4) 
+FAIL WorkerGlobalScope interface: self must inherit property &quot;onlanguagechange&quot; with the proper type (5) assert_inherits: property &quot;onlanguagechange&quot; not found in prototype chain
+PASS WorkerGlobalScope interface: self must inherit property &quot;onoffline&quot; with the proper type (6) 
+PASS WorkerGlobalScope interface: self must inherit property &quot;ononline&quot; with the proper type (7) 
+FAIL WorkerGlobalScope interface: self must inherit property &quot;origin&quot; with the proper type (8) assert_inherits: property &quot;origin&quot; not found in prototype chain
+PASS WorkerGlobalScope interface: self must inherit property &quot;btoa&quot; with the proper type (9) 
+PASS WorkerGlobalScope interface: calling btoa(DOMString) on self with too few arguments must throw TypeError 
+PASS WorkerGlobalScope interface: self must inherit property &quot;atob&quot; with the proper type (10) 
+PASS WorkerGlobalScope interface: calling atob(DOMString) on self with too few arguments must throw TypeError 
+PASS WorkerGlobalScope interface: self must inherit property &quot;setTimeout&quot; with the proper type (11) 
+PASS WorkerGlobalScope interface: calling setTimeout(TimerHandler,long,any) on self with too few arguments must throw TypeError 
+PASS WorkerGlobalScope interface: self must inherit property &quot;clearTimeout&quot; with the proper type (12) 
+PASS WorkerGlobalScope interface: calling clearTimeout(long) on self with too few arguments must throw TypeError 
+PASS WorkerGlobalScope interface: self must inherit property &quot;setInterval&quot; with the proper type (13) 
+PASS WorkerGlobalScope interface: calling setInterval(TimerHandler,long,any) on self with too few arguments must throw TypeError 
+PASS WorkerGlobalScope interface: self must inherit property &quot;clearInterval&quot; with the proper type (14) 
+PASS WorkerGlobalScope interface: calling clearInterval(long) on self with too few arguments must throw TypeError 
+FAIL WorkerGlobalScope interface: self must inherit property &quot;createImageBitmap&quot; with the proper type (15) assert_inherits: property &quot;createImageBitmap&quot; not found in prototype chain
+FAIL WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource,ImageBitmapOptions) on self with too few arguments must throw TypeError assert_inherits: property &quot;createImageBitmap&quot; not found in prototype chain
+FAIL WorkerGlobalScope interface: self must inherit property &quot;createImageBitmap&quot; with the proper type (16) assert_inherits: property &quot;createImageBitmap&quot; not found in prototype chain
+FAIL WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource,long,long,long,long,ImageBitmapOptions) on self with too few arguments must throw TypeError assert_inherits: property &quot;createImageBitmap&quot; not found in prototype chain
+PASS EventTarget interface: self must inherit property &quot;addEventListener&quot; with the proper type (0) 
+PASS EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on self with too few arguments must throw TypeError 
+PASS EventTarget interface: self must inherit property &quot;removeEventListener&quot; with the proper type (1) 
+PASS EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on self with too few arguments must throw TypeError 
+PASS EventTarget interface: self must inherit property &quot;dispatchEvent&quot; with the proper type (2) 
+PASS EventTarget interface: calling dispatchEvent(Event) on self with too few arguments must throw TypeError 
+FAIL SharedWorkerGlobalScope interface: existence and properties of interface object assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface object length assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface object name assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface: attribute name assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface: attribute applicationCache assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL SharedWorkerGlobalScope interface: attribute onconnect assert_own_property: self does not have own property &quot;SharedWorkerGlobalScope&quot; expected property &quot;SharedWorkerGlobalScope&quot; missing
+FAIL Worker interface: existence and properties of interface object assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface object length assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface object name assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface: operation terminate() assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface: operation postMessage(any,[object Object]) assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface: attribute onmessage assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL Worker interface: attribute onerror assert_own_property: self does not have own property &quot;Worker&quot; expected property &quot;Worker&quot; missing
+FAIL SharedWorker interface: existence and properties of interface object assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+FAIL SharedWorker interface object length assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+FAIL SharedWorker interface object name assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+FAIL SharedWorker interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+FAIL SharedWorker interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+FAIL SharedWorker interface: attribute port assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+FAIL SharedWorker interface: attribute onerror assert_own_property: self does not have own property &quot;SharedWorker&quot; expected property &quot;SharedWorker&quot; missing
+PASS WorkerNavigator interface: existence and properties of interface object 
+PASS WorkerNavigator interface object length 
+PASS WorkerNavigator interface object name 
+PASS WorkerNavigator interface: existence and properties of interface prototype object 
+PASS WorkerNavigator interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS WorkerNavigator interface: attribute appCodeName 
+PASS WorkerNavigator interface: attribute appName 
+PASS WorkerNavigator interface: attribute appVersion 
+PASS WorkerNavigator interface: attribute platform 
+PASS WorkerNavigator interface: attribute product 
+FAIL WorkerNavigator interface: attribute productSub assert_true: The prototype object must have a property &quot;productSub&quot; expected true got false
+PASS WorkerNavigator interface: attribute userAgent 
+FAIL WorkerNavigator interface: attribute vendor assert_true: The prototype object must have a property &quot;vendor&quot; expected true got false
+FAIL WorkerNavigator interface: attribute vendorSub assert_true: The prototype object must have a property &quot;vendorSub&quot; expected true got false
+PASS WorkerNavigator interface: attribute language 
+PASS WorkerNavigator interface: attribute languages 
+PASS WorkerNavigator interface: attribute onLine 
+PASS WorkerNavigator must be primary interface of self.navigator 
+PASS Stringification of self.navigator 
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;appCodeName&quot; with the proper type (0) 
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;appName&quot; with the proper type (1) 
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;appVersion&quot; with the proper type (2) 
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;platform&quot; with the proper type (3) 
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;product&quot; with the proper type (4) 
+FAIL WorkerNavigator interface: self.navigator must inherit property &quot;productSub&quot; with the proper type (5) assert_inherits: property &quot;productSub&quot; not found in prototype chain
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;userAgent&quot; with the proper type (6) 
+FAIL WorkerNavigator interface: self.navigator must inherit property &quot;vendor&quot; with the proper type (7) assert_inherits: property &quot;vendor&quot; not found in prototype chain
+FAIL WorkerNavigator interface: self.navigator must inherit property &quot;vendorSub&quot; with the proper type (8) assert_inherits: property &quot;vendorSub&quot; not found in prototype chain
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;language&quot; with the proper type (9) 
+FAIL WorkerNavigator interface: self.navigator must inherit property &quot;languages&quot; with the proper type (10) Unrecognized type [object Object]
+PASS WorkerNavigator interface: self.navigator must inherit property &quot;onLine&quot; with the proper type (11) 
+PASS WorkerLocation interface: existence and properties of interface object 
+PASS WorkerLocation interface object length 
+PASS WorkerLocation interface object name 
+PASS WorkerLocation interface: existence and properties of interface prototype object 
+PASS WorkerLocation interface: existence and properties of interface prototype object's &quot;constructor&quot; property 
+PASS WorkerLocation interface: attribute href 
+PASS WorkerLocation interface: stringifier 
+PASS WorkerLocation interface: attribute origin 
+PASS WorkerLocation interface: attribute protocol 
+PASS WorkerLocation interface: attribute host 
+PASS WorkerLocation interface: attribute hostname 
+PASS WorkerLocation interface: attribute port 
+PASS WorkerLocation interface: attribute pathname 
+PASS WorkerLocation interface: attribute search 
+PASS WorkerLocation interface: attribute hash 
+PASS Storage interface: existence and properties of interface object 
+PASS StorageEvent interface: existence and properties of interface object 
+PASS HTMLAppletElement interface: existence and properties of interface object 
+PASS HTMLMarqueeElement interface: existence and properties of interface object 
+PASS HTMLFrameSetElement interface: existence and properties of interface object 
+PASS HTMLFrameElement interface: existence and properties of interface object 
+PASS HTMLDirectoryElement interface: existence and properties of interface object 
+PASS HTMLFontElement interface: existence and properties of interface object 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatorwk2importedw3cwebplatformtestshtmlsemanticsformstextfieldselectionselectionnotapplicationexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,55 +1,21 @@
</span><span class="cx"> 
</span><del>-FAIL text field selection for the input hidden assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input email assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; did not throw
-FAIL text field selection for the input datetime-local assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input date assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input month assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input week assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input time assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input number assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; did not throw
-FAIL text field selection for the input range assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input color assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; did not throw
-FAIL text field selection for the input checkbox assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input radio assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input file assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input submit assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input image assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input reset assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
-FAIL text field selection for the input button assert_throws: function &quot;function (){
-        el.selectionStart;
-      }&quot; threw object &quot;TypeError: Type error&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to undefined, expected 11
</del><ins>+FAIL text field selection for the input hidden Type error
+FAIL text field selection for the input email assert_equals: expected (object) null but got (number) 0
+FAIL text field selection for the input datetime-local Type error
+FAIL text field selection for the input date Type error
+FAIL text field selection for the input month Type error
+FAIL text field selection for the input week Type error
+FAIL text field selection for the input time Type error
+FAIL text field selection for the input number assert_equals: expected (object) null but got (number) 0
+FAIL text field selection for the input range Type error
+FAIL text field selection for the input color assert_equals: expected (object) null but got (number) 0
+FAIL text field selection for the input checkbox Type error
+FAIL text field selection for the input radio Type error
+FAIL text field selection for the input file Type error
+FAIL text field selection for the input submit Type error
+FAIL text field selection for the input image Type error
+FAIL text field selection for the input reset Type error
+FAIL text field selection for the input button Type error
</ins><span class="cx"> PASS text field selection for the input text 
</span><span class="cx"> PASS text field selection for the input search 
</span><span class="cx"> PASS text field selection for the input tel 
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatorwk2importedw3cwebplatformtestshtmlsemanticsformstheinputelementvalueModeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,6 +1,18 @@
</span><span class="cx"> 
</span><del>-FAIL value IDL attribute of input type hidden without value attribute assert_equals: expected &quot;&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type hidden with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
</del><ins>+PASS value IDL attribute of input type hidden without value attribute 
+PASS value IDL attribute of input type hidden with value attribute 
+PASS value IDL attribute of input type submit without value attribute 
+PASS value IDL attribute of input type submit with value attribute 
+PASS value IDL attribute of input type image without value attribute 
+PASS value IDL attribute of input type image with value attribute 
+PASS value IDL attribute of input type reset without value attribute 
+PASS value IDL attribute of input type reset with value attribute 
+PASS value IDL attribute of input type button without value attribute 
+PASS value IDL attribute of input type button with value attribute 
+PASS value IDL attribute of input type checkbox without value attribute 
+PASS value IDL attribute of input type checkbox with value attribute 
+PASS value IDL attribute of input type radio without value attribute 
+PASS value IDL attribute of input type radio with value attribute 
</ins><span class="cx"> PASS value IDL attribute of input type text without value attribute 
</span><span class="cx"> PASS value IDL attribute of input type text with value attribute 
</span><span class="cx"> PASS value IDL attribute of input type search without value attribute 
</span><span class="lines">@@ -29,16 +41,4 @@
</span><span class="cx"> PASS value IDL attribute of input type range with value attribute 
</span><span class="cx"> FAIL value IDL attribute of input type color without value attribute assert_equals: expected &quot;#000000&quot; but got &quot;foo&quot;
</span><span class="cx"> FAIL value IDL attribute of input type color with value attribute assert_equals: expected &quot;#000000&quot; but got &quot;foo&quot;
</span><del>-FAIL value IDL attribute of input type checkbox without value attribute assert_equals: expected &quot;on&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type checkbox with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type radio without value attribute assert_equals: expected &quot;on&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type radio with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type submit without value attribute assert_equals: expected &quot;&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type submit with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type image without value attribute assert_equals: expected &quot;&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type image with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type reset without value attribute assert_equals: expected &quot;&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type reset with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type button without value attribute assert_equals: expected &quot;&quot; but got &quot;foo&quot;
-FAIL value IDL attribute of input type button with value attribute assert_equals: expected &quot;bar&quot; but got &quot;foo&quot;
</del><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacimportedw3cwebplatformtestsXMLHttpRequestsetrequestheadercontenttypeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,37 +0,0 @@
</span><del>-CONSOLE MESSAGE: line 26: ArrayBuffer is deprecated in XMLHttpRequest.send(). Use ArrayBufferView instead.
-CONSOLE MESSAGE: line 26: ArrayBuffer is deprecated in XMLHttpRequest.send(). Use ArrayBufferView instead.
-CONSOLE MESSAGE: line 26: ArrayBuffer is deprecated in XMLHttpRequest.send(). Use ArrayBufferView instead.
-
-PASS setRequestHeader(&quot;&quot;) sends a blank string 
-PASS setRequestHeader(&quot; &quot;) sends the string &quot; &quot; 
-PASS setRequestHeader(null) sends the string &quot;null&quot; 
-PASS setRequestHeader(undefined) sends the string &quot;undefined&quot; 
-PASS String request has correct default Content-Type of &quot;text/plain;charset=UTF-8&quot; 
-PASS String request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8 
-PASS XML Document request respects setRequestHeader(&quot;&quot;) 
-PASS XML Document request has correct default Content-Type of &quot;application/xml;charset=UTF-8&quot; 
-FAIL XML Document request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8 assert_equals: expected &quot;content-type: application/xhtml+xml;charset=utf-8&quot; but got &quot;content-type: application/xhtml+xml;charset=ascii&quot;
-PASS HTML Document request respects setRequestHeader(&quot;&quot;) 
-PASS HTML Document request has correct default Content-Type of &quot;text/html;charset=UTF-8&quot; 
-FAIL HTML Document request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8 assert_equals: expected &quot;content-type: text/html+junk;charset=utf-8&quot; but got &quot;content-type: text/html+junk;charset=ascii&quot;
-PASS Blob request respects setRequestHeader(&quot;&quot;) to be specified 
-FAIL Blob request with unset type sends no Content-Type without setRequestHeader() call assert_equals: expected &quot;&quot; but got &quot;content-type: &quot;
-PASS Blob request with unset type keeps setRequestHeader() Content-Type and charset 
-PASS Blob request with set type uses that it for Content-Type unless setRequestHeader() 
-PASS Blob request with set type keeps setRequestHeader() Content-Type and charset 
-PASS ArrayBuffer request respects setRequestHeader(&quot;&quot;) 
-FAIL ArrayBuffer request sends no Content-Type without setRequestHeader() call assert_equals: expected &quot;&quot; but got &quot;content-type: application/x-www-form-urlencoded&quot;
-PASS ArrayBuffer request keeps setRequestHeader() Content-Type and charset 
-PASS ArrayBufferView request respects setRequestHeader(&quot;&quot;) 
-FAIL ArrayBufferView request sends no Content-Type without setRequestHeader() call assert_equals: expected &quot;&quot; but got &quot;content-type: application/x-www-form-urlencoded&quot;
-PASS ArrayBufferView request keeps setRequestHeader() Content-Type and charset 
-PASS FormData request respects setRequestHeader(&quot;&quot;) 
-PASS FormData request has correct default Content-Type of &quot;multipart/form-data;boundary=_&quot; 
-PASS FormData request keeps setRequestHeader() Content-Type and charset 
-PASS URLSearchParams respects setRequestHeader(&quot;&quot;) 
-FAIL URLSearchParams request has correct default Content-Type of &quot;application/x-www-form-urlencoded;charset=UTF-8&quot; assert_equals: expected &quot;content-type: application/x-www-form-urlencoded;charset=utf-8&quot; but got &quot;content-type: text/plain;charset=utf-8&quot;
-PASS URLSearchParams request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8 
-PASS ReadableStream request respects setRequestHeader(&quot;&quot;) 
-FAIL ReadableStream request with under type sends no Content-Type without setRequestHeader() call assert_equals: expected &quot;&quot; but got &quot;content-type: text/plain;charset=utf-8&quot;
-FAIL ReadableStream request keeps setRequestHeader() Content-Type and charset assert_equals: expected &quot;content-type: application/xml;charset=ascii&quot; but got &quot;content-type: application/xml;charset=utf-8&quot;
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacimportedw3cwebplatformtestsfetchapirequestrequestcacheonlyifcachedexpectedtxtfromrev213880trunkLayoutTestsplatformmacwk1importedw3cwebplatformtestsfetchapirequestrequestcacheonlyifcachedexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt (from rev 213880, trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt) (0 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+
+PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for stale responses with Etag and stale response 
+PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for stale responses with Last-Modified and stale response 
+PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for fresh responses with Etag and fresh response 
+PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for fresh responses with Last-Modified and fresh response 
+PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and does not go to the network if a cached response is not found with Etag and fresh response 
+PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and does not go to the network if a cached response is not found with Last-Modified and fresh response 
+FAIL RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with Etag and fresh response promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with Last-Modified and fresh response promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with Etag and stale response promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with Last-Modified and stale response promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with Etag and fresh response 
+PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with Last-Modified and fresh response 
+PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with Etag and stale response 
+PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with Last-Modified and stale response 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/TestExpectations        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -231,6 +231,8 @@
</span><span class="cx"> webkit.org/b/156069 imported/w3c/web-platform-tests/html/semantics/text-level-semantics/the-a-element/a-download-click.html [ Skip ]
</span><span class="cx"> webkit.org/b/156069 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-area-element/area-download-click.html [ Skip ]
</span><span class="cx"> 
</span><ins>+webkit.org/b/169523 [ Debug ] imported/w3c/web-platform-tests/html/dom/interfaces.worker.html [ Failure ]
+
</ins><span class="cx"> # testRunner.setShouldDownloadUndisplayableMIMETypes() is not supported on WK1.
</span><span class="cx"> fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download.html [ Skip ]
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1importedw3cwebplatformtestsXMLHttpRequestsendnetworkerrorsynceventssubexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> Blocked access to external URL http://nonexistent-origin.localhost%7D:8800/
</span><span class="cx"> 
</span><del>-FAIL XmlHttpRequest: The send() method: Throw a &quot;throw an &quot;NetworkError&quot; exception when Network error happens (synchronous flag is set) assert_throws: function &quot;function ()
</del><ins>+FAIL XMLHttpRequest: The send() method: Throw a &quot;throw an &quot;NetworkError&quot; exception when Network error happens (synchronous flag is set) assert_throws: function &quot;function ()
</ins><span class="cx">             {
</span><span class="cx">                 xhr.send(&quot;Test Message&quot;);
</span><span class="cx">             }&quot; threw object &quot;AbortError (DOM Exception 20): The operation was aborted.&quot; that is not a DOMException NetworkError: property &quot;code&quot; is equal to 20, expected 19
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1importedw3cwebplatformtestsfetchapirequestrequestcacheonlyifcachedexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,16 +0,0 @@
</span><del>-
-PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for stale responses with Etag and stale response 
-PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for stale responses with date and stale response 
-PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for fresh responses with Etag and fresh response 
-PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and avoids revalidation for fresh responses with date and fresh response 
-PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and does not go to the network if a cached response is not found with Etag and fresh response 
-PASS RequestCache &quot;only-if-cached&quot; mode checks the cache for previously cached content and does not go to the network if a cached response is not found with date and fresh response 
-FAIL RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with Etag and fresh response promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
-FAIL RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with date and fresh response promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
-FAIL RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with Etag and stale response promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
-FAIL RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) uses cached same-origin redirects to same-origin content with date and stale response promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
-PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with Etag and fresh response 
-PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with date and fresh response 
-PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with Etag and stale response 
-PASS RequestCache &quot;only-if-cached&quot; (with &quot;same-origin&quot;) does not follow redirects across origins and rejects with date and stale response 
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1importedw3cwebplatformtestsfetchapirequestrequestcachereloadexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload-expected.txt (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload-expected.txt        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload-expected.txt        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -1,14 +1,14 @@
</span><span class="cx"> 
</span><span class="cx"> PASS RequestCache &quot;reload&quot; mode does not check the cache for previously cached content and goes to the network regardless with Etag and stale response 
</span><del>-PASS RequestCache &quot;reload&quot; mode does not check the cache for previously cached content and goes to the network regardless with date and stale response 
</del><ins>+PASS RequestCache &quot;reload&quot; mode does not check the cache for previously cached content and goes to the network regardless with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;reload&quot; mode does not check the cache for previously cached content and goes to the network regardless with Etag and fresh response 
</span><del>-PASS RequestCache &quot;reload&quot; mode does not check the cache for previously cached content and goes to the network regardless with date and fresh response 
</del><ins>+PASS RequestCache &quot;reload&quot; mode does not check the cache for previously cached content and goes to the network regardless with Last-Modified and fresh response 
</ins><span class="cx"> PASS RequestCache &quot;reload&quot; mode does store the response in the cache with Etag and stale response 
</span><del>-PASS RequestCache &quot;reload&quot; mode does store the response in the cache with date and stale response 
</del><ins>+PASS RequestCache &quot;reload&quot; mode does store the response in the cache with Last-Modified and stale response 
</ins><span class="cx"> FAIL RequestCache &quot;reload&quot; mode does store the response in the cache with Etag and fresh response assert_equals: expected 1 but got 2
</span><del>-FAIL RequestCache &quot;reload&quot; mode does store the response in the cache with date and fresh response assert_equals: expected 1 but got 2
</del><ins>+FAIL RequestCache &quot;reload&quot; mode does store the response in the cache with Last-Modified and fresh response assert_equals: expected 1 but got 2
</ins><span class="cx"> PASS RequestCache &quot;reload&quot; mode does store the response in the cache even if a previous response is already stored with Etag and stale response 
</span><del>-PASS RequestCache &quot;reload&quot; mode does store the response in the cache even if a previous response is already stored with date and stale response 
</del><ins>+PASS RequestCache &quot;reload&quot; mode does store the response in the cache even if a previous response is already stored with Last-Modified and stale response 
</ins><span class="cx"> PASS RequestCache &quot;reload&quot; mode does store the response in the cache even if a previous response is already stored with Etag and fresh response 
</span><del>-PASS RequestCache &quot;reload&quot; mode does store the response in the cache even if a previous response is already stored with date and fresh response 
</del><ins>+PASS RequestCache &quot;reload&quot; mode does store the response in the cache even if a previous response is already stored with Last-Modified and fresh response 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststestsoptionsjson"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tests-options.json (213881 => 213882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tests-options.json        2017-03-14 00:34:28 UTC (rev 213881)
+++ trunk/LayoutTests/tests-options.json        2017-03-14 00:38:18 UTC (rev 213882)
</span><span class="lines">@@ -8,6 +8,9 @@
</span><span class="cx">     &quot;http/tests/xmlhttprequest/timeout-greater-than-default-network-timeout.html&quot;: [
</span><span class="cx">         &quot;slow&quot;
</span><span class="cx">     ],
</span><ins>+    &quot;imported/w3c/web-platform-tests/IndexedDB/idb-binary-key-roundtrip.htm&quot;: [
+        &quot;slow&quot;
+    ],
</ins><span class="cx">     &quot;imported/w3c/web-platform-tests/IndexedDB/idbcursor-continuePrimaryKey-exception-order.htm&quot;: [
</span><span class="cx">         &quot;slow&quot;
</span><span class="cx">     ],
</span><span class="lines">@@ -29,6 +32,12 @@
</span><span class="cx">     &quot;imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_createIndex8-valid_keys.htm&quot;: [
</span><span class="cx">         &quot;slow&quot;
</span><span class="cx">     ],
</span><ins>+    &quot;imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_getKey.html&quot;: [
+        &quot;slow&quot;
+    ],
+    &quot;imported/w3c/web-platform-tests/IndexedDB/key-conversion-exceptions.htm&quot;: [
+        &quot;slow&quot;
+    ],
</ins><span class="cx">     &quot;imported/w3c/web-platform-tests/IndexedDB/key_valid.html&quot;: [
</span><span class="cx">         &quot;slow&quot;
</span><span class="cx">     ],
</span><span class="lines">@@ -170,6 +179,9 @@
</span><span class="cx">     &quot;imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-overridesexpires.html&quot;: [
</span><span class="cx">         &quot;slow&quot;
</span><span class="cx">     ],
</span><ins>+    &quot;imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused.html&quot;: [
+        &quot;slow&quot;
+    ],
</ins><span class="cx">     &quot;imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-simple.html&quot;: [
</span><span class="cx">         &quot;slow&quot;
</span><span class="cx">     ],
</span><span class="lines">@@ -437,6 +449,9 @@
</span><span class="cx">     &quot;imported/w3c/web-platform-tests/fetch/api/request/request-cache.html&quot;: [
</span><span class="cx">         &quot;slow&quot;
</span><span class="cx">     ],
</span><ins>+    &quot;imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota.html&quot;: [
+        &quot;slow&quot;
+    ],
</ins><span class="cx">     &quot;imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html&quot;: [
</span><span class="cx">         &quot;slow&quot;
</span><span class="cx">     ],
</span></span></pre>
</div>
</div>

</body>
</html>