<!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>[208105] 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/208105">208105</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2016-10-29 09:21:20 -0700 (Sat, 29 Oct 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Remove testharness.js/testharnessreport.js unnecessary copies
https://bugs.webkit.org/show_bug.cgi?id=164112

Patch by Youenn Fablet &lt;youenn@apple.com&gt; on 2016-10-29
Reviewed by Darin Adler.

Removing http/tests/w3c directory.
Contained tests are skipped in Mac, EFL and mark as failing in GTK.
These tests have not been modified since more than 3 years and are probably out-of-date compared to W3C wpt.

Updated other http/tests tests using w3c/tests/resources files to use directly /resources/ URLs.
These /resources/ URLs are using an alias to remove the need to have redundant copies.

Removed imported/blink/http/tests/resources testharness and testharnessreport.js since they are not used.
A few test files in imported/blink/http/tests use /resources/... URLs but they will not point to any of the removed files since the tests are run as file based.

* http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html:
* http/tests/media/resources/media-source/generate-config-change-tests.py:
* http/tests/preload/single_download_preload_runner.html:
* http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html:
* http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html:
* http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-uir-on-navigation.html:
* http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-site.html:
* http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-nested-frame.html:
* http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-window.html:
* http/tests/security/cross-origin-css-1.html:
* http/tests/security/cross-origin-css-2.html:
* http/tests/security/cross-origin-css-3.html:
* http/tests/security/cross-origin-css-4.html:
* http/tests/security/cross-origin-css-5.html:
* http/tests/security/cross-origin-css-6.html:
* http/tests/security/cross-origin-css-7.html:
* http/tests/security/cross-origin-css-8.html:
* http/tests/security/cross-origin-css-9.html:
* http/tests/security/cross-origin-css-in-quirks-1.html:
* http/tests/security/cross-origin-css-in-quirks-2.html:
* http/tests/security/cross-origin-css-in-quirks-3.html:
* http/tests/security/cross-origin-css-in-quirks-4.html:
* http/tests/security/cross-origin-css-in-quirks-5.html:
* http/tests/security/cross-origin-css-in-quirks-6.html:
* http/tests/security/cross-origin-css-in-quirks-7.html:
* http/tests/security/cross-origin-css-in-quirks-8.html:
* http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html:
* http/tests/security/resources/post-origin-to-parent.html:
* http/tests/security/same-origin-css-1.html:
* http/tests/security/same-origin-css-2.html:
* http/tests/security/same-origin-css-3.html:
* http/tests/security/same-origin-css-4.html:
* http/tests/security/same-origin-css-5.html:
* http/tests/security/same-origin-css-6.html:
* http/tests/security/same-origin-css-7.html:
* http/tests/security/same-origin-css-8.html:
* http/tests/security/same-origin-css-in-quirks.html:
* http/tests/security/set-domain-remove-subdomain-for-ip-address.html:
* http/tests/w3c/README: Removed.
* http/tests/w3c/resources/WebIDLParser.js: Removed.
* http/tests/w3c/resources/canvas-tests.css: Removed.
* http/tests/w3c/resources/canvas-tests.js: Removed.
* http/tests/w3c/resources/idlharness.js: Removed.
* http/tests/w3c/resources/testharness.css: Removed.
* http/tests/w3c/resources/testharness.js: Removed.
* http/tests/w3c/resources/testharnessreport.js: Removed.
* http/tests/w3c/webperf/approved/HighResolutionTime/basic-expected.txt: Removed.
* http/tests/w3c/webperf/approved/HighResolutionTime/basic.html: Removed.
* http/tests/w3c/webperf/approved/HighResolutionTime/monotonic-clock-expected.txt: Removed.
* http/tests/w3c/webperf/approved/HighResolutionTime/monotonic-clock.html: Removed.
* http/tests/w3c/webperf/approved/HighResolutionTime/resources/now_frame.html: Removed.
* http/tests/w3c/webperf/approved/HighResolutionTime/test_cross_frame_start-expected.txt: Removed.
* http/tests/w3c/webperf/approved/HighResolutionTime/test_cross_frame_start.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_document_open-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_document_open.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_document_readiness_exist-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_document_readiness_exist.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigate_within_document-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigate_within_document.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_attributes_exist-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_attributes_exist.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_redirectCount_none-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_redirectCount_none.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_backforward-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_backforward.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_enums-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_enums.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_reload-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_reload.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_no_previous_document-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_no_previous_document.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_readwrite-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_readwrite.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_exist-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_exist.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_client_redirect-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_client_redirect.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_reload-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_reload.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_server_redirect-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_server_redirect.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect.html: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_unique_performance_objects-expected.txt: Removed.
* http/tests/w3c/webperf/approved/navigation-timing/html/test_unique_performance_objects.html: Removed.
* http/tests/w3c/webperf/resources/Ahem.ttf: Removed.
* http/tests/w3c/webperf/resources/all_resource_types.htm: Removed.
* http/tests/w3c/webperf/resources/blank_image.png: Removed.
* http/tests/w3c/webperf/resources/blank_page_green.htm: Removed.
* http/tests/w3c/webperf/resources/blank_page_green_with_allow_timing.php: Removed.
* http/tests/w3c/webperf/resources/blank_page_green_with_onunload.htm: Removed.
* http/tests/w3c/webperf/resources/blank_page_meta_redirect.htm: Removed.
* http/tests/w3c/webperf/resources/blank_page_unload.htm: Removed.
* http/tests/w3c/webperf/resources/blank_page_yellow.htm: Removed.
* http/tests/w3c/webperf/resources/blank_page_yellow_with_onunload.htm: Removed.
* http/tests/w3c/webperf/resources/empty_script.js: Removed.
* http/tests/w3c/webperf/resources/generate_resource.php: Removed.
* http/tests/w3c/webperf/resources/gray_bg.css: Removed.
* http/tests/w3c/webperf/resources/green_frame.htm: Removed.
* http/tests/w3c/webperf/resources/inject_resource_test.html: Removed.
* http/tests/w3c/webperf/resources/nested.css: Removed.
* http/tests/w3c/webperf/resources/pagevistestharness.js: Removed.
* http/tests/w3c/webperf/resources/redirect.php: Removed.
* http/tests/w3c/webperf/resources/webperftestharness.js: Removed.
* http/tests/w3c/webperf/resources/webperftestharnessextension.js: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_attribute_order-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_attribute_order.html: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_cached-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_cached.html: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_connection_reuse-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_connection_reuse.html: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_dynamic_insertion-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_dynamic_insertion.html: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_frame_initiator_type-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_frame_initiator_type.html: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_iframe_self_navigation-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_iframe_self_navigation.html: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_data_url-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_data_url.html: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_failures-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_failures.html: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_initiator_types-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_initiator_types.html: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_redirects-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_redirects.html: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_reparenting-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_reparenting.html: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_script_types-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_script_types.html: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request.html: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request.html: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMarks-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMarks.html: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMeasures-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMeasures.html: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type.html: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark.html: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark_exception-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark_exception.html: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure.html: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_associate_with_navigation_timing-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_associate_with_navigation_timing.html: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception.html: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_method_exist-expected.txt: Removed.
* http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_method_exist.html: Removed.
* http/tests/xmlhttprequest/readystatechange-and-abort.html:
* http/tests/xmlhttprequest/response-json-and-readystate.html:
* http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html:
* http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html:
* imported/blink/http/tests/resources/testharness.js: Removed.
* imported/blink/http/tests/resources/testharnessreport.js: Removed.
* platform/gtk/TestExpectations:
* platform/ios-simulator/TestExpectations:
* platform/mac/TestExpectations:
* platform/win/TestExpectations:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestshttptestsmediamediasourcemediasourceplaythenseekbackwithremotecontrolhtml">trunk/LayoutTests/http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html</a></li>
<li><a href="#trunkLayoutTestshttptestsmediaresourcesmediasourcegenerateconfigchangetestspy">trunk/LayoutTests/http/tests/media/resources/media-source/generate-config-change-tests.py</a></li>
<li><a href="#trunkLayoutTestshttptestspreloadsingle_download_preload_runnerhtml">trunk/LayoutTests/http/tests/preload/single_download_preload_runner.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincss1html">trunk/LayoutTests/http/tests/security/cross-origin-css-1.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincss2html">trunk/LayoutTests/http/tests/security/cross-origin-css-2.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincss3html">trunk/LayoutTests/http/tests/security/cross-origin-css-3.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincss4html">trunk/LayoutTests/http/tests/security/cross-origin-css-4.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincss5html">trunk/LayoutTests/http/tests/security/cross-origin-css-5.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincss6html">trunk/LayoutTests/http/tests/security/cross-origin-css-6.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincss7html">trunk/LayoutTests/http/tests/security/cross-origin-css-7.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincss8html">trunk/LayoutTests/http/tests/security/cross-origin-css-8.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincss9html">trunk/LayoutTests/http/tests/security/cross-origin-css-9.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincssinquirks1html">trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-1.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincssinquirks2html">trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-2.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincssinquirks3html">trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-3.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincssinquirks4html">trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-4.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincssinquirks5html">trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-5.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincssinquirks6html">trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-6.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincssinquirks7html">trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-7.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritycrossorigincssinquirks8html">trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-8.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritysameorigincss1html">trunk/LayoutTests/http/tests/security/same-origin-css-1.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritysameorigincss2html">trunk/LayoutTests/http/tests/security/same-origin-css-2.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritysameorigincss3html">trunk/LayoutTests/http/tests/security/same-origin-css-3.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritysameorigincss4html">trunk/LayoutTests/http/tests/security/same-origin-css-4.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritysameorigincss5html">trunk/LayoutTests/http/tests/security/same-origin-css-5.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritysameorigincss6html">trunk/LayoutTests/http/tests/security/same-origin-css-6.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritysameorigincss7html">trunk/LayoutTests/http/tests/security/same-origin-css-7.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritysameorigincss8html">trunk/LayoutTests/http/tests/security/same-origin-css-8.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecuritysameorigincssinquirkshtml">trunk/LayoutTests/http/tests/security/same-origin-css-in-quirks.html</a></li>
<li><a href="#trunkLayoutTestshttptestsxmlhttprequestreadystatechangeandaborthtml">trunk/LayoutTests/http/tests/xmlhttprequest/readystatechange-and-abort.html</a></li>
<li><a href="#trunkLayoutTestshttptestsxmlhttprequestresponsejsonandreadystatehtml">trunk/LayoutTests/http/tests/xmlhttprequest/response-json-and-readystate.html</a></li>
<li><a href="#trunkLayoutTestshttptestsxmlhttprequestxmlhttprequestopenmethodallowedhtml">trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html</a></li>
<li><a href="#trunkLayoutTestshttptestsxmlhttprequestxmlhttprequestopenmethodcaseinsensitivehtml">trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html</a></li>
<li><a href="#trunkLayoutTestsplatformgtkTestExpectations">trunk/LayoutTests/platform/gtk/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorTestExpectations">trunk/LayoutTests/platform/ios-simulator/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformmacTestExpectations">trunk/LayoutTests/platform/mac/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformwinTestExpectations">trunk/LayoutTests/platform/win/TestExpectations</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li>trunk/LayoutTests/http/tests/w3c/</li>
<li><a href="#trunkLayoutTestsimportedblinkhttptestsresourcestestharnessjs">trunk/LayoutTests/imported/blink/http/tests/resources/testharness.js</a></li>
<li><a href="#trunkLayoutTestsimportedblinkhttptestsresourcestestharnessreportjs">trunk/LayoutTests/imported/blink/http/tests/resources/testharnessreport.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/ChangeLog        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -1,5 +1,202 @@
</span><span class="cx"> 2016-10-29  Youenn Fablet  &lt;youenn@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Remove testharness.js/testharnessreport.js unnecessary copies
+        https://bugs.webkit.org/show_bug.cgi?id=164112
+
+        Reviewed by Darin Adler.
+
+        Removing http/tests/w3c directory.
+        Contained tests are skipped in Mac, EFL and mark as failing in GTK.
+        These tests have not been modified since more than 3 years and are probably out-of-date compared to W3C wpt.
+
+        Updated other http/tests tests using w3c/tests/resources files to use directly /resources/ URLs.
+        These /resources/ URLs are using an alias to remove the need to have redundant copies.
+
+        Removed imported/blink/http/tests/resources testharness and testharnessreport.js since they are not used.
+        A few test files in imported/blink/http/tests use /resources/... URLs but they will not point to any of the removed files since the tests are run as file based.
+
+        * http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html:
+        * http/tests/media/resources/media-source/generate-config-change-tests.py:
+        * http/tests/preload/single_download_preload_runner.html:
+        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html:
+        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html:
+        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-uir-on-navigation.html:
+        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-site.html:
+        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-nested-frame.html:
+        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-window.html:
+        * http/tests/security/cross-origin-css-1.html:
+        * http/tests/security/cross-origin-css-2.html:
+        * http/tests/security/cross-origin-css-3.html:
+        * http/tests/security/cross-origin-css-4.html:
+        * http/tests/security/cross-origin-css-5.html:
+        * http/tests/security/cross-origin-css-6.html:
+        * http/tests/security/cross-origin-css-7.html:
+        * http/tests/security/cross-origin-css-8.html:
+        * http/tests/security/cross-origin-css-9.html:
+        * http/tests/security/cross-origin-css-in-quirks-1.html:
+        * http/tests/security/cross-origin-css-in-quirks-2.html:
+        * http/tests/security/cross-origin-css-in-quirks-3.html:
+        * http/tests/security/cross-origin-css-in-quirks-4.html:
+        * http/tests/security/cross-origin-css-in-quirks-5.html:
+        * http/tests/security/cross-origin-css-in-quirks-6.html:
+        * http/tests/security/cross-origin-css-in-quirks-7.html:
+        * http/tests/security/cross-origin-css-in-quirks-8.html:
+        * http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html:
+        * http/tests/security/resources/post-origin-to-parent.html:
+        * http/tests/security/same-origin-css-1.html:
+        * http/tests/security/same-origin-css-2.html:
+        * http/tests/security/same-origin-css-3.html:
+        * http/tests/security/same-origin-css-4.html:
+        * http/tests/security/same-origin-css-5.html:
+        * http/tests/security/same-origin-css-6.html:
+        * http/tests/security/same-origin-css-7.html:
+        * http/tests/security/same-origin-css-8.html:
+        * http/tests/security/same-origin-css-in-quirks.html:
+        * http/tests/security/set-domain-remove-subdomain-for-ip-address.html:
+        * http/tests/w3c/README: Removed.
+        * http/tests/w3c/resources/WebIDLParser.js: Removed.
+        * http/tests/w3c/resources/canvas-tests.css: Removed.
+        * http/tests/w3c/resources/canvas-tests.js: Removed.
+        * http/tests/w3c/resources/idlharness.js: Removed.
+        * http/tests/w3c/resources/testharness.css: Removed.
+        * http/tests/w3c/resources/testharness.js: Removed.
+        * http/tests/w3c/resources/testharnessreport.js: Removed.
+        * http/tests/w3c/webperf/approved/HighResolutionTime/basic-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/HighResolutionTime/basic.html: Removed.
+        * http/tests/w3c/webperf/approved/HighResolutionTime/monotonic-clock-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/HighResolutionTime/monotonic-clock.html: Removed.
+        * http/tests/w3c/webperf/approved/HighResolutionTime/resources/now_frame.html: Removed.
+        * http/tests/w3c/webperf/approved/HighResolutionTime/test_cross_frame_start-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/HighResolutionTime/test_cross_frame_start.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_document_open-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_document_open.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_document_readiness_exist-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_document_readiness_exist.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigate_within_document-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigate_within_document.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_attributes_exist-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_attributes_exist.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_redirectCount_none-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_redirectCount_none.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_backforward-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_backforward.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_enums-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_enums.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_reload-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_reload.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_no_previous_document-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_no_previous_document.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_readwrite-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_readwrite.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_exist-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_exist.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_client_redirect-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_client_redirect.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_reload-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_reload.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_server_redirect-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_server_redirect.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect.html: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_unique_performance_objects-expected.txt: Removed.
+        * http/tests/w3c/webperf/approved/navigation-timing/html/test_unique_performance_objects.html: Removed.
+        * http/tests/w3c/webperf/resources/Ahem.ttf: Removed.
+        * http/tests/w3c/webperf/resources/all_resource_types.htm: Removed.
+        * http/tests/w3c/webperf/resources/blank_image.png: Removed.
+        * http/tests/w3c/webperf/resources/blank_page_green.htm: Removed.
+        * http/tests/w3c/webperf/resources/blank_page_green_with_allow_timing.php: Removed.
+        * http/tests/w3c/webperf/resources/blank_page_green_with_onunload.htm: Removed.
+        * http/tests/w3c/webperf/resources/blank_page_meta_redirect.htm: Removed.
+        * http/tests/w3c/webperf/resources/blank_page_unload.htm: Removed.
+        * http/tests/w3c/webperf/resources/blank_page_yellow.htm: Removed.
+        * http/tests/w3c/webperf/resources/blank_page_yellow_with_onunload.htm: Removed.
+        * http/tests/w3c/webperf/resources/empty_script.js: Removed.
+        * http/tests/w3c/webperf/resources/generate_resource.php: Removed.
+        * http/tests/w3c/webperf/resources/gray_bg.css: Removed.
+        * http/tests/w3c/webperf/resources/green_frame.htm: Removed.
+        * http/tests/w3c/webperf/resources/inject_resource_test.html: Removed.
+        * http/tests/w3c/webperf/resources/nested.css: Removed.
+        * http/tests/w3c/webperf/resources/pagevistestharness.js: Removed.
+        * http/tests/w3c/webperf/resources/redirect.php: Removed.
+        * http/tests/w3c/webperf/resources/webperftestharness.js: Removed.
+        * http/tests/w3c/webperf/resources/webperftestharnessextension.js: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_attribute_order-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_attribute_order.html: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_cached-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_cached.html: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_connection_reuse-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_connection_reuse.html: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_dynamic_insertion-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_dynamic_insertion.html: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_frame_initiator_type-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_frame_initiator_type.html: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_iframe_self_navigation-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_iframe_self_navigation.html: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_data_url-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_data_url.html: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_failures-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_failures.html: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_initiator_types-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_initiator_types.html: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_redirects-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_redirects.html: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_reparenting-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_reparenting.html: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_script_types-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_script_types.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMarks-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMarks.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMeasures-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMeasures.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark_exception-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark_exception.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_associate_with_navigation_timing-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_associate_with_navigation_timing.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception.html: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_method_exist-expected.txt: Removed.
+        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_method_exist.html: Removed.
+        * http/tests/xmlhttprequest/readystatechange-and-abort.html:
+        * http/tests/xmlhttprequest/response-json-and-readystate.html:
+        * http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html:
+        * http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html:
+        * imported/blink/http/tests/resources/testharness.js: Removed.
+        * imported/blink/http/tests/resources/testharnessreport.js: Removed.
+        * platform/gtk/TestExpectations:
+        * platform/ios-simulator/TestExpectations:
+        * platform/mac/TestExpectations:
+        * platform/win/TestExpectations:
+
+2016-10-29  Youenn Fablet  &lt;youenn@apple.com&gt;
+
</ins><span class="cx">         REGRESSION (r207754): LayoutTest http/tests/security/svg-image-with-css-cross-domain.html is a flaky failure
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=163922
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsmediamediasourcemediasourceplaythenseekbackwithremotecontrolhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -1,8 +1,8 @@
</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;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-        &lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+        &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+        &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx">         &lt;script src=&quot;mediasource-util.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;/head&gt;
</span><span class="cx">     &lt;body&gt;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsmediaresourcesmediasourcegenerateconfigchangetestspy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/media/resources/media-source/generate-config-change-tests.py (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/media/resources/media-source/generate-config-change-tests.py        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/media/resources/media-source/generate-config-change-tests.py        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -79,11 +79,11 @@
</span><span class="cx"> HTML_TEMPLATE = &quot;&quot;&quot;&lt;!DOCTYPE html&gt;
</span><span class="cx"> &lt;html&gt;
</span><span class="cx">     &lt;head&gt;
</span><del>-        &lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-        &lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+        &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+        &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx">         &lt;script src=&quot;mediasource-util.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">         &lt;script src=&quot;mediasource-config-changes.js&quot;&gt;&lt;/script&gt;
</span><del>-        &lt;link rel=&quot;stylesheet&quot; href=&quot;/w3c/resources/testharness.css&quot;&gt;
</del><ins>+        &lt;link rel=&quot;stylesheet&quot; href=&quot;/resources/testharness.css&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="trunkLayoutTestshttptestspreloadsingle_download_preload_runnerhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/preload/single_download_preload_runner.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/preload/single_download_preload_runner.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/preload/single_download_preload_runner.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> &lt;!DOCTYPE html&gt;
</span><del>-&lt;script src=&quot;../w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;../w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script&gt;
</span><span class="cx">     if (window.internals) {
</span><span class="cx">         internals.setLinkPreloadSupport(true);
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincss1html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-1.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-1.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-1.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link rel=&quot;stylesheet&quot; href=&quot;/resources/redirect.php?url=http://localhost:8000/security/resources/xorigincss1.html&quot;&gt;&lt;/link&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincss2html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-2.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-2.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-2.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/resources/redirect.php?url=http://localhost:8000/security/resources/xorigincss2.html&quot;&gt;&lt;/link&gt;
</span><span class="cx"> &lt;script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincss3html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-3.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-3.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-3.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link rel=&quot;stylesheet&quot;
</span><span class="cx">       href=&quot;/resources/redirect.php?url=http://localhost:8000/security/resources/xorigincss1.css&quot;&gt;&lt;/link&gt;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincss4html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-4.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-4.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-4.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link rel=&quot;stylesheet&quot; href=&quot;resources/xorigincss3.html&quot;&gt;&lt;/link&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincss5html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-5.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-5.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-5.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;style&gt;
</span><span class="cx"> @import &quot;/resources/redirect.php?url=http://localhost:8000/security/resources/xorigincss4.html&quot;;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincss6html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-6.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-6.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-6.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;style&gt;
</span><span class="cx"> @import &quot;/resources/redirect.php?url=http://localhost:8000/security/resources/xorigincss2.css&quot;;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincss7html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-7.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-7.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-7.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;style&gt;
</span><span class="cx"> @import &quot;resources/xorigincss5.html&quot;;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincss8html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-8.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-8.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-8.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;style&gt;
</span><span class="cx"> #data-background-url {
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincss9html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-9.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-9.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-9.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -3,8 +3,8 @@
</span><span class="cx"> &lt;head&gt;
</span><span class="cx"> &lt;title&gt;Cross-origin CSS: Origin header should be set when fetching stylesheet in cors mode&lt;/title&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link id=&quot;link-id0&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/security/resources/get-css-if-origin-header.php?id=id0&quot;&gt;&lt;/link&gt;
</span><span class="cx"> &lt;link id=&quot;link-id1&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;http://localhost:8000/security/resources/get-css-if-origin-header.php?id=id1&quot;&gt;&lt;/link&gt;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincssinquirks1html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-1.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-1.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-1.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -11,8 +11,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link rel=&quot;stylesheet&quot; href=&quot;/resources/redirect.php?url=http://localhost:8000/security/resources/xorigincss1.html&quot;&gt;&lt;/link&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincssinquirks2html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-2.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-2.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-2.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -11,8 +11,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/resources/redirect.php?url=http://localhost:8000/security/resources/xorigincss2.html&quot;&gt;&lt;/link&gt;
</span><span class="cx"> &lt;script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincssinquirks3html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-3.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-3.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-3.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -11,8 +11,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link rel=&quot;stylesheet&quot;
</span><span class="cx">       href=&quot;/resources/redirect.php?url=http://localhost:8000/security/resources/xorigincss1.css&quot;&gt;&lt;/link&gt;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincssinquirks4html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-4.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-4.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-4.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -11,8 +11,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link rel=&quot;stylesheet&quot; href=&quot;resources/xorigincss3.html&quot;&gt;&lt;/link&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincssinquirks5html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-5.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-5.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-5.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -11,8 +11,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;style&gt;
</span><span class="cx"> @import &quot;/resources/redirect.php?url=http://localhost:8000/security/resources/xorigincss4.html&quot;;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincssinquirks6html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-6.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-6.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-6.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -11,8 +11,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;style&gt;
</span><span class="cx"> @import &quot;/resources/redirect.php?url=http://localhost:8000/security/resources/xorigincss2.css&quot;;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincssinquirks7html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-7.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-7.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-7.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -11,8 +11,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;style&gt;
</span><span class="cx"> @import &quot;resources/xorigincss5.html&quot;;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritycrossorigincssinquirks8html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-8.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-8.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/cross-origin-css-in-quirks-8.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -11,8 +11,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;style&gt;
</span><span class="cx"> #data-background-url {
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritysameorigincss1html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/same-origin-css-1.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/same-origin-css-1.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/same-origin-css-1.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link rel=&quot;stylesheet&quot; href=&quot;/resources/redirect.php?url=/security/resources/xorigincss1.html&quot;&gt;&lt;/link&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritysameorigincss2html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/same-origin-css-2.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/same-origin-css-2.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/same-origin-css-2.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/resources/redirect.php?url=/security/resources/xorigincss2.html&quot;&gt;&lt;/link&gt;
</span><span class="cx"> &lt;script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritysameorigincss3html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/same-origin-css-3.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/same-origin-css-3.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/same-origin-css-3.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link rel=&quot;stylesheet&quot;
</span><span class="cx">       href=&quot;/resources/redirect.php?url=/security/resources/xorigincss1.css&quot;&gt;&lt;/link&gt;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritysameorigincss4html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/same-origin-css-4.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/same-origin-css-4.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/same-origin-css-4.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -7,8 +7,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link rel=&quot;stylesheet&quot; href=&quot;resources/xorigincss3.html&quot;&gt;&lt;/link&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritysameorigincss5html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/same-origin-css-5.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/same-origin-css-5.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/same-origin-css-5.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;style&gt;
</span><span class="cx"> @import &quot;/resources/redirect.php?url=/security/resources/xorigincss4.html&quot;;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritysameorigincss6html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/same-origin-css-6.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/same-origin-css-6.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/same-origin-css-6.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;style&gt;
</span><span class="cx"> @import &quot;/resources/redirect.php?url=/security/resources/xorigincss2.css&quot;;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritysameorigincss7html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/same-origin-css-7.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/same-origin-css-7.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/same-origin-css-7.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;style&gt;
</span><span class="cx"> @import &quot;resources/xorigincss5.html&quot;;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritysameorigincss8html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/same-origin-css-8.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/same-origin-css-8.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/same-origin-css-8.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;style&gt;
</span><span class="cx"> #data-background-url {
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecuritysameorigincssinquirkshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/same-origin-css-in-quirks.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/same-origin-css-in-quirks.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/security/same-origin-css-in-quirks.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -11,8 +11,8 @@
</span><span class="cx"> // the console warning would not be shown and the test would be flaky.
</span><span class="cx"> internals.pruneMemoryCacheToSize(0);
</span><span class="cx"> &lt;/script&gt;
</span><del>-&lt;script src=&quot;/w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;/w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;link rel=&quot;stylesheet&quot;
</span><span class="cx">       href=&quot;/resources/redirect.php?url=/security/resources/xorigincss1.html&quot;&gt;&lt;/link&gt;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsxmlhttprequestreadystatechangeandaborthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/xmlhttprequest/readystatechange-and-abort.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/xmlhttprequest/readystatechange-and-abort.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/readystatechange-and-abort.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><span class="cx"> &lt;!DOCTYPE html&gt;
</span><span class="cx"> &lt;html&gt;
</span><span class="cx"> &lt;body&gt;
</span><del>-&lt;script src=&quot;../w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;../w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script type=&quot;text/javascript&quot;&gt;
</span><span class="cx"> test(function()
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsxmlhttprequestresponsejsonandreadystatehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/xmlhttprequest/response-json-and-readystate.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/xmlhttprequest/response-json-and-readystate.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/response-json-and-readystate.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><span class="cx"> &lt;!DOCTYPE html&gt;
</span><span class="cx"> &lt;html&gt;
</span><span class="cx"> &lt;body&gt;
</span><del>-&lt;script src=&quot;../w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;../w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script type=&quot;text/javascript&quot;&gt;
</span><span class="cx"> var test = async_test(&quot;Test response of XMLHttpRequest with responseType set to 'json' for various readyState.&quot;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsxmlhttprequestxmlhttprequestopenmethodallowedhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -2,8 +2,8 @@
</span><span class="cx"> &lt;html&gt;
</span><span class="cx">   &lt;head&gt;
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: open() - allowed case in/sensitive methods test&lt;/title&gt;
</span><del>-    &lt;script src=&quot;../w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-    &lt;script src=&quot;../w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;p&gt;Valid methods per step-5 of http://xhr.spec.whatwg.org/#the-open()-method.&lt;/p&gt;
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsxmlhttprequestxmlhttprequestopenmethodcaseinsensitivehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -2,8 +2,8 @@
</span><span class="cx"> &lt;html&gt;
</span><span class="cx">   &lt;head&gt;
</span><span class="cx">     &lt;title&gt;XMLHttpRequest: open() - case-insensitive methods test&lt;/title&gt;
</span><del>-    &lt;script src=&quot;../w3c/resources/testharness.js&quot;&gt;&lt;/script&gt;
-    &lt;script src=&quot;../w3c/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</del><ins>+    &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx">   &lt;/head&gt;
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;p&gt;non-standard method names should be returned as is per step-5 of http://xhr.spec.whatwg.org/#the-open()-method.&lt;/p&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedblinkhttptestsresourcestestharnessjs"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/imported/blink/http/tests/resources/testharness.js (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/blink/http/tests/resources/testharness.js        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/imported/blink/http/tests/resources/testharness.js        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -1,2640 +0,0 @@
</span><del>-/*global self*/
-/*jshint latedef: nofunc*/
-/*
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
-*/
-
-/* Documentation is in docs/api.md */
-
-(function ()
-{
-    var debug = false;
-    // default timeout is 10 seconds, test can override if needed
-    var settings = {
-        output:true,
-        harness_timeout:{
-            &quot;normal&quot;:10000,
-            &quot;long&quot;:60000
-        },
-        test_timeout:null,
-        message_events: [&quot;start&quot;, &quot;test_state&quot;, &quot;result&quot;, &quot;completion&quot;]
-    };
-
-    var xhtml_ns = &quot;http://www.w3.org/1999/xhtml&quot;;
-
-    /*
-     * TestEnvironment is an abstraction for the environment in which the test
-     * harness is used. Each implementation of a test environment has to provide
-     * the following interface:
-     *
-     * interface TestEnvironment {
-     *   // Invoked after the global 'tests' object has been created and it's
-     *   // safe to call add_*_callback() to register event handlers.
-     *   void on_tests_ready();
-     *
-     *   // Invoked after setup() has been called to notify the test environment
-     *   // of changes to the test harness properties.
-     *   void on_new_harness_properties(object properties);
-     *
-     *   // Should return a new unique default test name.
-     *   DOMString next_default_test_name();
-     *
-     *   // Should return the test harness timeout duration in milliseconds.
-     *   float test_timeout();
-     *
-     *   // Should return the global scope object.
-     *   object global_scope();
-     * };
-     */
-
-    /*
-     * A test environment with a DOM. The global object is 'window'. By default
-     * test results are displayed in a table. Any parent windows receive
-     * callbacks or messages via postMessage() when test events occur. See
-     * apisample11.html and apisample12.html.
-     */
-    function WindowTestEnvironment() {
-        this.name_counter = 0;
-        this.window_cache = null;
-        this.output_handler = null;
-        this.all_loaded = false;
-        var this_obj = this;
-        this.message_events = [];
-
-        this.message_functions = {
-            start: [add_start_callback, remove_start_callback,
-                    function (properties) {
-                        this_obj._dispatch(&quot;start_callback&quot;, [properties],
-                                           {type: &quot;start&quot;, properties: properties});
-                    }],
-
-            test_state: [add_test_state_callback, remove_test_state_callback,
-                         function(test) {
-                             this_obj._dispatch(&quot;test_state_callback&quot;, [test],
-                                                {type: &quot;test_state&quot;,
-                                                 test: test.structured_clone()});
-                         }],
-            result: [add_result_callback, remove_result_callback,
-                     function (test) {
-                         this_obj.output_handler.show_status();
-                         this_obj._dispatch(&quot;result_callback&quot;, [test],
-                                            {type: &quot;result&quot;,
-                                             test: test.structured_clone()});
-                     }],
-            completion: [add_completion_callback, remove_completion_callback,
-                         function (tests, harness_status) {
-                             var cloned_tests = map(tests, function(test) {
-                                 return test.structured_clone();
-                             });
-                             this_obj._dispatch(&quot;completion_callback&quot;, [tests, harness_status],
-                                                {type: &quot;complete&quot;,
-                                                 tests: cloned_tests,
-                                                 status: harness_status.structured_clone()});
-                         }]
-        }
-
-        on_event(window, 'load', function() {
-            this_obj.all_loaded = true;
-        });
-    }
-
-    WindowTestEnvironment.prototype._dispatch = function(selector, callback_args, message_arg) {
-        this._forEach_windows(
-                function(w, same_origin) {
-                    if (same_origin) {
-                        try {
-                            var has_selector = selector in w;
-                        } catch(e) {
-                            // If document.domain was set at some point same_origin can be
-                            // wrong and the above will fail.
-                            has_selector = false;
-                        }
-                        if (has_selector) {
-                            try {
-                                w[selector].apply(undefined, callback_args);
-                            } catch (e) {
-                                if (debug) {
-                                    throw e;
-                                }
-                            }
-                        }
-                    }
-                    if (supports_post_message(w) &amp;&amp; w !== self) {
-                        w.postMessage(message_arg, &quot;*&quot;);
-                    }
-                });
-    };
-
-    WindowTestEnvironment.prototype._forEach_windows = function(callback) {
-        // Iterate of the the windows [self ... top, opener]. The callback is passed
-        // two objects, the first one is the windows object itself, the second one
-        // is a boolean indicating whether or not its on the same origin as the
-        // current window.
-        var cache = this.window_cache;
-        if (!cache) {
-            cache = [[self, true]];
-            var w = self;
-            var i = 0;
-            var so;
-            var origins = location.ancestorOrigins;
-            while (w != w.parent) {
-                w = w.parent;
-                // In WebKit, calls to parent windows' properties that aren't on the same
-                // origin cause an error message to be displayed in the error console but
-                // don't throw an exception. This is a deviation from the current HTML5
-                // spec. See: https://bugs.webkit.org/show_bug.cgi?id=43504
-                // The problem with WebKit's behavior is that it pollutes the error console
-                // with error messages that can't be caught.
-                //
-                // This issue can be mitigated by relying on the (for now) proprietary
-                // `location.ancestorOrigins` property which returns an ordered list of
-                // the origins of enclosing windows. See:
-                // http://trac.webkit.org/changeset/113945.
-                if (origins) {
-                    so = (location.origin == origins[i]);
-                } else {
-                    so = is_same_origin(w);
-                }
-                cache.push([w, so]);
-                i++;
-            }
-            w = window.opener;
-            if (w) {
-                // window.opener isn't included in the `location.ancestorOrigins` prop.
-                // We'll just have to deal with a simple check and an error msg on WebKit
-                // browsers in this case.
-                cache.push([w, is_same_origin(w)]);
-            }
-            this.window_cache = cache;
-        }
-
-        forEach(cache,
-                function(a) {
-                    callback.apply(null, a);
-                });
-    };
-
-    WindowTestEnvironment.prototype.on_tests_ready = function() {
-        var output = new Output();
-        this.output_handler = output;
-
-        var this_obj = this;
-
-        add_start_callback(function (properties) {
-            this_obj.output_handler.init(properties);
-        });
-
-        add_test_state_callback(function(test) {
-            this_obj.output_handler.show_status();
-        });
-
-        add_result_callback(function (test) {
-            this_obj.output_handler.show_status();
-        });
-
-        add_completion_callback(function (tests, harness_status) {
-            this_obj.output_handler.show_results(tests, harness_status);
-        });
-        this.setup_messages(settings.message_events);
-    };
-
-    WindowTestEnvironment.prototype.setup_messages = function(new_events) {
-        var this_obj = this;
-        forEach(settings.message_events, function(x) {
-            var current_dispatch = this_obj.message_events.indexOf(x) !== -1;
-            var new_dispatch = new_events.indexOf(x) !== -1;
-            if (!current_dispatch &amp;&amp; new_dispatch) {
-                this_obj.message_functions[x][0](this_obj.message_functions[x][2]);
-            } else if (current_dispatch &amp;&amp; !new_dispatch) {
-                this_obj.message_functions[x][1](this_obj.message_functions[x][2]);
-            }
-        });
-        this.message_events = new_events;
-    }
-
-    WindowTestEnvironment.prototype.next_default_test_name = function() {
-        //Don't use document.title to work around an Opera bug in XHTML documents
-        var title = document.getElementsByTagName(&quot;title&quot;)[0];
-        var prefix = (title &amp;&amp; title.firstChild &amp;&amp; title.firstChild.data) || &quot;Untitled&quot;;
-        var suffix = this.name_counter &gt; 0 ? &quot; &quot; + this.name_counter : &quot;&quot;;
-        this.name_counter++;
-        return prefix + suffix;
-    };
-
-    WindowTestEnvironment.prototype.on_new_harness_properties = function(properties) {
-        this.output_handler.setup(properties);
-        if (properties.hasOwnProperty(&quot;message_events&quot;)) {
-            this.setup_messages(properties.message_events);
-        }
-    };
-
-    WindowTestEnvironment.prototype.add_on_loaded_callback = function(callback) {
-        on_event(window, 'load', callback);
-    };
-
-    WindowTestEnvironment.prototype.test_timeout = function() {
-        var metas = document.getElementsByTagName(&quot;meta&quot;);
-        for (var i = 0; i &lt; metas.length; i++) {
-            if (metas[i].name == &quot;timeout&quot;) {
-                if (metas[i].content == &quot;long&quot;) {
-                    return settings.harness_timeout.long;
-                }
-                break;
-            }
-        }
-        return settings.harness_timeout.normal;
-    };
-
-    WindowTestEnvironment.prototype.global_scope = function() {
-        return window;
-    };
-
-    /*
-     * Base TestEnvironment implementation for a generic web worker.
-     *
-     * Workers accumulate test results. One or more clients can connect and
-     * retrieve results from a worker at any time.
-     *
-     * WorkerTestEnvironment supports communicating with a client via a
-     * MessagePort.  The mechanism for determining the appropriate MessagePort
-     * for communicating with a client depends on the type of worker and is
-     * implemented by the various specializations of WorkerTestEnvironment
-     * below.
-     *
-     * A client document using testharness can use fetch_tests_from_worker() to
-     * retrieve results from a worker. See apisample16.html.
-     */
-    function WorkerTestEnvironment() {
-        this.name_counter = 0;
-        this.all_loaded = true;
-        this.message_list = [];
-        this.message_ports = [];
-    }
-
-    WorkerTestEnvironment.prototype._dispatch = function(message) {
-        this.message_list.push(message);
-        for (var i = 0; i &lt; this.message_ports.length; ++i)
-        {
-            this.message_ports[i].postMessage(message);
-        }
-    };
-
-    // The only requirement is that port has a postMessage() method. It doesn't
-    // have to be an instance of a MessagePort, and often isn't.
-    WorkerTestEnvironment.prototype._add_message_port = function(port) {
-        this.message_ports.push(port);
-        for (var i = 0; i &lt; this.message_list.length; ++i)
-        {
-            port.postMessage(this.message_list[i]);
-        }
-    };
-
-    WorkerTestEnvironment.prototype.next_default_test_name = function() {
-        var suffix = this.name_counter &gt; 0 ? &quot; &quot; + this.name_counter : &quot;&quot;;
-        this.name_counter++;
-        return &quot;Untitled&quot; + suffix;
-    };
-
-    WorkerTestEnvironment.prototype.on_new_harness_properties = function() {};
-
-    WorkerTestEnvironment.prototype.on_tests_ready = function() {
-        var this_obj = this;
-        add_start_callback(
-                function(properties) {
-                    this_obj._dispatch({
-                        type: &quot;start&quot;,
-                        properties: properties,
-                    });
-                });
-        add_test_state_callback(
-                function(test) {
-                    this_obj._dispatch({
-                        type: &quot;test_state&quot;,
-                        test: test.structured_clone()
-                    });
-                });
-        add_result_callback(
-                function(test) {
-                    this_obj._dispatch({
-                        type: &quot;result&quot;,
-                        test: test.structured_clone()
-                    });
-                });
-        add_completion_callback(
-                function(tests, harness_status) {
-                    this_obj._dispatch({
-                        type: &quot;complete&quot;,
-                        tests: map(tests,
-                            function(test) {
-                                return test.structured_clone();
-                            }),
-                        status: harness_status.structured_clone()
-                    });
-                });
-    };
-
-    WorkerTestEnvironment.prototype.add_on_loaded_callback = function() {};
-
-    WorkerTestEnvironment.prototype.test_timeout = function() {
-        // Tests running in a worker don't have a default timeout. I.e. all
-        // worker tests behave as if settings.explicit_timeout is true.
-        return null;
-    };
-
-    WorkerTestEnvironment.prototype.global_scope = function() {
-        return self;
-    };
-
-    /*
-     * Dedicated web workers.
-     * https://html.spec.whatwg.org/multipage/workers.html#dedicatedworkerglobalscope
-     *
-     * This class is used as the test_environment when testharness is running
-     * inside a dedicated worker.
-     */
-    function DedicatedWorkerTestEnvironment() {
-        WorkerTestEnvironment.call(this);
-        // self is an instance of DedicatedWorkerGlobalScope which exposes
-        // a postMessage() method for communicating via the message channel
-        // established when the worker is created.
-        this._add_message_port(self);
-    }
-    DedicatedWorkerTestEnvironment.prototype = Object.create(WorkerTestEnvironment.prototype);
-
-    DedicatedWorkerTestEnvironment.prototype.on_tests_ready = function() {
-        WorkerTestEnvironment.prototype.on_tests_ready.call(this);
-        // In the absence of an onload notification, we a require dedicated
-        // workers to explicitly signal when the tests are done.
-        tests.wait_for_finish = true;
-    };
-
-    /*
-     * Shared web workers.
-     * https://html.spec.whatwg.org/multipage/workers.html#sharedworkerglobalscope
-     *
-     * This class is used as the test_environment when testharness is running
-     * inside a shared web worker.
-     */
-    function SharedWorkerTestEnvironment() {
-        WorkerTestEnvironment.call(this);
-        var this_obj = this;
-        // Shared workers receive message ports via the 'onconnect' event for
-        // each connection.
-        self.addEventListener(&quot;connect&quot;,
-                function(message_event) {
-                    this_obj._add_message_port(message_event.source);
-                });
-    }
-    SharedWorkerTestEnvironment.prototype = Object.create(WorkerTestEnvironment.prototype);
-
-    SharedWorkerTestEnvironment.prototype.on_tests_ready = function() {
-        WorkerTestEnvironment.prototype.on_tests_ready.call(this);
-        // In the absence of an onload notification, we a require shared
-        // workers to explicitly signal when the tests are done.
-        tests.wait_for_finish = true;
-    };
-
-    /*
-     * Service workers.
-     * http://www.w3.org/TR/service-workers/
-     *
-     * This class is used as the test_environment when testharness is running
-     * inside a service worker.
-     */
-    function ServiceWorkerTestEnvironment() {
-        WorkerTestEnvironment.call(this);
-        this.all_loaded = false;
-        this.on_loaded_callback = null;
-        var this_obj = this;
-        self.addEventListener(&quot;message&quot;,
-                function(event) {
-                    if (event.data.type &amp;&amp; event.data.type === &quot;connect&quot;) {
-                        if (event.ports &amp;&amp; event.ports[0]) {
-                            // If a MessageChannel was passed, then use it to
-                            // send results back to the main window.  This
-                            // allows the tests to work even if the browser
-                            // does not fully support MessageEvent.source in
-                            // ServiceWorkers yet.
-                            this_obj._add_message_port(event.ports[0]);
-                            event.ports[0].start();
-                        } else {
-                            // If there is no MessageChannel, then attempt to
-                            // use the MessageEvent.source to send results
-                            // back to the main window.
-                            this_obj._add_message_port(event.source);
-                        }
-                    }
-                });
-
-        // The oninstall event is received after the service worker script and
-        // all imported scripts have been fetched and executed. It's the
-        // equivalent of an onload event for a document. All tests should have
-        // been added by the time this event is received, thus it's not
-        // necessary to wait until the onactivate event.
-        on_event(self, &quot;install&quot;,
-                function(event) {
-                    this_obj.all_loaded = true;
-                    if (this_obj.on_loaded_callback) {
-                        this_obj.on_loaded_callback();
-                    }
-                });
-    }
-    ServiceWorkerTestEnvironment.prototype = Object.create(WorkerTestEnvironment.prototype);
-
-    ServiceWorkerTestEnvironment.prototype.add_on_loaded_callback = function(callback) {
-        if (this.all_loaded) {
-            callback();
-        } else {
-            this.on_loaded_callback = callback;
-        }
-    };
-
-    function create_test_environment() {
-        if ('document' in self) {
-            return new WindowTestEnvironment();
-        }
-        if ('DedicatedWorkerGlobalScope' in self &amp;&amp;
-            self instanceof DedicatedWorkerGlobalScope) {
-            return new DedicatedWorkerTestEnvironment();
-        }
-        if ('SharedWorkerGlobalScope' in self &amp;&amp;
-            self instanceof SharedWorkerGlobalScope) {
-            return new SharedWorkerTestEnvironment();
-        }
-        if ('ServiceWorkerGlobalScope' in self &amp;&amp;
-            self instanceof ServiceWorkerGlobalScope) {
-            return new ServiceWorkerTestEnvironment();
-        }
-        throw new Error(&quot;Unsupported test environment&quot;);
-    }
-
-    var test_environment = create_test_environment();
-
-    function is_shared_worker(worker) {
-        return 'SharedWorker' in self &amp;&amp; worker instanceof SharedWorker;
-    }
-
-    function is_service_worker(worker) {
-        return 'ServiceWorker' in self &amp;&amp; worker instanceof ServiceWorker;
-    }
-
-    /*
-     * API functions
-     */
-
-    function test(func, name, properties)
-    {
-        var test_name = name ? name : test_environment.next_default_test_name();
-        properties = properties ? properties : {};
-        var test_obj = new Test(test_name, properties);
-        test_obj.step(func, test_obj, test_obj);
-        if (test_obj.phase === test_obj.phases.STARTED) {
-            test_obj.done();
-        }
-    }
-
-    function async_test(func, name, properties)
-    {
-        if (typeof func !== &quot;function&quot;) {
-            properties = name;
-            name = func;
-            func = null;
-        }
-        var test_name = name ? name : test_environment.next_default_test_name();
-        properties = properties ? properties : {};
-        var test_obj = new Test(test_name, properties);
-        if (func) {
-            test_obj.step(func, test_obj, test_obj);
-        }
-        return test_obj;
-    }
-
-    function promise_test(func, name, properties) {
-        var test = async_test(name, properties);
-        // If there is no promise tests queue make one.
-        test.step(function() {
-            if (!tests.promise_tests) {
-                tests.promise_tests = Promise.resolve();
-            }
-        });
-        tests.promise_tests = tests.promise_tests.then(function() {
-            return Promise.resolve(test.step(func, test, test))
-                .then(
-                    function() {
-                        test.done();
-                    })
-                .catch(test.step_func(
-                    function(value) {
-                        if (value instanceof AssertionError) {
-                            throw value;
-                        }
-                        assert(false, &quot;promise_test&quot;, null,
-                               &quot;Unhandled rejection with value: ${value}&quot;, {value:value});
-                    }));
-        });
-    }
-
-    function promise_rejects(test, expected, promise) {
-        return promise.then(test.unreached_func(&quot;Should have rejected.&quot;)).catch(function(e) {
-            assert_throws(expected, function() { throw e });
-        });
-    }
-
-    /**
-     * This constructor helper allows DOM events to be handled using Promises,
-     * which can make it a lot easier to test a very specific series of events,
-     * including ensuring that unexpected events are not fired at any point.
-     */
-    function EventWatcher(test, watchedNode, eventTypes)
-    {
-        if (typeof eventTypes == 'string') {
-            eventTypes = [eventTypes];
-        }
-
-        var waitingFor = null;
-
-        var eventHandler = test.step_func(function(evt) {
-            assert_true(!!waitingFor,
-                        'Not expecting event, but got ' + evt.type + ' event');
-            assert_equals(evt.type, waitingFor.types[0],
-                          'Expected ' + waitingFor.types[0] + ' event, but got ' +
-                          evt.type + ' event instead');
-            if (waitingFor.types.length &gt; 1) {
-                // Pop first event from array
-                waitingFor.types.shift();
-                return;
-            }
-            // We need to null out waitingFor before calling the resolve function
-            // since the Promise's resolve handlers may call wait_for() which will
-            // need to set waitingFor.
-            var resolveFunc = waitingFor.resolve;
-            waitingFor = null;
-            resolveFunc(evt);
-        });
-
-        for (var i = 0; i &lt; eventTypes.length; i++) {
-            watchedNode.addEventListener(eventTypes[i], eventHandler);
-        }
-
-        /**
-         * Returns a Promise that will resolve after the specified event or
-         * series of events has occured.
-         */
-        this.wait_for = function(types) {
-            if (waitingFor) {
-                return Promise.reject('Already waiting for an event or events');
-            }
-            if (typeof types == 'string') {
-                types = [types];
-            }
-            return new Promise(function(resolve, reject) {
-                waitingFor = {
-                    types: types,
-                    resolve: resolve,
-                    reject: reject
-                };
-            });
-        };
-
-        function stop_watching() {
-            for (var i = 0; i &lt; eventTypes.length; i++) {
-                watchedNode.removeEventListener(eventTypes[i], eventHandler);
-            }
-        };
-
-        test.add_cleanup(stop_watching);
-
-        return this;
-    }
-    expose(EventWatcher, 'EventWatcher');
-
-    function setup(func_or_properties, maybe_properties)
-    {
-        var func = null;
-        var properties = {};
-        if (arguments.length === 2) {
-            func = func_or_properties;
-            properties = maybe_properties;
-        } else if (func_or_properties instanceof Function) {
-            func = func_or_properties;
-        } else {
-            properties = func_or_properties;
-        }
-        tests.setup(func, properties);
-        test_environment.on_new_harness_properties(properties);
-    }
-
-    function done() {
-        if (tests.tests.length === 0) {
-            tests.set_file_is_test();
-        }
-        if (tests.file_is_test) {
-            tests.tests[0].done();
-        }
-        tests.end_wait();
-    }
-
-    function generate_tests(func, args, properties) {
-        forEach(args, function(x, i)
-                {
-                    var name = x[0];
-                    test(function()
-                         {
-                             func.apply(this, x.slice(1));
-                         },
-                         name,
-                         Array.isArray(properties) ? properties[i] : properties);
-                });
-    }
-
-    function on_event(object, event, callback)
-    {
-        object.addEventListener(event, callback, false);
-    }
-
-    expose(test, 'test');
-    expose(async_test, 'async_test');
-    expose(promise_test, 'promise_test');
-    expose(promise_rejects, 'promise_rejects');
-    expose(generate_tests, 'generate_tests');
-    expose(setup, 'setup');
-    expose(done, 'done');
-    expose(on_event, 'on_event');
-
-    /*
-     * Return a string truncated to the given length, with ... added at the end
-     * if it was longer.
-     */
-    function truncate(s, len)
-    {
-        if (s.length &gt; len) {
-            return s.substring(0, len - 3) + &quot;...&quot;;
-        }
-        return s;
-    }
-
-    /*
-     * Return true if object is probably a Node object.
-     */
-    function is_node(object)
-    {
-        // I use duck-typing instead of instanceof, because
-        // instanceof doesn't work if the node is from another window (like an
-        // iframe's contentWindow):
-        // http://www.w3.org/Bugs/Public/show_bug.cgi?id=12295
-        if (&quot;nodeType&quot; in object &amp;&amp;
-            &quot;nodeName&quot; in object &amp;&amp;
-            &quot;nodeValue&quot; in object &amp;&amp;
-            &quot;childNodes&quot; in object) {
-            try {
-                object.nodeType;
-            } catch (e) {
-                // The object is probably Node.prototype or another prototype
-                // object that inherits from it, and not a Node instance.
-                return false;
-            }
-            return true;
-        }
-        return false;
-    }
-
-    /*
-     * Convert a value to a nice, human-readable string
-     */
-    function format_value(val, seen)
-    {
-        if (!seen) {
-            seen = [];
-        }
-        if (typeof val === &quot;object&quot; &amp;&amp; val !== null) {
-            if (seen.indexOf(val) &gt;= 0) {
-                return &quot;[...]&quot;;
-            }
-            seen.push(val);
-        }
-        if (Array.isArray(val)) {
-            return &quot;[&quot; + val.map(function(x) {return format_value(x, seen);}).join(&quot;, &quot;) + &quot;]&quot;;
-        }
-
-        switch (typeof val) {
-        case &quot;string&quot;:
-            val = val.replace(&quot;\\&quot;, &quot;\\\\&quot;);
-            for (var i = 0; i &lt; 32; i++) {
-                var replace = &quot;\\&quot;;
-                switch (i) {
-                case 0: replace += &quot;0&quot;; break;
-                case 1: replace += &quot;x01&quot;; break;
-                case 2: replace += &quot;x02&quot;; break;
-                case 3: replace += &quot;x03&quot;; break;
-                case 4: replace += &quot;x04&quot;; break;
-                case 5: replace += &quot;x05&quot;; break;
-                case 6: replace += &quot;x06&quot;; break;
-                case 7: replace += &quot;x07&quot;; break;
-                case 8: replace += &quot;b&quot;; break;
-                case 9: replace += &quot;t&quot;; break;
-                case 10: replace += &quot;n&quot;; break;
-                case 11: replace += &quot;v&quot;; break;
-                case 12: replace += &quot;f&quot;; break;
-                case 13: replace += &quot;r&quot;; break;
-                case 14: replace += &quot;x0e&quot;; break;
-                case 15: replace += &quot;x0f&quot;; break;
-                case 16: replace += &quot;x10&quot;; break;
-                case 17: replace += &quot;x11&quot;; break;
-                case 18: replace += &quot;x12&quot;; break;
-                case 19: replace += &quot;x13&quot;; break;
-                case 20: replace += &quot;x14&quot;; break;
-                case 21: replace += &quot;x15&quot;; break;
-                case 22: replace += &quot;x16&quot;; break;
-                case 23: replace += &quot;x17&quot;; break;
-                case 24: replace += &quot;x18&quot;; break;
-                case 25: replace += &quot;x19&quot;; break;
-                case 26: replace += &quot;x1a&quot;; break;
-                case 27: replace += &quot;x1b&quot;; break;
-                case 28: replace += &quot;x1c&quot;; break;
-                case 29: replace += &quot;x1d&quot;; break;
-                case 30: replace += &quot;x1e&quot;; break;
-                case 31: replace += &quot;x1f&quot;; break;
-                }
-                val = val.replace(RegExp(String.fromCharCode(i), &quot;g&quot;), replace);
-            }
-            return '&quot;' + val.replace(/&quot;/g, '\\&quot;') + '&quot;';
-        case &quot;boolean&quot;:
-        case &quot;undefined&quot;:
-            return String(val);
-        case &quot;number&quot;:
-            // In JavaScript, -0 === 0 and String(-0) == &quot;0&quot;, so we have to
-            // special-case.
-            if (val === -0 &amp;&amp; 1/val === -Infinity) {
-                return &quot;-0&quot;;
-            }
-            return String(val);
-        case &quot;object&quot;:
-            if (val === null) {
-                return &quot;null&quot;;
-            }
-
-            // Special-case Node objects, since those come up a lot in my tests.  I
-            // ignore namespaces.
-            if (is_node(val)) {
-                switch (val.nodeType) {
-                case Node.ELEMENT_NODE:
-                    var ret = &quot;&lt;&quot; + val.localName;
-                    for (var i = 0; i &lt; val.attributes.length; i++) {
-                        ret += &quot; &quot; + val.attributes[i].name + '=&quot;' + val.attributes[i].value + '&quot;';
-                    }
-                    ret += &quot;&gt;&quot; + val.innerHTML + &quot;&lt;/&quot; + val.localName + &quot;&gt;&quot;;
-                    return &quot;Element node &quot; + truncate(ret, 60);
-                case Node.TEXT_NODE:
-                    return 'Text node &quot;' + truncate(val.data, 60) + '&quot;';
-                case Node.PROCESSING_INSTRUCTION_NODE:
-                    return &quot;ProcessingInstruction node with target &quot; + format_value(truncate(val.target, 60)) + &quot; and data &quot; + format_value(truncate(val.data, 60));
-                case Node.COMMENT_NODE:
-                    return &quot;Comment node &lt;!--&quot; + truncate(val.data, 60) + &quot;--&gt;&quot;;
-                case Node.DOCUMENT_NODE:
-                    return &quot;Document node with &quot; + val.childNodes.length + (val.childNodes.length == 1 ? &quot; child&quot; : &quot; children&quot;);
-                case Node.DOCUMENT_TYPE_NODE:
-                    return &quot;DocumentType node&quot;;
-                case Node.DOCUMENT_FRAGMENT_NODE:
-                    return &quot;DocumentFragment node with &quot; + val.childNodes.length + (val.childNodes.length == 1 ? &quot; child&quot; : &quot; children&quot;);
-                default:
-                    return &quot;Node object of unknown type&quot;;
-                }
-            }
-
-        /* falls through */
-        default:
-            return typeof val + ' &quot;' + truncate(String(val), 60) + '&quot;';
-        }
-    }
-    expose(format_value, &quot;format_value&quot;);
-
-    /*
-     * Assertions
-     */
-
-    function assert_true(actual, description)
-    {
-        assert(actual === true, &quot;assert_true&quot;, description,
-                                &quot;expected true got ${actual}&quot;, {actual:actual});
-    }
-    expose(assert_true, &quot;assert_true&quot;);
-
-    function assert_false(actual, description)
-    {
-        assert(actual === false, &quot;assert_false&quot;, description,
-                                 &quot;expected false got ${actual}&quot;, {actual:actual});
-    }
-    expose(assert_false, &quot;assert_false&quot;);
-
-    function same_value(x, y) {
-        if (y !== y) {
-            //NaN case
-            return x !== x;
-        }
-        if (x === 0 &amp;&amp; y === 0) {
-            //Distinguish +0 and -0
-            return 1/x === 1/y;
-        }
-        return x === y;
-    }
-
-    function assert_equals(actual, expected, description)
-    {
-         /*
-          * Test if two primitives are equal or two objects
-          * are the same object
-          */
-        if (typeof actual != typeof expected) {
-            assert(false, &quot;assert_equals&quot;, description,
-                          &quot;expected (&quot; + typeof expected + &quot;) ${expected} but got (&quot; + typeof actual + &quot;) ${actual}&quot;,
-                          {expected:expected, actual:actual});
-            return;
-        }
-        assert(same_value(actual, expected), &quot;assert_equals&quot;, description,
-                                             &quot;expected ${expected} but got ${actual}&quot;,
-                                             {expected:expected, actual:actual});
-    }
-    expose(assert_equals, &quot;assert_equals&quot;);
-
-    function assert_not_equals(actual, expected, description)
-    {
-         /*
-          * Test if two primitives are unequal or two objects
-          * are different objects
-          */
-        assert(!same_value(actual, expected), &quot;assert_not_equals&quot;, description,
-                                              &quot;got disallowed value ${actual}&quot;,
-                                              {actual:actual});
-    }
-    expose(assert_not_equals, &quot;assert_not_equals&quot;);
-
-    function assert_in_array(actual, expected, description)
-    {
-        assert(expected.indexOf(actual) != -1, &quot;assert_in_array&quot;, description,
-                                               &quot;value ${actual} not in array ${expected}&quot;,
-                                               {actual:actual, expected:expected});
-    }
-    expose(assert_in_array, &quot;assert_in_array&quot;);
-
-    function assert_object_equals(actual, expected, description)
-    {
-         //This needs to be improved a great deal
-         function check_equal(actual, expected, stack)
-         {
-             stack.push(actual);
-
-             var p;
-             for (p in actual) {
-                 assert(expected.hasOwnProperty(p), &quot;assert_object_equals&quot;, description,
-                                                    &quot;unexpected property ${p}&quot;, {p:p});
-
-                 if (typeof actual[p] === &quot;object&quot; &amp;&amp; actual[p] !== null) {
-                     if (stack.indexOf(actual[p]) === -1) {
-                         check_equal(actual[p], expected[p], stack);
-                     }
-                 } else {
-                     assert(same_value(actual[p], expected[p]), &quot;assert_object_equals&quot;, description,
-                                                       &quot;property ${p} expected ${expected} got ${actual}&quot;,
-                                                       {p:p, expected:expected, actual:actual});
-                 }
-             }
-             for (p in expected) {
-                 assert(actual.hasOwnProperty(p),
-                        &quot;assert_object_equals&quot;, description,
-                        &quot;expected property ${p} missing&quot;, {p:p});
-             }
-             stack.pop();
-         }
-         check_equal(actual, expected, []);
-    }
-    expose(assert_object_equals, &quot;assert_object_equals&quot;);
-
-    function assert_array_equals(actual, expected, description)
-    {
-        assert(actual.length === expected.length,
-               &quot;assert_array_equals&quot;, description,
-               &quot;lengths differ, expected ${expected} got ${actual}&quot;,
-               {expected:expected.length, actual:actual.length});
-
-        for (var i = 0; i &lt; actual.length; i++) {
-            assert(actual.hasOwnProperty(i) === expected.hasOwnProperty(i),
-                   &quot;assert_array_equals&quot;, description,
-                   &quot;property ${i}, property expected to be ${expected} but was ${actual}&quot;,
-                   {i:i, expected:expected.hasOwnProperty(i) ? &quot;present&quot; : &quot;missing&quot;,
-                   actual:actual.hasOwnProperty(i) ? &quot;present&quot; : &quot;missing&quot;});
-            assert(same_value(expected[i], actual[i]),
-                   &quot;assert_array_equals&quot;, description,
-                   &quot;property ${i}, expected ${expected} but got ${actual}&quot;,
-                   {i:i, expected:expected[i], actual:actual[i]});
-        }
-    }
-    expose(assert_array_equals, &quot;assert_array_equals&quot;);
-
-    function assert_approx_equals(actual, expected, epsilon, description)
-    {
-        /*
-         * Test if two primitive numbers are equal withing +/- epsilon
-         */
-        assert(typeof actual === &quot;number&quot;,
-               &quot;assert_approx_equals&quot;, description,
-               &quot;expected a number but got a ${type_actual}&quot;,
-               {type_actual:typeof actual});
-
-        assert(Math.abs(actual - expected) &lt;= epsilon,
-               &quot;assert_approx_equals&quot;, description,
-               &quot;expected ${expected} +/- ${epsilon} but got ${actual}&quot;,
-               {expected:expected, actual:actual, epsilon:epsilon});
-    }
-    expose(assert_approx_equals, &quot;assert_approx_equals&quot;);
-
-    function assert_less_than(actual, expected, description)
-    {
-        /*
-         * Test if a primitive number is less than another
-         */
-        assert(typeof actual === &quot;number&quot;,
-               &quot;assert_less_than&quot;, description,
-               &quot;expected a number but got a ${type_actual}&quot;,
-               {type_actual:typeof actual});
-
-        assert(actual &lt; expected,
-               &quot;assert_less_than&quot;, description,
-               &quot;expected a number less than ${expected} but got ${actual}&quot;,
-               {expected:expected, actual:actual});
-    }
-    expose(assert_less_than, &quot;assert_less_than&quot;);
-
-    function assert_greater_than(actual, expected, description)
-    {
-        /*
-         * Test if a primitive number is greater than another
-         */
-        assert(typeof actual === &quot;number&quot;,
-               &quot;assert_greater_than&quot;, description,
-               &quot;expected a number but got a ${type_actual}&quot;,
-               {type_actual:typeof actual});
-
-        assert(actual &gt; expected,
-               &quot;assert_greater_than&quot;, description,
-               &quot;expected a number greater than ${expected} but got ${actual}&quot;,
-               {expected:expected, actual:actual});
-    }
-    expose(assert_greater_than, &quot;assert_greater_than&quot;);
-
-    function assert_between_exclusive(actual, lower, upper, description)
-    {
-        /*
-         * Test if a primitive number is between two others
-         */
-        assert(typeof actual === &quot;number&quot;,
-               &quot;assert_between_exclusive&quot;, description,
-               &quot;expected a number but got a ${type_actual}&quot;,
-               {type_actual:typeof actual});
-
-        assert(actual &gt; lower &amp;&amp; actual &lt; upper,
-               &quot;assert_between_exclusive&quot;, description,
-               &quot;expected a number greater than ${lower} &quot; +
-               &quot;and less than ${upper} but got ${actual}&quot;,
-               {lower:lower, upper:upper, actual:actual});
-    }
-    expose(assert_between_exclusive, &quot;assert_between_exclusive&quot;);
-
-    function assert_less_than_equal(actual, expected, description)
-    {
-        /*
-         * Test if a primitive number is less than or equal to another
-         */
-        assert(typeof actual === &quot;number&quot;,
-               &quot;assert_less_than_equal&quot;, description,
-               &quot;expected a number but got a ${type_actual}&quot;,
-               {type_actual:typeof actual});
-
-        assert(actual &lt;= expected,
-               &quot;assert_less_than_equal&quot;, description,
-               &quot;expected a number less than or equal to ${expected} but got ${actual}&quot;,
-               {expected:expected, actual:actual});
-    }
-    expose(assert_less_than_equal, &quot;assert_less_than_equal&quot;);
-
-    function assert_greater_than_equal(actual, expected, description)
-    {
-        /*
-         * Test if a primitive number is greater than or equal to another
-         */
-        assert(typeof actual === &quot;number&quot;,
-               &quot;assert_greater_than_equal&quot;, description,
-               &quot;expected a number but got a ${type_actual}&quot;,
-               {type_actual:typeof actual});
-
-        assert(actual &gt;= expected,
-               &quot;assert_greater_than_equal&quot;, description,
-               &quot;expected a number greater than or equal to ${expected} but got ${actual}&quot;,
-               {expected:expected, actual:actual});
-    }
-    expose(assert_greater_than_equal, &quot;assert_greater_than_equal&quot;);
-
-    function assert_between_inclusive(actual, lower, upper, description)
-    {
-        /*
-         * Test if a primitive number is between to two others or equal to either of them
-         */
-        assert(typeof actual === &quot;number&quot;,
-               &quot;assert_between_inclusive&quot;, description,
-               &quot;expected a number but got a ${type_actual}&quot;,
-               {type_actual:typeof actual});
-
-        assert(actual &gt;= lower &amp;&amp; actual &lt;= upper,
-               &quot;assert_between_inclusive&quot;, description,
-               &quot;expected a number greater than or equal to ${lower} &quot; +
-               &quot;and less than or equal to ${upper} but got ${actual}&quot;,
-               {lower:lower, upper:upper, actual:actual});
-    }
-    expose(assert_between_inclusive, &quot;assert_between_inclusive&quot;);
-
-    function assert_regexp_match(actual, expected, description) {
-        /*
-         * Test if a string (actual) matches a regexp (expected)
-         */
-        assert(expected.test(actual),
-               &quot;assert_regexp_match&quot;, description,
-               &quot;expected ${expected} but got ${actual}&quot;,
-               {expected:expected, actual:actual});
-    }
-    expose(assert_regexp_match, &quot;assert_regexp_match&quot;);
-
-    function assert_class_string(object, class_string, description) {
-        assert_equals({}.toString.call(object), &quot;[object &quot; + class_string + &quot;]&quot;,
-                      description);
-    }
-    expose(assert_class_string, &quot;assert_class_string&quot;);
-
-
-    function _assert_own_property(name) {
-        return function(object, property_name, description)
-        {
-            assert(object.hasOwnProperty(property_name),
-                   name, description,
-                   &quot;expected property ${p} missing&quot;, {p:property_name});
-        };
-    }
-    expose(_assert_own_property(&quot;assert_exists&quot;), &quot;assert_exists&quot;);
-    expose(_assert_own_property(&quot;assert_own_property&quot;), &quot;assert_own_property&quot;);
-
-    function assert_not_exists(object, property_name, description)
-    {
-        assert(!object.hasOwnProperty(property_name),
-               &quot;assert_not_exists&quot;, description,
-               &quot;unexpected property ${p} found&quot;, {p:property_name});
-    }
-    expose(assert_not_exists, &quot;assert_not_exists&quot;);
-
-    function _assert_inherits(name) {
-        return function (object, property_name, description)
-        {
-            assert(typeof object === &quot;object&quot;,
-                   name, description,
-                   &quot;provided value is not an object&quot;);
-
-            assert(&quot;hasOwnProperty&quot; in object,
-                   name, description,
-                   &quot;provided value is an object but has no hasOwnProperty method&quot;);
-
-            assert(!object.hasOwnProperty(property_name),
-                   name, description,
-                   &quot;property ${p} found on object expected in prototype chain&quot;,
-                   {p:property_name});
-
-            assert(property_name in object,
-                   name, description,
-                   &quot;property ${p} not found in prototype chain&quot;,
-                   {p:property_name});
-        };
-    }
-    expose(_assert_inherits(&quot;assert_inherits&quot;), &quot;assert_inherits&quot;);
-    expose(_assert_inherits(&quot;assert_idl_attribute&quot;), &quot;assert_idl_attribute&quot;);
-
-    function assert_readonly(object, property_name, description)
-    {
-         var initial_value = object[property_name];
-         try {
-             //Note that this can have side effects in the case where
-             //the property has PutForwards
-             object[property_name] = initial_value + &quot;a&quot;; //XXX use some other value here?
-             assert(same_value(object[property_name], initial_value),
-                    &quot;assert_readonly&quot;, description,
-                    &quot;changing property ${p} succeeded&quot;,
-                    {p:property_name});
-         } finally {
-             object[property_name] = initial_value;
-         }
-    }
-    expose(assert_readonly, &quot;assert_readonly&quot;);
-
-    function assert_throws(code, func, description)
-    {
-        try {
-            func.call(this);
-            assert(false, &quot;assert_throws&quot;, description,
-                   &quot;${func} did not throw&quot;, {func:func});
-        } catch (e) {
-            if (e instanceof AssertionError) {
-                throw e;
-            }
-            if (code === null) {
-                return;
-            }
-            if (typeof code === &quot;object&quot;) {
-                assert(typeof e == &quot;object&quot; &amp;&amp; &quot;name&quot; in e &amp;&amp; e.name == code.name,
-                       &quot;assert_throws&quot;, description,
-                       &quot;${func} threw ${actual} (${actual_name}) expected ${expected} (${expected_name})&quot;,
-                                    {func:func, actual:e, actual_name:e.name,
-                                     expected:code,
-                                     expected_name:code.name});
-                return;
-            }
-
-            var code_name_map = {
-                INDEX_SIZE_ERR: 'IndexSizeError',
-                HIERARCHY_REQUEST_ERR: 'HierarchyRequestError',
-                WRONG_DOCUMENT_ERR: 'WrongDocumentError',
-                INVALID_CHARACTER_ERR: 'InvalidCharacterError',
-                NO_MODIFICATION_ALLOWED_ERR: 'NoModificationAllowedError',
-                NOT_FOUND_ERR: 'NotFoundError',
-                NOT_SUPPORTED_ERR: 'NotSupportedError',
-                INVALID_STATE_ERR: 'InvalidStateError',
-                SYNTAX_ERR: 'SyntaxError',
-                INVALID_MODIFICATION_ERR: 'InvalidModificationError',
-                NAMESPACE_ERR: 'NamespaceError',
-                INVALID_ACCESS_ERR: 'InvalidAccessError',
-                TYPE_MISMATCH_ERR: 'TypeMismatchError',
-                SECURITY_ERR: 'SecurityError',
-                NETWORK_ERR: 'NetworkError',
-                ABORT_ERR: 'AbortError',
-                URL_MISMATCH_ERR: 'URLMismatchError',
-                QUOTA_EXCEEDED_ERR: 'QuotaExceededError',
-                TIMEOUT_ERR: 'TimeoutError',
-                INVALID_NODE_TYPE_ERR: 'InvalidNodeTypeError',
-                DATA_CLONE_ERR: 'DataCloneError'
-            };
-
-            var name = code in code_name_map ? code_name_map[code] : code;
-
-            var name_code_map = {
-                IndexSizeError: 1,
-                HierarchyRequestError: 3,
-                WrongDocumentError: 4,
-                InvalidCharacterError: 5,
-                NoModificationAllowedError: 7,
-                NotFoundError: 8,
-                NotSupportedError: 9,
-                InvalidStateError: 11,
-                SyntaxError: 12,
-                InvalidModificationError: 13,
-                NamespaceError: 14,
-                InvalidAccessError: 15,
-                TypeMismatchError: 17,
-                SecurityError: 18,
-                NetworkError: 19,
-                AbortError: 20,
-                URLMismatchError: 21,
-                QuotaExceededError: 22,
-                TimeoutError: 23,
-                InvalidNodeTypeError: 24,
-                DataCloneError: 25,
-
-                EncodingError: 0,
-                NotReadableError: 0,
-                UnknownError: 0,
-                ConstraintError: 0,
-                DataError: 0,
-                TransactionInactiveError: 0,
-                ReadOnlyError: 0,
-                VersionError: 0,
-                OperationError: 0,
-            };
-
-            if (!(name in name_code_map)) {
-                throw new AssertionError('Test bug: unrecognized DOMException code &quot;' + code + '&quot; passed to assert_throws()');
-            }
-
-            var required_props = { code: name_code_map[name] };
-
-            if (required_props.code === 0 ||
-               (typeof e == &quot;object&quot; &amp;&amp;
-                &quot;name&quot; in e &amp;&amp;
-                e.name !== e.name.toUpperCase() &amp;&amp;
-                e.name !== &quot;DOMException&quot;)) {
-                // New style exception: also test the name property.
-                required_props.name = name;
-            }
-
-            //We'd like to test that e instanceof the appropriate interface,
-            //but we can't, because we don't know what window it was created
-            //in.  It might be an instanceof the appropriate interface on some
-            //unknown other window.  TODO: Work around this somehow?
-
-            assert(typeof e == &quot;object&quot;,
-                   &quot;assert_throws&quot;, description,
-                   &quot;${func} threw ${e} with type ${type}, not an object&quot;,
-                   {func:func, e:e, type:typeof e});
-
-            for (var prop in required_props) {
-                assert(typeof e == &quot;object&quot; &amp;&amp; prop in e &amp;&amp; e[prop] == required_props[prop],
-                       &quot;assert_throws&quot;, description,
-                       &quot;${func} threw ${e} that is not a DOMException &quot; + code + &quot;: property ${prop} is equal to ${actual}, expected ${expected}&quot;,
-                       {func:func, e:e, prop:prop, actual:e[prop], expected:required_props[prop]});
-            }
-        }
-    }
-    expose(assert_throws, &quot;assert_throws&quot;);
-
-    function assert_unreached(description) {
-         assert(false, &quot;assert_unreached&quot;, description,
-                &quot;Reached unreachable code&quot;);
-    }
-    expose(assert_unreached, &quot;assert_unreached&quot;);
-
-    function assert_any(assert_func, actual, expected_array)
-    {
-        var args = [].slice.call(arguments, 3);
-        var errors = [];
-        var passed = false;
-        forEach(expected_array,
-                function(expected)
-                {
-                    try {
-                        assert_func.apply(this, [actual, expected].concat(args));
-                        passed = true;
-                    } catch (e) {
-                        errors.push(e.message);
-                    }
-                });
-        if (!passed) {
-            throw new AssertionError(errors.join(&quot;\n\n&quot;));
-        }
-    }
-    expose(assert_any, &quot;assert_any&quot;);
-
-    function Test(name, properties)
-    {
-        if (tests.file_is_test &amp;&amp; tests.tests.length) {
-            throw new Error(&quot;Tried to create a test with file_is_test&quot;);
-        }
-        this.name = name;
-
-        this.phase = this.phases.INITIAL;
-
-        this.status = this.NOTRUN;
-        this.timeout_id = null;
-        this.index = null;
-
-        this.properties = properties;
-        var timeout = properties.timeout ? properties.timeout : settings.test_timeout;
-        if (timeout !== null) {
-            this.timeout_length = timeout * tests.timeout_multiplier;
-        } else {
-            this.timeout_length = null;
-        }
-
-        this.message = null;
-        this.stack = null;
-
-        this.steps = [];
-
-        this.cleanup_callbacks = [];
-
-        tests.push(this);
-    }
-
-    Test.statuses = {
-        PASS:0,
-        FAIL:1,
-        TIMEOUT:2,
-        NOTRUN:3
-    };
-
-    Test.prototype = merge({}, Test.statuses);
-
-    Test.prototype.phases = {
-        INITIAL:0,
-        STARTED:1,
-        HAS_RESULT:2,
-        COMPLETE:3
-    };
-
-    Test.prototype.structured_clone = function()
-    {
-        if (!this._structured_clone) {
-            var msg = this.message;
-            msg = msg ? String(msg) : msg;
-            this._structured_clone = merge({
-                name:String(this.name),
-                properties:merge({}, this.properties),
-            }, Test.statuses);
-        }
-        this._structured_clone.status = this.status;
-        this._structured_clone.message = this.message;
-        this._structured_clone.stack = this.stack;
-        this._structured_clone.index = this.index;
-        return this._structured_clone;
-    };
-
-    Test.prototype.step = function(func, this_obj)
-    {
-        if (this.phase &gt; this.phases.STARTED) {
-            return;
-        }
-        this.phase = this.phases.STARTED;
-        //If we don't get a result before the harness times out that will be a test timout
-        this.set_status(this.TIMEOUT, &quot;Test timed out&quot;);
-
-        tests.started = true;
-        tests.notify_test_state(this);
-
-        if (this.timeout_id === null) {
-            this.set_timeout();
-        }
-
-        this.steps.push(func);
-
-        if (arguments.length === 1) {
-            this_obj = this;
-        }
-
-        try {
-            return func.apply(this_obj, Array.prototype.slice.call(arguments, 2));
-        } catch (e) {
-            if (this.phase &gt;= this.phases.HAS_RESULT) {
-                return;
-            }
-            var message = String((typeof e === &quot;object&quot; &amp;&amp; e !== null) ? e.message : e);
-            var stack = e.stack ? e.stack : null;
-
-            this.set_status(this.FAIL, message, stack);
-            this.phase = this.phases.HAS_RESULT;
-            this.done();
-        }
-    };
-
-    Test.prototype.step_func = function(func, this_obj)
-    {
-        var test_this = this;
-
-        if (arguments.length === 1) {
-            this_obj = test_this;
-        }
-
-        return function()
-        {
-            return test_this.step.apply(test_this, [func, this_obj].concat(
-                Array.prototype.slice.call(arguments)));
-        };
-    };
-
-    Test.prototype.step_func_done = function(func, this_obj)
-    {
-        var test_this = this;
-
-        if (arguments.length === 1) {
-            this_obj = test_this;
-        }
-
-        return function()
-        {
-            if (func) {
-                test_this.step.apply(test_this, [func, this_obj].concat(
-                    Array.prototype.slice.call(arguments)));
-            }
-            test_this.done();
-        };
-    };
-
-    Test.prototype.unreached_func = function(description)
-    {
-        return this.step_func(function() {
-            assert_unreached(description);
-        });
-    };
-
-    Test.prototype.add_cleanup = function(callback) {
-        this.cleanup_callbacks.push(callback);
-    };
-
-    Test.prototype.force_timeout = function() {
-        this.set_status(this.TIMEOUT);
-        this.phase = this.phases.HAS_RESULT;
-    };
-
-    Test.prototype.set_timeout = function()
-    {
-        if (this.timeout_length !== null) {
-            var this_obj = this;
-            this.timeout_id = setTimeout(function()
-                                         {
-                                             this_obj.timeout();
-                                         }, this.timeout_length);
-        }
-    };
-
-    Test.prototype.set_status = function(status, message, stack)
-    {
-        this.status = status;
-        this.message = message;
-        this.stack = stack ? stack : null;
-    };
-
-    Test.prototype.timeout = function()
-    {
-        this.timeout_id = null;
-        this.set_status(this.TIMEOUT, &quot;Test timed out&quot;);
-        this.phase = this.phases.HAS_RESULT;
-        this.done();
-    };
-
-    Test.prototype.done = function()
-    {
-        if (this.phase == this.phases.COMPLETE) {
-            return;
-        }
-
-        if (this.phase &lt;= this.phases.STARTED) {
-            this.set_status(this.PASS, null);
-        }
-
-        this.phase = this.phases.COMPLETE;
-
-        clearTimeout(this.timeout_id);
-        tests.result(this);
-        this.cleanup();
-    };
-
-    Test.prototype.cleanup = function() {
-        forEach(this.cleanup_callbacks,
-                function(cleanup_callback) {
-                    cleanup_callback();
-                });
-    };
-
-    /*
-     * A RemoteTest object mirrors a Test object on a remote worker. The
-     * associated RemoteWorker updates the RemoteTest object in response to
-     * received events. In turn, the RemoteTest object replicates these events
-     * on the local document. This allows listeners (test result reporting
-     * etc..) to transparently handle local and remote events.
-     */
-    function RemoteTest(clone) {
-        var this_obj = this;
-        Object.keys(clone).forEach(
-                function(key) {
-                    this_obj[key] = clone[key];
-                });
-        this.index = null;
-        this.phase = this.phases.INITIAL;
-        this.update_state_from(clone);
-        tests.push(this);
-    }
-
-    RemoteTest.prototype.structured_clone = function() {
-        var clone = {};
-        Object.keys(this).forEach(
-                (function(key) {
-                    if (typeof(this[key]) === &quot;object&quot;) {
-                        clone[key] = merge({}, this[key]);
-                    } else {
-                        clone[key] = this[key];
-                    }
-                }).bind(this));
-        clone.phases = merge({}, this.phases);
-        return clone;
-    };
-
-    RemoteTest.prototype.cleanup = function() {};
-    RemoteTest.prototype.phases = Test.prototype.phases;
-    RemoteTest.prototype.update_state_from = function(clone) {
-        this.status = clone.status;
-        this.message = clone.message;
-        this.stack = clone.stack;
-        if (this.phase === this.phases.INITIAL) {
-            this.phase = this.phases.STARTED;
-        }
-    };
-    RemoteTest.prototype.done = function() {
-        this.phase = this.phases.COMPLETE;
-    }
-
-    /*
-     * A RemoteWorker listens for test events from a worker. These events are
-     * then used to construct and maintain RemoteTest objects that mirror the
-     * tests running on the remote worker.
-     */
-    function RemoteWorker(worker) {
-        this.running = true;
-        this.tests = new Array();
-
-        var this_obj = this;
-        worker.onerror = function(error) { this_obj.worker_error(error); };
-
-        var message_port;
-
-        if (is_service_worker(worker)) {
-            if (window.MessageChannel) {
-                // The ServiceWorker's implicit MessagePort is currently not
-                // reliably accessible from the ServiceWorkerGlobalScope due to
-                // Blink setting MessageEvent.source to null for messages sent
-                // via ServiceWorker.postMessage(). Until that's resolved,
-                // create an explicit MessageChannel and pass one end to the
-                // worker.
-                var message_channel = new MessageChannel();
-                message_port = message_channel.port1;
-                message_port.start();
-                worker.postMessage({type: &quot;connect&quot;}, [message_channel.port2]);
-            } else {
-                // If MessageChannel is not available, then try the
-                // ServiceWorker.postMessage() approach using MessageEvent.source
-                // on the other end.
-                message_port = navigator.serviceWorker;
-                worker.postMessage({type: &quot;connect&quot;});
-            }
-        } else if (is_shared_worker(worker)) {
-            message_port = worker.port;
-        } else {
-            message_port = worker;
-        }
-
-        // Keeping a reference to the worker until worker_done() is seen
-        // prevents the Worker object and its MessageChannel from going away
-        // before all the messages are dispatched.
-        this.worker = worker;
-
-        message_port.onmessage =
-            function(message) {
-                if (this_obj.running &amp;&amp; (message.data.type in this_obj.message_handlers)) {
-                    this_obj.message_handlers[message.data.type].call(this_obj, message.data);
-                }
-            };
-    }
-
-    RemoteWorker.prototype.worker_error = function(error) {
-        var message = error.message || String(error);
-        var filename = (error.filename ? &quot; &quot; + error.filename: &quot;&quot;);
-        // FIXME: Display worker error states separately from main document
-        // error state.
-        this.worker_done({
-            status: {
-                status: tests.status.ERROR,
-                message: &quot;Error in worker&quot; + filename + &quot;: &quot; + message,
-                stack: error.stack
-            }
-        });
-        error.preventDefault();
-    };
-
-    RemoteWorker.prototype.test_state = function(data) {
-        var remote_test = this.tests[data.test.index];
-        if (!remote_test) {
-            remote_test = new RemoteTest(data.test);
-            this.tests[data.test.index] = remote_test;
-        }
-        remote_test.update_state_from(data.test);
-        tests.notify_test_state(remote_test);
-    };
-
-    RemoteWorker.prototype.test_done = function(data) {
-        var remote_test = this.tests[data.test.index];
-        remote_test.update_state_from(data.test);
-        remote_test.done();
-        tests.result(remote_test);
-    };
-
-    RemoteWorker.prototype.worker_done = function(data) {
-        if (tests.status.status === null &amp;&amp;
-            data.status.status !== data.status.OK) {
-            tests.status.status = data.status.status;
-            tests.status.message = data.status.message;
-            tests.status.stack = data.status.stack;
-        }
-        this.running = false;
-        this.worker = null;
-        if (tests.all_done()) {
-            tests.complete();
-        }
-    };
-
-    RemoteWorker.prototype.message_handlers = {
-        test_state: RemoteWorker.prototype.test_state,
-        result: RemoteWorker.prototype.test_done,
-        complete: RemoteWorker.prototype.worker_done
-    };
-
-    /*
-     * Harness
-     */
-
-    function TestsStatus()
-    {
-        this.status = null;
-        this.message = null;
-        this.stack = null;
-    }
-
-    TestsStatus.statuses = {
-        OK:0,
-        ERROR:1,
-        TIMEOUT:2
-    };
-
-    TestsStatus.prototype = merge({}, TestsStatus.statuses);
-
-    TestsStatus.prototype.structured_clone = function()
-    {
-        if (!this._structured_clone) {
-            var msg = this.message;
-            msg = msg ? String(msg) : msg;
-            this._structured_clone = merge({
-                status:this.status,
-                message:msg,
-                stack:this.stack
-            }, TestsStatus.statuses);
-        }
-        return this._structured_clone;
-    };
-
-    function Tests()
-    {
-        this.tests = [];
-        this.num_pending = 0;
-
-        this.phases = {
-            INITIAL:0,
-            SETUP:1,
-            HAVE_TESTS:2,
-            HAVE_RESULTS:3,
-            COMPLETE:4
-        };
-        this.phase = this.phases.INITIAL;
-
-        this.properties = {};
-
-        this.wait_for_finish = false;
-        this.processing_callbacks = false;
-
-        this.allow_uncaught_exception = false;
-
-        this.file_is_test = false;
-
-        this.timeout_multiplier = 1;
-        this.timeout_length = test_environment.test_timeout();
-        this.timeout_id = null;
-
-        this.start_callbacks = [];
-        this.test_state_callbacks = [];
-        this.test_done_callbacks = [];
-        this.all_done_callbacks = [];
-
-        this.pending_workers = [];
-
-        this.status = new TestsStatus();
-
-        var this_obj = this;
-
-        test_environment.add_on_loaded_callback(function() {
-            if (this_obj.all_done()) {
-                this_obj.complete();
-            }
-        });
-
-        this.set_timeout();
-    }
-
-    Tests.prototype.setup = function(func, properties)
-    {
-        if (this.phase &gt;= this.phases.HAVE_RESULTS) {
-            return;
-        }
-
-        if (this.phase &lt; this.phases.SETUP) {
-            this.phase = this.phases.SETUP;
-        }
-
-        this.properties = properties;
-
-        for (var p in properties) {
-            if (properties.hasOwnProperty(p)) {
-                var value = properties[p];
-                if (p == &quot;allow_uncaught_exception&quot;) {
-                    this.allow_uncaught_exception = value;
-                } else if (p == &quot;explicit_done&quot; &amp;&amp; value) {
-                    this.wait_for_finish = true;
-                } else if (p == &quot;explicit_timeout&quot; &amp;&amp; value) {
-                    this.timeout_length = null;
-                    if (this.timeout_id)
-                    {
-                        clearTimeout(this.timeout_id);
-                    }
-                } else if (p == &quot;timeout_multiplier&quot;) {
-                    this.timeout_multiplier = value;
-                }
-            }
-        }
-
-        if (func) {
-            try {
-                func();
-            } catch (e) {
-                this.status.status = this.status.ERROR;
-                this.status.message = String(e);
-                this.status.stack = e.stack ? e.stack : null;
-            }
-        }
-        this.set_timeout();
-    };
-
-    Tests.prototype.set_file_is_test = function() {
-        if (this.tests.length &gt; 0) {
-            throw new Error(&quot;Tried to set file as test after creating a test&quot;);
-        }
-        this.wait_for_finish = true;
-        this.file_is_test = true;
-        // Create the test, which will add it to the list of tests
-        async_test();
-    };
-
-    Tests.prototype.set_timeout = function() {
-        var this_obj = this;
-        clearTimeout(this.timeout_id);
-        if (this.timeout_length !== null) {
-            this.timeout_id = setTimeout(function() {
-                                             this_obj.timeout();
-                                         }, this.timeout_length);
-        }
-    };
-
-    Tests.prototype.timeout = function() {
-        if (this.status.status === null) {
-            this.status.status = this.status.TIMEOUT;
-        }
-        this.complete();
-    };
-
-    Tests.prototype.end_wait = function()
-    {
-        this.wait_for_finish = false;
-        if (this.all_done()) {
-            this.complete();
-        }
-    };
-
-    Tests.prototype.push = function(test)
-    {
-        if (this.phase &lt; this.phases.HAVE_TESTS) {
-            this.start();
-        }
-        this.num_pending++;
-        test.index = this.tests.push(test);
-        this.notify_test_state(test);
-    };
-
-    Tests.prototype.notify_test_state = function(test) {
-        var this_obj = this;
-        forEach(this.test_state_callbacks,
-                function(callback) {
-                    callback(test, this_obj);
-                });
-    };
-
-    Tests.prototype.all_done = function() {
-        return (this.tests.length &gt; 0 &amp;&amp; test_environment.all_loaded &amp;&amp;
-                this.num_pending === 0 &amp;&amp; !this.wait_for_finish &amp;&amp;
-                !this.processing_callbacks &amp;&amp;
-                !this.pending_workers.some(function(w) { return w.running; }));
-    };
-
-    Tests.prototype.start = function() {
-        this.phase = this.phases.HAVE_TESTS;
-        this.notify_start();
-    };
-
-    Tests.prototype.notify_start = function() {
-        var this_obj = this;
-        forEach (this.start_callbacks,
-                 function(callback)
-                 {
-                     callback(this_obj.properties);
-                 });
-    };
-
-    Tests.prototype.result = function(test)
-    {
-        if (this.phase &gt; this.phases.HAVE_RESULTS) {
-            return;
-        }
-        this.phase = this.phases.HAVE_RESULTS;
-        this.num_pending--;
-        this.notify_result(test);
-    };
-
-    Tests.prototype.notify_result = function(test) {
-        var this_obj = this;
-        this.processing_callbacks = true;
-        forEach(this.test_done_callbacks,
-                function(callback)
-                {
-                    callback(test, this_obj);
-                });
-        this.processing_callbacks = false;
-        if (this_obj.all_done()) {
-            this_obj.complete();
-        }
-    };
-
-    Tests.prototype.complete = function() {
-        if (this.phase === this.phases.COMPLETE) {
-            return;
-        }
-        this.phase = this.phases.COMPLETE;
-        var this_obj = this;
-        this.tests.forEach(
-            function(x)
-            {
-                if (x.phase &lt; x.phases.COMPLETE) {
-                    this_obj.notify_result(x);
-                    x.cleanup();
-                    x.phase = x.phases.COMPLETE;
-                }
-            }
-        );
-        this.notify_complete();
-    };
-
-    Tests.prototype.notify_complete = function() {
-        var this_obj = this;
-        if (this.status.status === null) {
-            this.status.status = this.status.OK;
-        }
-
-        forEach (this.all_done_callbacks,
-                 function(callback)
-                 {
-                     callback(this_obj.tests, this_obj.status);
-                 });
-    };
-
-    Tests.prototype.fetch_tests_from_worker = function(worker) {
-        if (this.phase &gt;= this.phases.COMPLETE) {
-            return;
-        }
-
-        this.pending_workers.push(new RemoteWorker(worker));
-    };
-
-    function fetch_tests_from_worker(port) {
-        tests.fetch_tests_from_worker(port);
-    }
-    expose(fetch_tests_from_worker, 'fetch_tests_from_worker');
-
-    function timeout() {
-        if (tests.timeout_length === null) {
-            tests.timeout();
-        }
-    }
-    expose(timeout, 'timeout');
-
-    function add_start_callback(callback) {
-        tests.start_callbacks.push(callback);
-    }
-
-    function add_test_state_callback(callback) {
-        tests.test_state_callbacks.push(callback);
-    }
-
-    function add_result_callback(callback) {
-        tests.test_done_callbacks.push(callback);
-    }
-
-    function add_completion_callback(callback) {
-        tests.all_done_callbacks.push(callback);
-    }
-
-    expose(add_start_callback, 'add_start_callback');
-    expose(add_test_state_callback, 'add_test_state_callback');
-    expose(add_result_callback, 'add_result_callback');
-    expose(add_completion_callback, 'add_completion_callback');
-
-    function remove(array, item) {
-        var index = array.indexOf(item);
-        if (index &gt; -1) {
-            array.splice(index, 1);
-        }
-    }
-
-    function remove_start_callback(callback) {
-        remove(tests.start_callbacks, callback);
-    }
-
-    function remove_test_state_callback(callback) {
-        remove(tests.test_state_callbacks, callback);
-    }
-
-    function remove_result_callback(callback) {
-        remove(tests.test_done_callbacks, callback);
-    }
-
-    function remove_completion_callback(callback) {
-       remove(tests.all_done_callbacks, callback);
-    }
-
-    /*
-     * Output listener
-    */
-
-    function Output() {
-        this.output_document = document;
-        this.output_node = null;
-        this.enabled = settings.output;
-        this.phase = this.INITIAL;
-    }
-
-    Output.prototype.INITIAL = 0;
-    Output.prototype.STARTED = 1;
-    Output.prototype.HAVE_RESULTS = 2;
-    Output.prototype.COMPLETE = 3;
-
-    Output.prototype.setup = function(properties) {
-        if (this.phase &gt; this.INITIAL) {
-            return;
-        }
-
-        //If output is disabled in testharnessreport.js the test shouldn't be
-        //able to override that
-        this.enabled = this.enabled &amp;&amp; (properties.hasOwnProperty(&quot;output&quot;) ?
-                                        properties.output : settings.output);
-    };
-
-    Output.prototype.init = function(properties) {
-        if (this.phase &gt;= this.STARTED) {
-            return;
-        }
-        if (properties.output_document) {
-            this.output_document = properties.output_document;
-        } else {
-            this.output_document = document;
-        }
-        this.phase = this.STARTED;
-    };
-
-    Output.prototype.resolve_log = function() {
-        var output_document;
-        if (typeof this.output_document === &quot;function&quot;) {
-            output_document = this.output_document.apply(undefined);
-        } else {
-            output_document = this.output_document;
-        }
-        if (!output_document) {
-            return;
-        }
-        var node = output_document.getElementById(&quot;log&quot;);
-        if (!node) {
-            if (!document.body || document.readyState == &quot;loading&quot;) {
-                return;
-            }
-            node = output_document.createElement(&quot;div&quot;);
-            node.id = &quot;log&quot;;
-            output_document.body.appendChild(node);
-        }
-        this.output_document = output_document;
-        this.output_node = node;
-    };
-
-    Output.prototype.show_status = function() {
-        if (this.phase &lt; this.STARTED) {
-            this.init();
-        }
-        if (!this.enabled) {
-            return;
-        }
-        if (this.phase &lt; this.HAVE_RESULTS) {
-            this.resolve_log();
-            this.phase = this.HAVE_RESULTS;
-        }
-        var done_count = tests.tests.length - tests.num_pending;
-        if (this.output_node) {
-            if (done_count &lt; 100 ||
-                (done_count &lt; 1000 &amp;&amp; done_count % 100 === 0) ||
-                done_count % 1000 === 0) {
-                this.output_node.textContent = &quot;Running, &quot; +
-                    done_count + &quot; complete, &quot; +
-                    tests.num_pending + &quot; remain&quot;;
-            }
-        }
-    };
-
-    Output.prototype.show_results = function (tests, harness_status) {
-        if (this.phase &gt;= this.COMPLETE) {
-            return;
-        }
-        if (!this.enabled) {
-            return;
-        }
-        if (!this.output_node) {
-            this.resolve_log();
-        }
-        this.phase = this.COMPLETE;
-
-        var log = this.output_node;
-        if (!log) {
-            return;
-        }
-        var output_document = this.output_document;
-
-        while (log.lastChild) {
-            log.removeChild(log.lastChild);
-        }
-
-        var harness_url = get_harness_url();
-        if (harness_url !== null) {
-            var stylesheet = output_document.createElementNS(xhtml_ns, &quot;link&quot;);
-            stylesheet.setAttribute(&quot;rel&quot;, &quot;stylesheet&quot;);
-            stylesheet.setAttribute(&quot;href&quot;, harness_url + &quot;testharness.css&quot;);
-            var heads = output_document.getElementsByTagName(&quot;head&quot;);
-            if (heads.length) {
-                heads[0].appendChild(stylesheet);
-            }
-        }
-
-        var status_text_harness = {};
-        status_text_harness[harness_status.OK] = &quot;OK&quot;;
-        status_text_harness[harness_status.ERROR] = &quot;Error&quot;;
-        status_text_harness[harness_status.TIMEOUT] = &quot;Timeout&quot;;
-
-        var status_text = {};
-        status_text[Test.prototype.PASS] = &quot;Pass&quot;;
-        status_text[Test.prototype.FAIL] = &quot;Fail&quot;;
-        status_text[Test.prototype.TIMEOUT] = &quot;Timeout&quot;;
-        status_text[Test.prototype.NOTRUN] = &quot;Not Run&quot;;
-
-        var status_number = {};
-        forEach(tests,
-                function(test) {
-                    var status = status_text[test.status];
-                    if (status_number.hasOwnProperty(status)) {
-                        status_number[status] += 1;
-                    } else {
-                        status_number[status] = 1;
-                    }
-                });
-
-        function status_class(status)
-        {
-            return status.replace(/\s/g, '').toLowerCase();
-        }
-
-        var summary_template = [&quot;section&quot;, {&quot;id&quot;:&quot;summary&quot;},
-                                [&quot;h2&quot;, {}, &quot;Summary&quot;],
-                                function()
-                                {
-
-                                    var status = status_text_harness[harness_status.status];
-                                    var rv = [[&quot;section&quot;, {},
-                                               [&quot;p&quot;, {},
-                                                &quot;Harness status: &quot;,
-                                                [&quot;span&quot;, {&quot;class&quot;:status_class(status)},
-                                                 status
-                                                ],
-                                               ]
-                                              ]];
-
-                                    if (harness_status.status === harness_status.ERROR) {
-                                        rv[0].push([&quot;pre&quot;, {}, harness_status.message]);
-                                        if (harness_status.stack) {
-                                            rv[0].push([&quot;pre&quot;, {}, harness_status.stack]);
-                                        }
-                                    }
-                                    return rv;
-                                },
-                                [&quot;p&quot;, {}, &quot;Found ${num_tests} tests&quot;],
-                                function() {
-                                    var rv = [[&quot;div&quot;, {}]];
-                                    var i = 0;
-                                    while (status_text.hasOwnProperty(i)) {
-                                        if (status_number.hasOwnProperty(status_text[i])) {
-                                            var status = status_text[i];
-                                            rv[0].push([&quot;div&quot;, {&quot;class&quot;:status_class(status)},
-                                                        [&quot;label&quot;, {},
-                                                         [&quot;input&quot;, {type:&quot;checkbox&quot;, checked:&quot;checked&quot;}],
-                                                         status_number[status] + &quot; &quot; + status]]);
-                                        }
-                                        i++;
-                                    }
-                                    return rv;
-                                },
-                               ];
-
-        log.appendChild(render(summary_template, {num_tests:tests.length}, output_document));
-
-        forEach(output_document.querySelectorAll(&quot;section#summary label&quot;),
-                function(element)
-                {
-                    on_event(element, &quot;click&quot;,
-                             function(e)
-                             {
-                                 if (output_document.getElementById(&quot;results&quot;) === null) {
-                                     e.preventDefault();
-                                     return;
-                                 }
-                                 var result_class = element.parentNode.getAttribute(&quot;class&quot;);
-                                 var style_element = output_document.querySelector(&quot;style#hide-&quot; + result_class);
-                                 var input_element = element.querySelector(&quot;input&quot;);
-                                 if (!style_element &amp;&amp; !input_element.checked) {
-                                     style_element = output_document.createElementNS(xhtml_ns, &quot;style&quot;);
-                                     style_element.id = &quot;hide-&quot; + result_class;
-                                     style_element.textContent = &quot;table#results &gt; tbody &gt; tr.&quot;+result_class+&quot;{display:none}&quot;;
-                                     output_document.body.appendChild(style_element);
-                                 } else if (style_element &amp;&amp; input_element.checked) {
-                                     style_element.parentNode.removeChild(style_element);
-                                 }
-                             });
-                });
-
-        // This use of innerHTML plus manual escaping is not recommended in
-        // general, but is necessary here for performance.  Using textContent
-        // on each individual &lt;td&gt; adds tens of seconds of execution time for
-        // large test suites (tens of thousands of tests).
-        function escape_html(s)
-        {
-            return s.replace(/\&amp;/g, &quot;&amp;amp;&quot;)
-                .replace(/&lt;/g, &quot;&amp;lt;&quot;)
-                .replace(/&quot;/g, &quot;&amp;quot;&quot;)
-                .replace(/'/g, &quot;&amp;#39;&quot;);
-        }
-
-        function has_assertions()
-        {
-            for (var i = 0; i &lt; tests.length; i++) {
-                if (tests[i].properties.hasOwnProperty(&quot;assert&quot;)) {
-                    return true;
-                }
-            }
-            return false;
-        }
-
-        function get_assertion(test)
-        {
-            if (test.properties.hasOwnProperty(&quot;assert&quot;)) {
-                if (Array.isArray(test.properties.assert)) {
-                    return test.properties.assert.join(' ');
-                }
-                return test.properties.assert;
-            }
-            return '';
-        }
-
-        log.appendChild(document.createElementNS(xhtml_ns, &quot;section&quot;));
-        var assertions = has_assertions();
-        var html = &quot;&lt;h2&gt;Details&lt;/h2&gt;&lt;table id='results' &quot; + (assertions ? &quot;class='assertions'&quot; : &quot;&quot; ) + &quot;&gt;&quot; +
-            &quot;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Test Name&lt;/th&gt;&quot; +
-            (assertions ? &quot;&lt;th&gt;Assertion&lt;/th&gt;&quot; : &quot;&quot;) +
-            &quot;&lt;th&gt;Message&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&quot; +
-            &quot;&lt;tbody&gt;&quot;;
-        for (var i = 0; i &lt; tests.length; i++) {
-            html += '&lt;tr class=&quot;' +
-                escape_html(status_class(status_text[tests[i].status])) +
-                '&quot;&gt;&lt;td&gt;' +
-                escape_html(status_text[tests[i].status]) +
-                &quot;&lt;/td&gt;&lt;td&gt;&quot; +
-                escape_html(tests[i].name) +
-                &quot;&lt;/td&gt;&lt;td&gt;&quot; +
-                (assertions ? escape_html(get_assertion(tests[i])) + &quot;&lt;/td&gt;&lt;td&gt;&quot; : &quot;&quot;) +
-                escape_html(tests[i].message ? tests[i].message : &quot; &quot;) +
-                (tests[i].stack ? &quot;&lt;pre&gt;&quot; +
-                 escape_html(tests[i].stack) +
-                 &quot;&lt;/pre&gt;&quot;: &quot;&quot;) +
-                &quot;&lt;/td&gt;&lt;/tr&gt;&quot;;
-        }
-        html += &quot;&lt;/tbody&gt;&lt;/table&gt;&quot;;
-        try {
-            log.lastChild.innerHTML = html;
-        } catch (e) {
-            log.appendChild(document.createElementNS(xhtml_ns, &quot;p&quot;))
-               .textContent = &quot;Setting innerHTML for the log threw an exception.&quot;;
-            log.appendChild(document.createElementNS(xhtml_ns, &quot;pre&quot;))
-               .textContent = html;
-        }
-    };
-
-    /*
-     * Template code
-     *
-     * A template is just a javascript structure. An element is represented as:
-     *
-     * [tag_name, {attr_name:attr_value}, child1, child2]
-     *
-     * the children can either be strings (which act like text nodes), other templates or
-     * functions (see below)
-     *
-     * A text node is represented as
-     *
-     * [&quot;{text}&quot;, value]
-     *
-     * String values have a simple substitution syntax; ${foo} represents a variable foo.
-     *
-     * It is possible to embed logic in templates by using a function in a place where a
-     * node would usually go. The function must either return part of a template or null.
-     *
-     * In cases where a set of nodes are required as output rather than a single node
-     * with children it is possible to just use a list
-     * [node1, node2, node3]
-     *
-     * Usage:
-     *
-     * render(template, substitutions) - take a template and an object mapping
-     * variable names to parameters and return either a DOM node or a list of DOM nodes
-     *
-     * substitute(template, substitutions) - take a template and variable mapping object,
-     * make the variable substitutions and return the substituted template
-     *
-     */
-
-    function is_single_node(template)
-    {
-        return typeof template[0] === &quot;string&quot;;
-    }
-
-    function substitute(template, substitutions)
-    {
-        if (typeof template === &quot;function&quot;) {
-            var replacement = template(substitutions);
-            if (!replacement) {
-                return null;
-            }
-
-            return substitute(replacement, substitutions);
-        }
-
-        if (is_single_node(template)) {
-            return substitute_single(template, substitutions);
-        }
-
-        return filter(map(template, function(x) {
-                              return substitute(x, substitutions);
-                          }), function(x) {return x !== null;});
-    }
-
-    function substitute_single(template, substitutions)
-    {
-        var substitution_re = /\$\{([^ }]*)\}/g;
-
-        function do_substitution(input) {
-            var components = input.split(substitution_re);
-            var rv = [];
-            for (var i = 0; i &lt; components.length; i += 2) {
-                rv.push(components[i]);
-                if (components[i + 1]) {
-                    rv.push(String(substitutions[components[i + 1]]));
-                }
-            }
-            return rv;
-        }
-
-        function substitute_attrs(attrs, rv)
-        {
-            rv[1] = {};
-            for (var name in template[1]) {
-                if (attrs.hasOwnProperty(name)) {
-                    var new_name = do_substitution(name).join(&quot;&quot;);
-                    var new_value = do_substitution(attrs[name]).join(&quot;&quot;);
-                    rv[1][new_name] = new_value;
-                }
-            }
-        }
-
-        function substitute_children(children, rv)
-        {
-            for (var i = 0; i &lt; children.length; i++) {
-                if (children[i] instanceof Object) {
-                    var replacement = substitute(children[i], substitutions);
-                    if (replacement !== null) {
-                        if (is_single_node(replacement)) {
-                            rv.push(replacement);
-                        } else {
-                            extend(rv, replacement);
-                        }
-                    }
-                } else {
-                    extend(rv, do_substitution(String(children[i])));
-                }
-            }
-            return rv;
-        }
-
-        var rv = [];
-        rv.push(do_substitution(String(template[0])).join(&quot;&quot;));
-
-        if (template[0] === &quot;{text}&quot;) {
-            substitute_children(template.slice(1), rv);
-        } else {
-            substitute_attrs(template[1], rv);
-            substitute_children(template.slice(2), rv);
-        }
-
-        return rv;
-    }
-
-    function make_dom_single(template, doc)
-    {
-        var output_document = doc || document;
-        var element;
-        if (template[0] === &quot;{text}&quot;) {
-            element = output_document.createTextNode(&quot;&quot;);
-            for (var i = 1; i &lt; template.length; i++) {
-                element.data += template[i];
-            }
-        } else {
-            element = output_document.createElementNS(xhtml_ns, template[0]);
-            for (var name in template[1]) {
-                if (template[1].hasOwnProperty(name)) {
-                    element.setAttribute(name, template[1][name]);
-                }
-            }
-            for (var i = 2; i &lt; template.length; i++) {
-                if (template[i] instanceof Object) {
-                    var sub_element = make_dom(template[i]);
-                    element.appendChild(sub_element);
-                } else {
-                    var text_node = output_document.createTextNode(template[i]);
-                    element.appendChild(text_node);
-                }
-            }
-        }
-
-        return element;
-    }
-
-    function make_dom(template, substitutions, output_document)
-    {
-        if (is_single_node(template)) {
-            return make_dom_single(template, output_document);
-        }
-
-        return map(template, function(x) {
-                       return make_dom_single(x, output_document);
-                   });
-    }
-
-    function render(template, substitutions, output_document)
-    {
-        return make_dom(substitute(template, substitutions), output_document);
-    }
-
-    /*
-     * Utility funcions
-     */
-    function assert(expected_true, function_name, description, error, substitutions)
-    {
-        if (tests.tests.length === 0) {
-            tests.set_file_is_test();
-        }
-        if (expected_true !== true) {
-            var msg = make_message(function_name, description,
-                                   error, substitutions);
-            throw new AssertionError(msg);
-        }
-    }
-
-    function AssertionError(message)
-    {
-        this.message = message;
-        this.stack = this.get_stack();
-    }
-
-    AssertionError.prototype = Object.create(Error.prototype);
-
-    AssertionError.prototype.get_stack = function() {
-        var stack = new Error().stack;
-        // IE11 does not initialize 'Error.stack' until the object is thrown.
-        if (!stack) {
-            try {
-                throw new Error();
-            } catch (e) {
-                stack = e.stack;
-            }
-        }
-
-        var lines = stack.split(&quot;\n&quot;);
-
-        // Create a pattern to match stack frames originating within testharness.js.  These include the
-        // script URL, followed by the line/col (e.g., '/resources/testharness.js:120:21').
-        var re = new RegExp((get_script_url() || &quot;\\btestharness.js&quot;) + &quot;:\\d+:\\d+&quot;);
-
-        // Some browsers include a preamble that specifies the type of the error object.  Skip this by
-        // advancing until we find the first stack frame originating from testharness.js.
-        var i = 0;
-        while (!re.test(lines[i]) &amp;&amp; i &lt; lines.length) {
-            i++;
-        }
-
-        // Then skip the top frames originating from testharness.js to begin the stack at the test code.
-        while (re.test(lines[i]) &amp;&amp; i &lt; lines.length) {
-            i++;
-        }
-
-        // Paranoid check that we didn't skip all frames.  If so, return the original stack unmodified.
-        if (i &gt;= lines.length) {
-            return stack;
-        }
-
-        return lines.slice(i).join(&quot;\n&quot;);
-    }
-
-    function make_message(function_name, description, error, substitutions)
-    {
-        for (var p in substitutions) {
-            if (substitutions.hasOwnProperty(p)) {
-                substitutions[p] = format_value(substitutions[p]);
-            }
-        }
-        var node_form = substitute([&quot;{text}&quot;, &quot;${function_name}: ${description}&quot; + error],
-                                   merge({function_name:function_name,
-                                          description:(description?description + &quot; &quot;:&quot;&quot;)},
-                                          substitutions));
-        return node_form.slice(1).join(&quot;&quot;);
-    }
-
-    function filter(array, callable, thisObj) {
-        var rv = [];
-        for (var i = 0; i &lt; array.length; i++) {
-            if (array.hasOwnProperty(i)) {
-                var pass = callable.call(thisObj, array[i], i, array);
-                if (pass) {
-                    rv.push(array[i]);
-                }
-            }
-        }
-        return rv;
-    }
-
-    function map(array, callable, thisObj)
-    {
-        var rv = [];
-        rv.length = array.length;
-        for (var i = 0; i &lt; array.length; i++) {
-            if (array.hasOwnProperty(i)) {
-                rv[i] = callable.call(thisObj, array[i], i, array);
-            }
-        }
-        return rv;
-    }
-
-    function extend(array, items)
-    {
-        Array.prototype.push.apply(array, items);
-    }
-
-    function forEach(array, callback, thisObj)
-    {
-        for (var i = 0; i &lt; array.length; i++) {
-            if (array.hasOwnProperty(i)) {
-                callback.call(thisObj, array[i], i, array);
-            }
-        }
-    }
-
-    function merge(a,b)
-    {
-        var rv = {};
-        var p;
-        for (p in a) {
-            rv[p] = a[p];
-        }
-        for (p in b) {
-            rv[p] = b[p];
-        }
-        return rv;
-    }
-
-    function expose(object, name)
-    {
-        var components = name.split(&quot;.&quot;);
-        var target = test_environment.global_scope();
-        for (var i = 0; i &lt; components.length - 1; i++) {
-            if (!(components[i] in target)) {
-                target[components[i]] = {};
-            }
-            target = target[components[i]];
-        }
-        target[components[components.length - 1]] = object;
-    }
-
-    function is_same_origin(w) {
-        try {
-            'random_prop' in w;
-            return true;
-        } catch (e) {
-            return false;
-        }
-    }
-
-    /** Returns the 'src' URL of the first &lt;script&gt; tag in the page to include the file 'testharness.js'. */
-    function get_script_url()
-    {
-        if (!('document' in self)) {
-            return undefined;
-        }
-
-        var scripts = document.getElementsByTagName(&quot;script&quot;);
-        for (var i = 0; i &lt; scripts.length; i++) {
-            var src;
-            if (scripts[i].src) {
-                src = scripts[i].src;
-            } else if (scripts[i].href) {
-                //SVG case
-                src = scripts[i].href.baseVal;
-            }
-
-            var matches = src &amp;&amp; src.match(/^(.*\/|)testharness\.js$/);
-            if (matches) {
-                return src;
-            }
-        }
-        return undefined;
-    }
-
-    /** Returns the URL path at which the files for testharness.js are assumed to reside (e.g., '/resources/').
-        The path is derived from inspecting the 'src' of the &lt;script&gt; tag that included 'testharness.js'. */
-    function get_harness_url()
-    {
-        var script_url = get_script_url();
-
-        // Exclude the 'testharness.js' file from the returned path, but '+ 1' to include the trailing slash.
-        return script_url ? script_url.slice(0, script_url.lastIndexOf('/') + 1) : undefined;
-    }
-
-    function supports_post_message(w)
-    {
-        var supports;
-        var type;
-        // Given IE implements postMessage across nested iframes but not across
-        // windows or tabs, you can't infer cross-origin communication from the presence
-        // of postMessage on the current window object only.
-        //
-        // Touching the postMessage prop on a window can throw if the window is
-        // not from the same origin AND post message is not supported in that
-        // browser. So just doing an existence test here won't do, you also need
-        // to wrap it in a try..cacth block.
-        try {
-            type = typeof w.postMessage;
-            if (type === &quot;function&quot;) {
-                supports = true;
-            }
-
-            // IE8 supports postMessage, but implements it as a host object which
-            // returns &quot;object&quot; as its `typeof`.
-            else if (type === &quot;object&quot;) {
-                supports = true;
-            }
-
-            // This is the case where postMessage isn't supported AND accessing a
-            // window property across origins does NOT throw (e.g. old Safari browser).
-            else {
-                supports = false;
-            }
-        } catch (e) {
-            // This is the case where postMessage isn't supported AND accessing a
-            // window property across origins throws (e.g. old Firefox browser).
-            supports = false;
-        }
-        return supports;
-    }
-
-    /**
-     * Setup globals
-     */
-
-    var tests = new Tests();
-
-    addEventListener(&quot;error&quot;, function(e) {
-        if (tests.file_is_test) {
-            var test = tests.tests[0];
-            if (test.phase &gt;= test.phases.HAS_RESULT) {
-                return;
-            }
-            test.set_status(test.FAIL, e.message, e.stack);
-            test.phase = test.phases.HAS_RESULT;
-            test.done();
-            done();
-        } else if (!tests.allow_uncaught_exception) {
-            tests.status.status = tests.status.ERROR;
-            tests.status.message = e.message;
-            tests.status.stack = e.stack;
-        }
-    });
-
-    test_environment.on_tests_ready();
-
-})();
-// vim: set expandtab shiftwidth=4 tabstop=4:
</del></span></pre></div>
<a id="trunkLayoutTestsimportedblinkhttptestsresourcestestharnessreportjs"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/imported/blink/http/tests/resources/testharnessreport.js (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/blink/http/tests/resources/testharnessreport.js        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/imported/blink/http/tests/resources/testharnessreport.js        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -1,93 +0,0 @@
</span><del>-/*
- * This file is intended for vendors to implement
- * code needed to integrate testharness.js tests with their own test systems.
- *
- * Typically such integration will attach callbacks when each test is
- * has run, using add_result_callback(callback(test)), or when the whole test file has
- * completed, using add_completion_callback(callback(tests, harness_status)).
- *
- * For more documentation about the callback functions and the
- * parameters they are called with see testharness.js
- */
-
-// Setup for WebKit JavaScript tests
-if (self.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.waitUntilDone();
-    testRunner.setCanOpenWindows();
-    // Let's restrict calling testharness timeout() to wptserve tests for the moment.
-    // That will limit the impact to a small number of tests.
-    // The risk is that testharness timeout() might be called to late on slow bots to finish properly.
-    if (testRunner.timeout &amp;&amp; location.port == 8800)
-        setTimeout(timeout, testRunner.timeout * 0.9);
-}
-
-// Function used to convert the test status code into
-// the corresponding string
-function convertResult(resultStatus)
-{
-    if(resultStatus == 0)
-        return(&quot;PASS&quot;);
-    else if(resultStatus == 1)
-        return(&quot;FAIL&quot;);
-    else if(resultStatus == 2)
-        return(&quot;TIMEOUT&quot;);
-    else
-        return(&quot;NOTRUN&quot;);
-}
-
-if (self.testRunner) {
-    /* Disable the default output of testharness.js.  The default output formats
-    *  test results into an HTML table.  When that table is dumped as text, no
-    *  spacing between cells is preserved, and it is therefore not readable. By
-    *  setting output to false, the HTML table will not be created
-    */
-    setup({&quot;output&quot;: false, &quot;explicit_timeout&quot;: true});
-
-    /*  Using a callback function, test results will be added to the page in a 
-    *   manner that allows dumpAsText to produce readable test results
-    */
-    add_completion_callback(function (tests, harness_status) {
-        // Wait for any other completion callbacks
-        setTimeout(function() {
-            var results = document.createElement(&quot;pre&quot;);
-            var resultStr = &quot;\n&quot;;
-
-            // Sanitizes the given text for display in test results.
-            function sanitize(text) {
-                if (!text) {
-                    return &quot;&quot;;
-                }
-                text = text.replace(/\0/g, &quot;\\0&quot;);
-                return text.replace(/\r/g, &quot;\\r&quot;);
-            }
-
-            if(harness_status.status != 0)
-                resultStr += &quot;Harness Error (&quot; + convertResult(harness_status.status) + &quot;), message = &quot; + harness_status.message + &quot;\n\n&quot;;
-
-            for (var i = 0; i &lt; tests.length; i++) {
-                var message = sanitize(tests[i].message);
-                if (tests[i].status == 1 &amp;&amp; !tests[i].dumpStack) {
-                    // Remove stack for failed tests for proper string comparison without file paths.
-                    // For a test to dump the stack set its dumpStack attribute to true.
-                    var stackIndex = message.indexOf(&quot;(stack:&quot;);
-                    if (stackIndex &gt; 0)
-                        message = message.substr(0, stackIndex);
-                }
-                resultStr += convertResult(tests[i].status) + &quot; &quot; + sanitize(tests[i].name) + &quot; &quot; + message + &quot;\n&quot;;
-            }
-
-            results.innerText = resultStr;
-            var log = document.getElementById(&quot;log&quot;);
-            if (log)
-                log.appendChild(results);
-            else
-                document.body.appendChild(results);
-
-            testRunner.notifyDone();
-        }, 0);
-    });
-
-    if (window.internals)
-        window.internals.setResourceTimingSupport(true);
-}
</del></span></pre></div>
<a id="trunkLayoutTestsplatformgtkTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/TestExpectations (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/TestExpectations        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/platform/gtk/TestExpectations        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -658,18 +658,6 @@
</span><span class="cx"> 
</span><span class="cx"> # Since r200320 resource-timing feature is a runtime flag.
</span><span class="cx"> webkit.org/b/158617 fast/dom/Window/window-properties-performance-resource-timing.html [ Failure ]
</span><del>-webkit.org/b/158617 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_connection_reuse.html [ Timeout ]
-webkit.org/b/158617 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_data_url.html [ Failure ]
-webkit.org/b/158617 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_failures.html [ Failure ]
-webkit.org/b/158617 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_reparenting.html [ Failure ]
-webkit.org/b/158617 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_script_types.html [ Failure ]
-webkit.org/b/158617 http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMarks.html [ Failure ]
-webkit.org/b/158617 http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMeasures.html [ Failure ]
-webkit.org/b/158617 http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type.html [ Failure ]
-webkit.org/b/158617 http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark.html [ Failure ]
-webkit.org/b/158617 http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_associate_with_navigation_timing.html [ Failure ]
-webkit.org/b/158617 http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure.html [ Failure ]
-webkit.org/b/158617 http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_method_exist.html [ Failure ]
</del><span class="cx"> 
</span><span class="cx"> webkit.org/b/160024 platform/gtk/scrollbars/main-frame-scrollbar-horizontal-wheel-scroll.html [ Failure ]
</span><span class="cx"> 
</span><span class="lines">@@ -963,14 +951,10 @@
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/127280 media/audio-concurrent-supported.html [ Failure Timeout Pass ]
</span><span class="cx"> 
</span><del>-webkit.org/b/127682 http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order.html [ Failure Pass ]
-
</del><span class="cx"> webkit.org/b/127742 fast/spatial-navigation/snav-unit-overflow-and-scroll-in-direction.html [ Failure Pass ]
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/127745 fast/parser/document-write-basic.html [ Crash Pass ]
</span><span class="cx"> 
</span><del>-webkit.org/b/127733 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_dynamic_insertion.html [ Failure Pass ]
-
</del><span class="cx"> webkit.org/b/127735 media/crash-closing-page-with-media-as-plugin-fallback.html [ Timeout Pass ]
</span><span class="cx"> 
</span><span class="cx"> # Flakey on both Snow Leopard and Windows 7
</span><span class="lines">@@ -1015,7 +999,6 @@
</span><span class="cx"> Bug(GTK) fast/writing-mode/japanese-ruby-horizontal-bt.html [ Failure Pass ]
</span><span class="cx"> Bug(GTK) fast/writing-mode/japanese-ruby-vertical-lr.html [ Failure Pass ]
</span><span class="cx"> Bug(GTK) fast/writing-mode/japanese-ruby-vertical-rl.html [ Failure Pass ]
</span><del>-Bug(GTK) http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object.html [ Failure Pass ]
</del><span class="cx"> webkit.org/b/131533 media/track/track-remove-active-cue-crash.html [ Timeout Pass ]
</span><span class="cx"> webkit.org/b/131534 media/media-ended.html [ Timeout Pass ]
</span><span class="cx"> webkit.org/b/131535 media/audio-mpeg-supported.html [ Timeout Pass ]
</span><span class="lines">@@ -1874,8 +1857,6 @@
</span><span class="cx"> Bug(GTK) http/tests/security/xssAuditor/xss-filter-bypass-big5.html [ Failure ]
</span><span class="cx"> Bug(GTK) http/tests/security/xssAuditor/xss-filter-bypass-sjis.html [ Failure ]
</span><span class="cx"> 
</span><del>-Bug(GTK) http/tests/w3c/webperf/submission/Intel/resource-timing [ Skip ]
-
</del><span class="cx"> Bug(GTK) fast/backgrounds/background-position-parsing.html [ Failure ]
</span><span class="cx"> 
</span><span class="cx"> Bug(GTK) fast/css/sticky/sticky-top-zoomed.html [ ImageOnlyFailure ]
</span><span class="lines">@@ -2109,13 +2090,6 @@
</span><span class="cx"> # Leaking state into the next test.
</span><span class="cx"> #webkit.org/b/85522 http/tests/security/sandboxed-iframe-form-top.html [ Skip ]
</span><span class="cx"> 
</span><del>-webkit.org/b/103927 http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request.html [ Failure ]
-webkit.org/b/103927 http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request.html [ Failure ]
-webkit.org/b/103927 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_attribute_order.html [ Failure ]
-webkit.org/b/103927 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_frame_initiator_type.html [ Failure ]
-webkit.org/b/103927 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_initiator_types.html [ Failure ]
-webkit.org/b/103927 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_redirects.html [ Failure ]
-
</del><span class="cx"> webkit.org/b/107118 fast/canvas/canvas-quadratic-same-endpoint.html [ Failure ]
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/108973 fast/css/negative-text-indent-in-inline-block.html [ ImageOnlyFailure ]
</span><span class="lines">@@ -2133,10 +2107,6 @@
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/99893 svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg [ ImageOnlyFailure Pass ]
</span><span class="cx"> 
</span><del>-# Timing out because of webkit.org/b/158617
-webkit.org/b/113772 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_iframe_self_navigation.html [ Failure Timeout ]
-webkit.org/b/113772 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_cached.html [ Failure Timeout ]
-
</del><span class="cx"> webkit.org/b/115025 fast/events/constructors/mouse-event-constructor.html [ Failure ]
</span><span class="cx"> webkit.org/b/115025 fast/events/constructors/wheel-event-constructor.html [ Failure ]
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatorTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/TestExpectations (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/TestExpectations        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/platform/ios-simulator/TestExpectations        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -185,9 +185,6 @@
</span><span class="cx"> # X-Content-Type-Options (ENABLE_NOSNIFF) is not enabled.
</span><span class="cx"> webkit.org/b/136452 http/tests/security/contentTypeOptions
</span><span class="cx"> 
</span><del>-# webkit.org/b/61138, webkit.org/b/84893, webkit.org/b/133321
-http/tests/w3c/webperf
-
</del><span class="cx"> # IndexedDB tests have numerous unexpected failures on iOS
</span><span class="cx"> webkit.org/b/144475 storage/indexeddb
</span><span class="cx"> 
</span><span class="lines">@@ -2740,4 +2737,4 @@
</span><span class="cx"> webkit.org/b/158836 imported/w3c/web-platform-tests/encrypted-media [ Skip ]
</span><span class="cx"> 
</span><span class="cx"> # Only Mac has implemented DictionaryLookup
</span><del>-fast/layers/prevent-hit-test-during-layout.html [ Skip ]
</del><span class="cx">\ No newline at end of file
</span><ins>+fast/layers/prevent-hit-test-during-layout.html [ Skip ]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/TestExpectations (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/TestExpectations        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/platform/mac/TestExpectations        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -180,9 +180,6 @@
</span><span class="cx"> # Directory upload is not enabled.
</span><span class="cx"> fast/forms/file/input-file-directory-upload.html
</span><span class="cx"> 
</span><del>-# webkit.org/b/61138, webkit.org/b/84893, webkit.org/b/133321
-http/tests/w3c/webperf [ Skip ]
-
</del><span class="cx"> # Perf tests are very flaky, because they run in parallel with other tests.
</span><span class="cx"> perf
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsplatformwinTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/win/TestExpectations (208104 => 208105)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/win/TestExpectations        2016-10-29 16:03:25 UTC (rev 208104)
+++ trunk/LayoutTests/platform/win/TestExpectations        2016-10-29 16:21:20 UTC (rev 208105)
</span><span class="lines">@@ -372,7 +372,6 @@
</span><span class="cx"> webkit.org/b/42435 http/tests/misc/webtiming-slow-load.php [ Skip ]
</span><span class="cx"> webkit.org/b/42435 http/tests/misc/webtiming-ssl.php [ Skip ]
</span><span class="cx"> webkit.org/b/42435 http/tests/misc/webtiming-two-redirects.php [ Skip ]
</span><del>-webkit.org/b/42435 http/tests/w3c/webperf [ Skip ]
</del><span class="cx"> 
</span><span class="cx"> # TODO Application Cache Quotas
</span><span class="cx"> webkit.org/b/43458 http/tests/appcache/origin-quota.html [ Skip ]
</span><span class="lines">@@ -577,12 +576,6 @@
</span><span class="cx"> webkit.org/b/140518 [ Release ] fast/events/drag-and-drop-autoscroll.html [ Failure ]
</span><span class="cx"> fast/events/clear-drag-state.html [ Failure ]
</span><span class="cx"> 
</span><del>-# TODO User Timing is not enabled yet. so skip it.
-webkit.org/b/84893 http/tests/w3c/webperf/submission/Intel/user-timing [ Skip ]
-
-# TODO Resource Timing is not enable yet, skip it.
-webkit.org/b/61138 http/tests/w3c/webperf/submission/Intel/resource-timing [ Skip ]
-
</del><span class="cx"> # Need support for ResourceHandle::didChangePriority and DRT support
</span><span class="cx"> webkit.org/b/111016 http/tests/loading/promote-img-preload-priority.html [ Skip ] # Crash
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>