Bug 1163709 - Update web-platform-tests to revision 5aa79b303c81164549041d1bd9f7887390a10f72, a=testonly
authorJames Graham <james@hoppipolla.co.uk>
Mon, 11 May 2015 14:28:20 +0100
changeset 243302 c56dffd8e15d54564192deb9a2a23b9bd409860a
parent 243301 5eec0168c91685ed54993c1c923c33cad65965d7
child 243303 ed9733797a3116fff8f62f489c84aaaa2e2ecc8c
push id59645
push userjames@hoppipolla.co.uk
push dateMon, 11 May 2015 21:06:26 +0000
treeherdermozilla-inbound@79630cdf61aa [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1163709
milestone40.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1163709 - Update web-platform-tests to revision 5aa79b303c81164549041d1bd9f7887390a10f72, a=testonly
testing/web-platform/meta/MANIFEST.json
testing/web-platform/meta/mozilla-sync
testing/web-platform/tests/IndexedDB/idbcursor_advance_index.htm
testing/web-platform/tests/IndexedDB/idbcursor_advance_objectstore.htm
testing/web-platform/tests/IndexedDB/idbdatabase_close.htm
testing/web-platform/tests/IndexedDB/idbdatabase_createObjectStore11.htm
testing/web-platform/tests/IndexedDB/idbfactory_open9.htm
testing/web-platform/tests/IndexedDB/idbobjectstore_openCursor.htm
testing/web-platform/tests/IndexedDB/idbtransaction_abort.htm
testing/web-platform/tests/IndexedDB/idbversionchangeevent.htm
testing/web-platform/tests/docs/github-101.md
testing/web-platform/tests/html/semantics/document-metadata/the-meta-element/the-lang-attribute-012.html
testing/web-platform/tests/html/semantics/forms/the-input-element/pattern_attribute.html
testing/web-platform/tests/html/semantics/forms/the-input-element/required_attribute.html
testing/web-platform/tests/html/semantics/forms/the-input-element/search_input.html
testing/web-platform/tests/html/semantics/forms/the-input-element/telephone.html
testing/web-platform/tests/html/semantics/forms/the-input-element/time.html
testing/web-platform/tests/html/semantics/forms/the-input-element/url.html
testing/web-platform/tests/html/semantics/scripting-1/the-template-element/resources/template-child-nodes-div.xhtml
testing/web-platform/tests/html/semantics/scripting-1/the-template-element/resources/template-child-nodes-nested.xhtml
testing/web-platform/tests/html/semantics/tabular-data/the-table-element/caption-methods.html
testing/web-platform/tests/html/semantics/text-level-semantics/the-time-element/001.html
testing/web-platform/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/content.html
testing/web-platform/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.html
testing/web-platform/tests/lint.whitelist
testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/111.html
testing/web-platform/tests/referrer-policy/README.html
testing/web-platform/tests/referrer-policy/generic/common.js
testing/web-platform/tests/referrer-policy/no-referrer-policy/no-referrer-policy.html
testing/web-platform/tests/referrer-policy/no-referrer-policy/no-referrer-policy.subresource.py
testing/web-platform/tests/referrer-policy/no-referrer-policy/no-referrer-policy.subresource.template.html
testing/web-platform/tests/webmessaging/with-ports/020.html
testing/web-platform/tests/webmessaging/with-ports/021.html
testing/web-platform/tests/webmessaging/without-ports/020.html
testing/web-platform/tests/webmessaging/without-ports/021.html
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -16119,16 +16119,20 @@
         "path": "quirks-mode/table-cell-width-calculation.html",
         "url": "/quirks-mode/table-cell-width-calculation.html"
       },
       {
         "path": "quirks-mode/unitless-length.html",
         "url": "/quirks-mode/unitless-length.html"
       },
       {
+        "path": "referrer-policy/no-referrer-policy/no-referrer-policy.html",
+        "url": "/referrer-policy/no-referrer-policy/no-referrer-policy.html"
+      },
+      {
         "path": "resource-timing/test_resource_timing.html",
         "url": "/resource-timing/test_resource_timing.html"
       },
       {
         "path": "selectors-api/tests/submissions/Opera/ParentNode-query-queryAll.html",
         "url": "/selectors-api/tests/submissions/Opera/ParentNode-query-queryAll.html"
       },
       {
@@ -24836,12 +24840,12 @@
             "/webvtt/rendering/cues-with-video/processing-model/too_many_cues_wrapped-ref.html",
             "=="
           ]
         ],
         "url": "/webvtt/rendering/cues-with-video/processing-model/too_many_cues_wrapped.html"
       }
     ]
   },
-  "rev": "28de405307d9613052ccd1228be7888e109738a6",
+  "rev": "5aa79b303c81164549041d1bd9f7887390a10f72",
   "url_base": "/",
   "version": 2
 }
\ No newline at end of file
--- a/testing/web-platform/meta/mozilla-sync
+++ b/testing/web-platform/meta/mozilla-sync
@@ -1,1 +1,1 @@
-6e958cb0c757bc80226f22d98a93f7fec974aa6c
\ No newline at end of file
+36bf12e75b3d8fc5ac90187f21d50a3eed5a0442
\ No newline at end of file
--- a/testing/web-platform/tests/IndexedDB/idbcursor_advance_index.htm
+++ b/testing/web-platform/tests/IndexedDB/idbcursor_advance_index.htm
@@ -11,17 +11,17 @@
       t = async_test(),
       records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
                   { pKey: "primaryKey_1", iKey: "indexKey_1" },
                   { pKey: "primaryKey_2", iKey: "indexKey_2" },
                   { pKey: "primaryKey_3", iKey: "indexKey_3" }];
 
     var open_rq = createdb(t);
     open_rq.onupgradeneeded = function(e) {
-        db = event.target.result;
+        db = e.target.result;
         var store = db.createObjectStore("test", {keyPath:"pKey"});
         store.createIndex("idx", "iKey");
 
         for(var i = 0; i < records.length; i++) {
             store.add(records[i]);
         }
     };
 
--- a/testing/web-platform/tests/IndexedDB/idbcursor_advance_objectstore.htm
+++ b/testing/web-platform/tests/IndexedDB/idbcursor_advance_objectstore.htm
@@ -11,17 +11,17 @@
       t = async_test(),
       records = [ { pKey: "primaryKey_0" },
                   { pKey: "primaryKey_1" },
                   { pKey: "primaryKey_2" },
                   { pKey: "primaryKey_3" }];
 
     var open_rq = createdb(t);
     open_rq.onupgradeneeded = function(e) {
-        db = event.target.result;
+        db = e.target.result;
         var store = db.createObjectStore("test", {keyPath:"pKey"});
 
         for(var i = 0; i < records.length; i++) {
             store.add(records[i]);
         }
     };
 
     open_rq.onsuccess = function (e) {
--- a/testing/web-platform/tests/IndexedDB/idbdatabase_close.htm
+++ b/testing/web-platform/tests/IndexedDB/idbdatabase_close.htm
@@ -24,17 +24,17 @@ open_rq.onsuccess = function(e) {
     rq.onblocked = t.step_func(function (e) {
         blocked_fired = counter++;
         db.close();
     });
     rq.onupgradeneeded = t.step_func(function (e) {
         upgradeneeded_fired = counter++;
     });
     rq.onsuccess = t.step_func(function (e) {
-        assert_equals(versionchange_fired, 0, 'block event fired #')
+        assert_equals(versionchange_fired, 0, 'versionchange event fired #')
         assert_equals(blocked_fired, 1, 'block event fired #')
         assert_equals(upgradeneeded_fired, 2, 'second upgradeneeded event fired #')
 
         t.done();
     });
     rq.onerror = fail(t, 'Unexpected database deletion error');
 };
 
--- a/testing/web-platform/tests/IndexedDB/idbdatabase_createObjectStore11.htm
+++ b/testing/web-platform/tests/IndexedDB/idbdatabase_createObjectStore11.htm
@@ -1,11 +1,11 @@
 <!DOCTYPE html>
 <meta charset="utf-8">
-<title>IDBDatabase.createObjectStore() - Attampt Create Exsists Object Store With Difference keyPath throw ConstraintError </title>
+<title>IDBDatabase.createObjectStore() - attempting to create an existing object store with a different keyPath throw ConstraintError </title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBDatabase-createObjectStore-IDBObjectStore-DOMString-name-IDBObjectStoreParameters-optionalParameters">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="support.js"></script>
 <div id="log"></div>
 <script>
 var t = async_test(),
--- a/testing/web-platform/tests/IndexedDB/idbfactory_open9.htm
+++ b/testing/web-platform/tests/IndexedDB/idbfactory_open9.htm
@@ -42,17 +42,17 @@ should_throw({
     toString: function() { return {}; },
     valueOf: function() { return {}; },
 }, 'object (third)')
 
 /* Valid */
 
 function should_work(val) {
     var t = async_test("Calling open() with version argument 1.5 should not throw.")
-    var rq = createdb(t)
+    var rq = createdb(t, val)
     rq.onupgradeneeded = function() {
         t.done()
     }
 }
 
 should_work(1.5)
 
 </script>
--- a/testing/web-platform/tests/IndexedDB/idbobjectstore_openCursor.htm
+++ b/testing/web-platform/tests/IndexedDB/idbobjectstore_openCursor.htm
@@ -20,20 +20,23 @@
 
     open_rq.onsuccess = function(e) {
         var count = 0
         var txn = db.transaction("store")
 
         txn.objectStore("store")
            .openCursor().onsuccess = this.step_func(function(e)
         {
-            if (e.target.result)
+            if (e.target.result) {
+                count += 1;
                 e.target.result.continue()
+            }
         })
 
         txn.oncomplete = this.step_func(function() {
+            assert_equals(count, 100);
             this.done()
         })
     }
 
 </script>
 
 <div id="log"></div>
--- a/testing/web-platform/tests/IndexedDB/idbtransaction_abort.htm
+++ b/testing/web-platform/tests/IndexedDB/idbtransaction_abort.htm
@@ -2,17 +2,16 @@
 <meta charset=utf-8>
 <title>IDBTransaction - abort</title>
 <link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
 <script src=/resources/testharness.js></script>
 <script src=/resources/testharnessreport.js></script>
 <script src=support.js></script>
 
 <script>
-    // TODO XXX DO THE IDBTransaction abort test here here
     var db, aborted,
       t = async_test(document.title, {timeout: 10000}),
       record = { indexedProperty: "bar" };
 
     var open_rq = createdb(t);
     open_rq.onupgradeneeded = function(e) {
         db = e.target.result;
         var txn = e.target.transaction,
--- a/testing/web-platform/tests/IndexedDB/idbversionchangeevent.htm
+++ b/testing/web-platform/tests/IndexedDB/idbversionchangeevent.htm
@@ -31,17 +31,17 @@
                 assert_equals(e.oldVersion, 3, "old version (versionchange)");
                 assert_equals(e.newVersion, null, "new version (versionchange)");
                 assert_true(e instanceof IDBVersionChangeEvent, "versionchange instanceof IDBVersionChangeEvent");
                 db.close();
             });
 
             // Errors
             db.onerror = fail(t, "db.error");
-            db.abort = fail(t, "db.abort");
+            db.onabort = fail(t, "db.abort");
 
             setTimeout(t.step_func(deleteDB), 10);
         });
 
         // Errors
         openrq.onerror = fail(t, "open.error");
         openrq.onblocked = fail(t, "open.blocked");
 
--- a/testing/web-platform/tests/docs/github-101.md
+++ b/testing/web-platform/tests/docs/github-101.md
@@ -262,17 +262,17 @@ GitHub UI.  Below is one method and othe
 
     f.  If you'd like to add more detailed comments, use the comment field
     below.
 
     g.  Click ![the send pull request button][sendpullrequest]
 
 
 4. Wait for feedback on your pull request and once your pull request is
-accepted, detele youre branch (see '
+accepted, delete your branch (see '
 [When Pull Request is Accepted][cleanup]').
 
 That's it! If you're currently at a Test the Web Forward event, find an
 expert nearby and ask for a review. If you're doing this on your own
 (AWESOME!), your pull request will go into a queue and will be reviewed
 soon.
 
 ## Modify
--- a/testing/web-platform/tests/html/semantics/document-metadata/the-meta-element/the-lang-attribute-012.html
+++ b/testing/web-platform/tests/html/semantics/document-metadata/the-meta-element/the-lang-attribute-012.html
@@ -5,28 +5,28 @@
  <meta http-equiv="Content-Language" content="ko,zh,ja" >
 <title>Multiple languages in Content-Language meta element</title>
 <link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
 <link rel='help' href='https://html.spec.whatwg.org/multipage/#pragma-directives'>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name='flags' content='dom'>
 <style type='text/css'>
-		#colonlangcontroltest { color: red; font-weight: bold; width: 400px; }
-		#colonlangcontroltest:lang(xx) { display:none; }
+    #colonlangcontroltest { color: red; font-weight: bold; width: 400px; }
+    #colonlangcontroltest:lang(xx) { display:none; }
 .test div { width: 50px; }
 
 #box:lang(ko) { width: 100px; }
 #box:lang(zh) { width: 100px; }
 #box:lang(ja) { width: 100px; }
 
-		/* styling for debugging related notes */
-		 .notes span:lang(ko) { background-color: #0000FF; color: white; padding: 0 5px; }
-		 .notes span:lang(zh) { background-color: #0000FF; color: white; padding: 0 5px; }
-		 .notes span:lang(ja) { background-color: #0000FF; color: white; padding: 0 5px; }
+    /* styling for debugging related notes */
+     .notes span:lang(ko) { background-color: #0000FF; color: white; padding: 0 5px; }
+     .notes span:lang(zh) { background-color: #0000FF; color: white; padding: 0 5px; }
+     .notes span:lang(ja) { background-color: #0000FF; color: white; padding: 0 5px; }
 
 </style>
 </head>
 <body>
 
 
 
 <div class="test"><div id="box">&#xA0;</div></div>
--- a/testing/web-platform/tests/html/semantics/forms/the-input-element/pattern_attribute.html
+++ b/testing/web-platform/tests/html/semantics/forms/the-input-element/pattern_attribute.html
@@ -1,34 +1,34 @@
 <!DOCTYPE html>
 <html>
 
   <head>
     <title>Pattern Attribute</title>
     <meta name=viewport content="width=device-width, maximum-scale=1.0, user-scalable=no" />
-	  <link rel="author" title="Fabrice Clari" href="mailto:f.clari@inno-group.com">
-	  <link rel="author" title="Dimitri Bocquet" href="mailto:Dimitri.Bocquet@mosquito-fp7.eu">
-	  <link rel="help" href="https://html.spec.whatwg.org/multipage/#attr-input-pattern">
+    <link rel="author" title="Fabrice Clari" href="mailto:f.clari@inno-group.com">
+    <link rel="author" title="Dimitri Bocquet" href="mailto:Dimitri.Bocquet@mosquito-fp7.eu">
+    <link rel="help" href="https://html.spec.whatwg.org/multipage/#attr-input-pattern">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
   </head>
 
   <body>
 
 
-  		<h1>Pattern Attribute</h1>
-  		<div style="display: none">
-  		<input pattern="[a-z]{3}" value="abcd" title="three letters max"/>
-		</div>
+      <h1>Pattern Attribute</h1>
+      <div style="display: none">
+      <input pattern="[a-z]{3}" value="abcd" title="three letters max"/>
+    </div>
 
     <div id="log">
     </div>
 
-	<script type="text/javascript">
+  <script type="text/javascript">
 
 
-		test(function() {assert_equals(document.getElementsByTagName("input")[0].getAttribute("pattern"), "[a-z]{3}")}, "pattern attribute support on input element");
+    test(function() {assert_equals(document.getElementsByTagName("input")[0].getAttribute("pattern"), "[a-z]{3}")}, "pattern attribute support on input element");
 
-	</script>
+  </script>
 
   </body>
 
 </html>
--- a/testing/web-platform/tests/html/semantics/forms/the-input-element/required_attribute.html
+++ b/testing/web-platform/tests/html/semantics/forms/the-input-element/required_attribute.html
@@ -1,34 +1,34 @@
 <!DOCTYPE html>
 <html>
 
   <head>
     <title>Required Attribute</title>
     <meta name=viewport content="width=device-width, maximum-scale=1.0, user-scalable=no" />
-	  <link rel="author" title="Fabrice Clari" href="mailto:f.clari@inno-group.com">
-	  <link rel="author" title="Dimitri Bocquet" href="mailto:Dimitri.Bocquet@mosquito-fp7.eu">
-	  <link rel="help" href="https://html.spec.whatwg.org/multipage/#attr-input-required">
+    <link rel="author" title="Fabrice Clari" href="mailto:f.clari@inno-group.com">
+    <link rel="author" title="Dimitri Bocquet" href="mailto:Dimitri.Bocquet@mosquito-fp7.eu">
+    <link rel="help" href="https://html.spec.whatwg.org/multipage/#attr-input-required">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
   </head>
 
   <body>
 
 
-  		<h1>Required Attribute</h1>
-  		<div style="display: none">
-  		<input type="text" required="required" />
-		</div>
+      <h1>Required Attribute</h1>
+      <div style="display: none">
+      <input type="text" required="required" />
+    </div>
 
     <div id="log">
     </div>
 
-	<script type="text/javascript">
+  <script type="text/javascript">
 
 
-		test(function() {assert_equals(document.getElementsByTagName("input")[0].getAttribute("required"), "required")}, "required attribute support on input element");
+    test(function() {assert_equals(document.getElementsByTagName("input")[0].getAttribute("required"), "required")}, "required attribute support on input element");
 
-	</script>
+  </script>
 
   </body>
 
 </html>
--- a/testing/web-platform/tests/html/semantics/forms/the-input-element/search_input.html
+++ b/testing/web-platform/tests/html/semantics/forms/the-input-element/search_input.html
@@ -1,35 +1,35 @@
 <!DOCTYPE html>
 <html>
 
   <head>
     <title>Search Input</title>
      <meta name=viewport content="width=device-width, maximum-scale=1.0, user-scalable=no" />
- 	  <link rel="author" title="Fabrice Clari" href="mailto:f.clari@inno-group.com">
- 	  <link rel="author" title="Dimitri Bocquet" href="mailto:Dimitri.Bocquet@mosquito-fp7.eu">
-	  <link rel="help" href="https://html.spec.whatwg.org/multipage/#the-input-element">
+     <link rel="author" title="Fabrice Clari" href="mailto:f.clari@inno-group.com">
+     <link rel="author" title="Dimitri Bocquet" href="mailto:Dimitri.Bocquet@mosquito-fp7.eu">
+    <link rel="help" href="https://html.spec.whatwg.org/multipage/#the-input-element">
    <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
   </head>
 
   <body>
 
 
-  		<h1>Search Input</h1>
-  		<input type="search" style="display:none" placeholder="Search..." />
+      <h1>Search Input</h1>
+      <input type="search" style="display:none" placeholder="Search..." />
 
     <div id="log">
     </div>
 
-	<script type="text/javascript">
+  <script type="text/javascript">
 
 
-		test(function() {assert_equals(document.getElementsByTagName("input")[0].type, "search")}, "search type support on input element", {
-		  "help" : "https://html.spec.whatwg.org/multipage/#dom-input-type" });
-		test(function() {assert_equals(document.getElementsByTagName("input")[0].placeholder, "Search...")}, "placeholder attribute support on input element", {
-		  "help" : "https://html.spec.whatwg.org/multipage/#dom-input-placeholder" });
+    test(function() {assert_equals(document.getElementsByTagName("input")[0].type, "search")}, "search type support on input element", {
+      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-type" });
+    test(function() {assert_equals(document.getElementsByTagName("input")[0].placeholder, "Search...")}, "placeholder attribute support on input element", {
+      "help" : "https://html.spec.whatwg.org/multipage/#dom-input-placeholder" });
 
-	</script>
+  </script>
 
   </body>
 
 </html>
--- a/testing/web-platform/tests/html/semantics/forms/the-input-element/telephone.html
+++ b/testing/web-platform/tests/html/semantics/forms/the-input-element/telephone.html
@@ -1,84 +1,84 @@
 <!DOCTYPE html>
 <html>
 <head>
-	<title>Input tel</title>
-	<link rel="author" title="Kazuki Kanamori" href="mailto:yogurito@gmail.com">
-	<link rel="help" href="https://html.spec.whatwg.org/multipage/#telephone-state-(type=tel)">
-	<script src="/resources/testharness.js"></script>
-	<script src="/resources/testharnessreport.js"></script>
+  <title>Input tel</title>
+  <link rel="author" title="Kazuki Kanamori" href="mailto:yogurito@gmail.com">
+  <link rel="help" href="https://html.spec.whatwg.org/multipage/#telephone-state-(type=tel)">
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
 </head>
 <body>
-	<h1>Input tel</h1>
-	<input type="tel" id="novalue" />
-	<input type="tel" id="value_with_LF" value="0&#x000A;1" />
-	<input type="tel" id="value_with_CR" value="0&#x000D;1" />
-	<input type="tel" id="value_with_CRLF" value="0&#x000A;&#x000D;1" />
-	<div id="log">
-	</div>
+  <h1>Input tel</h1>
+  <input type="tel" id="novalue" />
+  <input type="tel" id="value_with_LF" value="0&#x000A;1" />
+  <input type="tel" id="value_with_CR" value="0&#x000D;1" />
+  <input type="tel" id="value_with_CRLF" value="0&#x000A;&#x000D;1" />
+  <div id="log">
+  </div>
 
-	<script type="text/javascript">
-		var element = document.getElementById('novalue');
-		test(function(){
-			assert_equals(element.type, 'tel');
-		}, 'tel type supported on input element');
-		test(function(){
-			element.value = '0\u000A1';
-			assert_equals(element.value, '01');
-		}, 'User agents must not allow users to insert "LF" (U+000A)');
-		test(function(){
-			element.value = '0\u000D1';
-			assert_equals(element.value, '01');
-		}, 'User agents must not allow users to insert "CR" (U+000D)');
+  <script type="text/javascript">
+    var element = document.getElementById('novalue');
+    test(function(){
+      assert_equals(element.type, 'tel');
+    }, 'tel type supported on input element');
+    test(function(){
+      element.value = '0\u000A1';
+      assert_equals(element.value, '01');
+    }, 'User agents must not allow users to insert "LF" (U+000A)');
+    test(function(){
+      element.value = '0\u000D1';
+      assert_equals(element.value, '01');
+    }, 'User agents must not allow users to insert "CR" (U+000D)');
 
-		element = document.getElementById('value_with_LF');
-		test(function(){
-			assert_equals(element.value, '01');
-		}, 'The value attribute, if specified, must have a value that contains no "LF" (U+000A)');
+    element = document.getElementById('value_with_LF');
+    test(function(){
+      assert_equals(element.value, '01');
+    }, 'The value attribute, if specified, must have a value that contains no "LF" (U+000A)');
 
-		element = document.getElementById('value_with_CR');
-		test(function(){
-			assert_equals(element.value, '01');
-		}, 'The value attribute, if specified, must have a value that contains no "CR" (U+000D)');
+    element = document.getElementById('value_with_CR');
+    test(function(){
+      assert_equals(element.value, '01');
+    }, 'The value attribute, if specified, must have a value that contains no "CR" (U+000D)');
 
-		test(function(){
-			element = document.getElementById('novalue');
-			element.value = '0\u000D\u000A1';
-			assert_equals(element.value, '01');
+    test(function(){
+      element = document.getElementById('novalue');
+      element.value = '0\u000D\u000A1';
+      assert_equals(element.value, '01');
 
-			element = document.getElementById('value_with_CRLF');
-			assert_equals(element.value, '01');
-		}, 'The value sanitization algorithm is as follows: Strip line breaks from the value');
+      element = document.getElementById('value_with_CRLF');
+      assert_equals(element.value, '01');
+    }, 'The value sanitization algorithm is as follows: Strip line breaks from the value');
 
-		element = document.getElementById('novalue');
-		test(function(){
-			element.value = '+811234';
-			assert_equals(element.value, '+811234');
-		}, 'Element can accept the phone number with plus sign(country code)');
-		test(function(){
-			element.value = '1234#5678';
-			assert_equals(element.value, '1234#5678');
-		}, 'Element can accept the phone number with hash mark(extension number)');
-		test(function(){
-			element.value = '123-456-789';
-			assert_equals(element.value, '123-456-789');
-		}, 'Element can accept the phone number with hyphen');
-		test(function(){
-			element.value = '123.456.789';
-			assert_equals(element.value, '123.456.789');
-		}, 'Element can accept the phone number with dots');
-		test(function(){
-			element.value = '1 23 4';
-			assert_equals(element.value, '1 23 4');
-		}, 'Element can accept the phone number with whitespace');
-		test(function(){
-			element.value = ' 1234 ';
-			assert_equals(element.value, ' 1234 ');
-		}, 'Element can accept the phone number with leading & following whitespaces');
-		test(function(){
-			element.value = '(03)12345678';
-			assert_equals(element.value, '(03)12345678');
-		}, 'Element can accept the phone number with parentheses(area code)');
-	</script>
+    element = document.getElementById('novalue');
+    test(function(){
+      element.value = '+811234';
+      assert_equals(element.value, '+811234');
+    }, 'Element can accept the phone number with plus sign(country code)');
+    test(function(){
+      element.value = '1234#5678';
+      assert_equals(element.value, '1234#5678');
+    }, 'Element can accept the phone number with hash mark(extension number)');
+    test(function(){
+      element.value = '123-456-789';
+      assert_equals(element.value, '123-456-789');
+    }, 'Element can accept the phone number with hyphen');
+    test(function(){
+      element.value = '123.456.789';
+      assert_equals(element.value, '123.456.789');
+    }, 'Element can accept the phone number with dots');
+    test(function(){
+      element.value = '1 23 4';
+      assert_equals(element.value, '1 23 4');
+    }, 'Element can accept the phone number with whitespace');
+    test(function(){
+      element.value = ' 1234 ';
+      assert_equals(element.value, ' 1234 ');
+    }, 'Element can accept the phone number with leading & following whitespaces');
+    test(function(){
+      element.value = '(03)12345678';
+      assert_equals(element.value, '(03)12345678');
+    }, 'Element can accept the phone number with parentheses(area code)');
+  </script>
 
 </body>
 </html>
--- a/testing/web-platform/tests/html/semantics/forms/the-input-element/time.html
+++ b/testing/web-platform/tests/html/semantics/forms/the-input-element/time.html
@@ -1,207 +1,207 @@
 <!DOCTYPE html>
 <html>
 
   <head>
     <title>Input Time</title>
      <meta name=viewport content="width=device-width, maximum-scale=1.0, user-scalable=no" />
-	  <link rel="help" href="https://html.spec.whatwg.org/multipage/#the-input-element">
+    <link rel="help" href="https://html.spec.whatwg.org/multipage/#the-input-element">
    <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
   </head>
 
   <body>
-  		<h1>Input Time</h1>
-			<div style="display:none;">
-							<input type="time "id="chkDefaultValue" />
-							<input type="time" id="chkStep" />
-							<input type="time" id="chkSetValueTest" />
-							<input type="time" id="chkSupportAttribute" min="01:01:01.001" max="12:12:12.012" step="600" />
-    	</div>
-		<div id="log">
+      <h1>Input Time</h1>
+      <div style="display:none;">
+              <input type="time "id="chkDefaultValue" />
+              <input type="time" id="chkStep" />
+              <input type="time" id="chkSetValueTest" />
+              <input type="time" id="chkSupportAttribute" min="01:01:01.001" max="12:12:12.012" step="600" />
+      </div>
+    <div id="log">
     </div>
 
-	<script type="text/javascript">
+  <script type="text/javascript">
 
 /* check default value */
 test(function(){ assert_equals(document.getElementById("chkDefaultValue").value, "");
 }, "time element of default time value");
 test(function(){assert_equals(document.getElementById('chkStep').step, "");
-}	, "step attribute on default value check");
+}, "step attribute on default value check");
 test(function(){assert_equals(document.getElementById('chkDefaultValue').max, "");
-}	, "max  attribute on default value check")
+}, "max  attribute on default value check")
 test(function(){assert_equals(document.getElementById('chkDefaultValue').max, "");
-}	, "min  attribute on default value check")
+}, "min  attribute on default value check")
 
 /* simple attribute test*/
 test(function(){assert_equals(document.getElementById("chkSupportAttribute").type,"time");}
-	, "type attribute support on input element");
+  , "type attribute support on input element");
 test(function(){assert_equals(document.getElementById('chkSupportAttribute').min, "01:01:01.001")}
-	, "max attribute support on input element");
+  , "max attribute support on input element");
 test(function(){assert_equals(document.getElementById('chkSupportAttribute').max, "12:12:12.012")}
-	, "min attribute support on input element");
+  , "min attribute support on input element");
 test(function(){assert_equals(document.getElementById("chkSupportAttribute").step, "600")}
-	, "step attribute support on input element");
+  , "step attribute support on input element");
 
 /* check step up and down */
 var _StepTest = document.getElementById("chkStep");
 test(function(){ assert_true(typeof(_StepTest.stepUp) ==="function" ) }   , "stepUp function support on input Element");
 test(function(){ assert_true(typeof(_StepTest.stepDown) ==="function" ) } , "stepDown function support on input Element");
 
 test(function(){
-	_StepTest.value = "12:00";
-	_StepTest.step = "";
-	_StepTest.stepUp();
-	assert_equals(_StepTest.value,"12:01");
+  _StepTest.value = "12:00";
+  _StepTest.step = "";
+  _StepTest.stepUp();
+  assert_equals(_StepTest.value,"12:01");
 } , "stepUp step value empty on default step value ");
 
 test(function(){
-	_StepTest.value = "12:00";
-	_StepTest.step = "";
-	_StepTest.stepDown();
-	assert_equals(_StepTest.value,"11:59");
+  _StepTest.value = "12:00";
+  _StepTest.step = "";
+  _StepTest.stepDown();
+  assert_equals(_StepTest.value,"11:59");
 }, "stepDown step value empty default step value");
 
 test(function(){
-	_StepTest.value = "12:00";
-	_StepTest.step = "-600";
-	_StepTest.stepUp();
-	assert_equals(_StepTest.value, "12:01");
+  _StepTest.value = "12:00";
+  _StepTest.step = "-600";
+  _StepTest.stepUp();
+  assert_equals(_StepTest.value, "12:01");
 },"stepUp on step value minus");
 test(function(){
-	_StepTest.value = "12:00";
-	_StepTest.step = "-600";
-	_StepTest.stepDown();
-	assert_equals(_StepTest.value, "11:59");
+  _StepTest.value = "12:00";
+  _StepTest.step = "-600";
+  _StepTest.stepDown();
+  assert_equals(_StepTest.value, "11:59");
 },"stepDown on step value minus");
 
 test(function(){
-	_StepTest.value = "12:00";
-	_StepTest.step = "0";
-	_StepTest.stepUp();
-	assert_equals(_StepTest.value, "12:01");
+  _StepTest.value = "12:00";
+  _StepTest.step = "0";
+  _StepTest.stepUp();
+  assert_equals(_StepTest.value, "12:01");
 } , "stepUp on step value zero ");
 test(function(){
-	_StepTest.value = "12:00";
-	_StepTest.step = "0";
-	_StepTest.stepDown();
-	assert_equals(_StepTest.value, "11:59");
+  _StepTest.value = "12:00";
+  _StepTest.step = "0";
+  _StepTest.stepDown();
+  assert_equals(_StepTest.value, "11:59");
 } , "stepDown on step value zero ");
 
 test(function(){
-	_StepTest.value = "00:00";
-	_StepTest.step = "86399";
-	_StepTest.stepUp();
-	assert_equals(_StepTest.value, "23:59:59");
+  _StepTest.value = "00:00";
+  _StepTest.step = "86399";
+  _StepTest.stepUp();
+  assert_equals(_StepTest.value, "23:59:59");
 } , "stepUp on step value 24 hour");
 test(function(){
-	_StepTest.value = "23:59:59";
-	_StepTest.step = "86399";
-	_StepTest.stepDown();
-	assert_equals(_StepTest.value, "00:00:00");
+  _StepTest.value = "23:59:59";
+  _StepTest.step = "86399";
+  _StepTest.stepDown();
+  assert_equals(_StepTest.value, "00:00:00");
 } , "stepDown on step value 24 hour ");
 
 test(function(){
-	_StepTest.value = "12:00";
-	_StepTest.step = "3600";
-	_StepTest.stepUp();
-	assert_equals(_StepTest.value, "13:00");
+  _StepTest.value = "12:00";
+  _StepTest.step = "3600";
+  _StepTest.stepUp();
+  assert_equals(_StepTest.value, "13:00");
 } , "stepUp on step value hour  ");
 test(function(){
-	_StepTest.value = "12:00";
-	_StepTest.step = "3600";
-	_StepTest.stepDown();
-	assert_equals(_StepTest.value, "11:00");
+  _StepTest.value = "12:00";
+  _StepTest.step = "3600";
+  _StepTest.stepDown();
+  assert_equals(_StepTest.value, "11:00");
 } , "stepDown on step value hour ");
 
 test(function(){
-	_StepTest.value = "12:00";
-	_StepTest.step = "1";
-	_StepTest.stepUp();
-	assert_equals(_StepTest.value, "12:00:01");
+  _StepTest.value = "12:00";
+  _StepTest.step = "1";
+  _StepTest.stepUp();
+  assert_equals(_StepTest.value, "12:00:01");
 } , "stepUp on step value second ");
 test(function(){
-	_StepTest.value = "12:00";
-	_StepTest.step = "1";
-	_StepTest.stepDown();
-	assert_equals(_StepTest.value, "11:59:59");
+  _StepTest.value = "12:00";
+  _StepTest.step = "1";
+  _StepTest.stepDown();
+  assert_equals(_StepTest.value, "11:59:59");
 } , "stepDown on step value second ");
 
 test(function(){
-	_StepTest.value = "12:00";
-	_StepTest.step = "0.001";
-	_StepTest.stepUp();
-	assert_equals(_StepTest.value, "12:00:00.001");
+  _StepTest.value = "12:00";
+  _StepTest.step = "0.001";
+  _StepTest.stepUp();
+  assert_equals(_StepTest.value, "12:00:00.001");
 } , "stepUp on step value miri second ");
 test(function(){
-	_StepTest.value = "12:00";
-	_StepTest.step = "0.001";
-	_StepTest.stepDown();
-	assert_equals(_StepTest.value, "11:59:59.999");
+  _StepTest.value = "12:00";
+  _StepTest.step = "0.001";
+  _StepTest.stepDown();
+  assert_equals(_StepTest.value, "11:59:59.999");
 } , "stepDown on step value miri second ");
 
 test(function(){
-	_StepTest.value = "13:00:00";
-	_StepTest.step = "1";
-	_StepTest.stepUp(2);
-	assert_equals(_StepTest.value, "13:00:02");
+  _StepTest.value = "13:00:00";
+  _StepTest.step = "1";
+  _StepTest.stepUp(2);
+  assert_equals(_StepTest.value, "13:00:02");
 }, "stepUp argment 2 times");
 test(function(){
-	_StepTest.value = "13:00:00";
-	_StepTest.step = "1";
-	_StepTest.stepDown(2);
-	assert_equals(_StepTest.value, "12:59:58");
+  _StepTest.value = "13:00:00";
+  _StepTest.step = "1";
+  _StepTest.stepDown(2);
+  assert_equals(_StepTest.value, "12:59:58");
 }, "stepDown argment 2 times");
 
 test(function(){
-	_StepTest.max = "15:00";
-	_StepTest.value = "15:00";
-	_StepTest.stepUp();
-	assert_equals(_StepTest.value, "15:00");
-	_StepTest.max = "";
+  _StepTest.max = "15:00";
+  _StepTest.value = "15:00";
+  _StepTest.stepUp();
+  assert_equals(_StepTest.value, "15:00");
+  _StepTest.max = "";
 } , "stepUp stop because it exceeds the maximum value");
 test(function(){
-	_StepTest.min = "13:00";
-	_StepTest.value = "13:00";
-	_StepTest.stepDown();
-	assert_equals(_StepTest.value, "13:00");
-	_StepTest.min="";
+  _StepTest.min = "13:00";
+  _StepTest.value = "13:00";
+  _StepTest.stepDown();
+  assert_equals(_StepTest.value, "13:00");
+  _StepTest.min="";
 } , "stepDown Stop so lower than the minimum value");
 
 test(function(){
-	_StepTest.max = "15:01";
-	_StepTest.value = "15:00";
-	_StepTest.step = "120";
-	_StepTest.stepUp();
-	assert_equals(_StepTest.value, "15:01");
-	_StepTest.max = "";
+  _StepTest.max = "15:01";
+  _StepTest.value = "15:00";
+  _StepTest.step = "120";
+  _StepTest.stepUp();
+  assert_equals(_StepTest.value, "15:01");
+  _StepTest.max = "";
 } , "stop at border on stepUp");
 test(function(){
-	_StepTest.min = "12:59";
-	_StepTest.value = "13:00";
-	_StepTest.step = "120";
-	_StepTest.stepDown();
-	assert_equals(_StepTest.value, "12:59");
-	_StepTest.min="";
+  _StepTest.min = "12:59";
+  _StepTest.value = "13:00";
+  _StepTest.step = "120";
+  _StepTest.stepDown();
+  assert_equals(_StepTest.value, "12:59");
+  _StepTest.min="";
 } , "stop at border on stepDown");
 
 test(function(){
-	_StepTest.value = "";
-	_StepTest.step = "60";
+  _StepTest.value = "";
+  _StepTest.step = "60";
   _StepTest.stepUp();
-	assert_equals(_StepTest.value, "00:01");
+  assert_equals(_StepTest.value, "00:01");
 } , " empty value of stepUp");
 
 
 /* set value test */
 test(function(){
-	var _time = document.getElementById("chkSetValueTest");
-	_time.value = "12:00:00.000";
-	assert_equals(_time.value, "12:00:00.000");
-	_time.value = "hh:mi:ss.sss";
-	assert_equals(_time.value, "");
+  var _time = document.getElementById("chkSetValueTest");
+  _time.value = "12:00:00.000";
+  assert_equals(_time.value, "12:00:00.000");
+  _time.value = "hh:mi:ss.sss";
+  assert_equals(_time.value, "");
 }, "set value on not time format value");
 
 
-	</script>
+  </script>
   </body>
 </html>
--- a/testing/web-platform/tests/html/semantics/forms/the-input-element/url.html
+++ b/testing/web-platform/tests/html/semantics/forms/the-input-element/url.html
@@ -1,59 +1,59 @@
 <!DOCTYPE html>
 <html>
 <head>
-	<title>Input url</title>
-	<link rel="author" title="Hyeonseok Shin" href="mailto:hyeonseok@gmail.com">
-	<link rel="help" href="https://html.spec.whatwg.org/multipage/#url-state-%28type=url%29">
-	<script src="/resources/testharness.js"></script>
-	<script src="/resources/testharnessreport.js"></script>
+  <title>Input url</title>
+  <link rel="author" title="Hyeonseok Shin" href="mailto:hyeonseok@gmail.com">
+  <link rel="help" href="https://html.spec.whatwg.org/multipage/#url-state-%28type=url%29">
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
 </head>
 <body>
-	<h1>Input url</h1>
-	<div style="display: none">
-	<input type="url" id="type_support" />
-	<input type="url" id="set_value_LF" />
-	<input type="url" id="set_value_CR" />
-	<input type="url" id="set_value_CRLF" />
-	<input type="url" id="value_with_CRLF" value="a&#x000D;&#x000A;a" />
-	<input type="url" id="value_with_leading_trailing_white_space" value=" aa " />
-	<input type="url" id="value_with_leading_trailing_inner_white_space" value=" a a " />
-	</div>
-	<div id="log">
-	</div>
+  <h1>Input url</h1>
+  <div style="display: none">
+  <input type="url" id="type_support" />
+  <input type="url" id="set_value_LF" />
+  <input type="url" id="set_value_CR" />
+  <input type="url" id="set_value_CRLF" />
+  <input type="url" id="value_with_CRLF" value="a&#x000D;&#x000A;a" />
+  <input type="url" id="value_with_leading_trailing_white_space" value=" aa " />
+  <input type="url" id="value_with_leading_trailing_inner_white_space" value=" a a " />
+  </div>
+  <div id="log">
+  </div>
 
-	<script type="text/javascript">
-		test(function(){
-			var element = document.getElementById('type_support');
-			assert_equals(element.type, 'url');
-		}, 'url type supported on input element');
+  <script type="text/javascript">
+    test(function(){
+      var element = document.getElementById('type_support');
+      assert_equals(element.type, 'url');
+    }, 'url type supported on input element');
 
-		test(function(){
-			var element = document.getElementById('set_value_LF');
-			element.value = 'a\u000Aa';
-			assert_equals(element.value, 'aa');
+    test(function(){
+      var element = document.getElementById('set_value_LF');
+      element.value = 'a\u000Aa';
+      assert_equals(element.value, 'aa');
 
-			element = document.getElementById('set_value_CR');
-			element.value = 'a\u000Da';
-			assert_equals(element.value, 'aa');
+      element = document.getElementById('set_value_CR');
+      element.value = 'a\u000Da';
+      assert_equals(element.value, 'aa');
 
-			element = document.getElementById('set_value_CRLF');
-			element.value = 'a\u000D\u000Aa';
-			assert_equals(element.value, 'aa');
-		}, 'The value must not be set with "LF" (U+000A) or "CR" (U+000D)');
+      element = document.getElementById('set_value_CRLF');
+      element.value = 'a\u000D\u000Aa';
+      assert_equals(element.value, 'aa');
+    }, 'The value must not be set with "LF" (U+000A) or "CR" (U+000D)');
 
-		test(function(){
-			var element = document.getElementById('value_with_CRLF');
-			assert_equals(element.value, 'aa');
-		}, 'The value sanitization algorithm is as follows: Strip line breaks from the value');
+    test(function(){
+      var element = document.getElementById('value_with_CRLF');
+      assert_equals(element.value, 'aa');
+    }, 'The value sanitization algorithm is as follows: Strip line breaks from the value');
 
-		test(function(){
-			var element = document.getElementById('value_with_leading_trailing_white_space');
-			assert_equals(element.value, 'aa');
+    test(function(){
+      var element = document.getElementById('value_with_leading_trailing_white_space');
+      assert_equals(element.value, 'aa');
 
-			element = document.getElementById('value_with_leading_trailing_inner_white_space');
-			assert_equals(element.value, 'a a');
-		}, 'The value sanitization algorithm is as follows: Strip leading and trailing whitespace from the value.');
-	</script>
+      element = document.getElementById('value_with_leading_trailing_inner_white_space');
+      assert_equals(element.value, 'a a');
+    }, 'The value sanitization algorithm is as follows: Strip leading and trailing whitespace from the value.');
+  </script>
 
 </body>
 </html>
--- a/testing/web-platform/tests/html/semantics/scripting-1/the-template-element/resources/template-child-nodes-div.xhtml
+++ b/testing/web-platform/tests/html/semantics/scripting-1/the-template-element/resources/template-child-nodes-div.xhtml
@@ -1,14 +1,14 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-	<title>Template tag with children div tags inside</title>
+  <title>Template tag with children div tags inside</title>
     <link rel="author" title="Aleksei Yu. Semenov" href="mailto:a.semenov@unipro.ru"/>
 </head>
 <body>
-	<p>Template tag with div tags inside</p>
-	<template>
-		<div>This is div inside template</div>
-		<div>This is another div inside template</div>
-	</template>
+  <p>Template tag with div tags inside</p>
+  <template>
+    <div>This is div inside template</div>
+    <div>This is another div inside template</div>
+  </template>
 </body>
 </html>
--- a/testing/web-platform/tests/html/semantics/scripting-1/the-template-element/resources/template-child-nodes-nested.xhtml
+++ b/testing/web-platform/tests/html/semantics/scripting-1/the-template-element/resources/template-child-nodes-nested.xhtml
@@ -1,16 +1,16 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-	<title>Template tag with children div tags inside another template tag</title>
+  <title>Template tag with children div tags inside another template tag</title>
     <link rel="author" title="Aleksei Yu. Semenov" href="mailto:a.semenov@unipro.ru"/>
 </head>
 <body>
-	<p>Template tag with children div tags inside another template tag</p>
-	<template>
-		<template>
-			<div>This is div inside template</div>
-			<div>This is another div inside template</div>
-		</template>
-	</template>
+  <p>Template tag with children div tags inside another template tag</p>
+  <template>
+    <template>
+      <div>This is div inside template</div>
+      <div>This is another div inside template</div>
+    </template>
+  </template>
 </body>
 </html>
--- a/testing/web-platform/tests/html/semantics/tabular-data/the-table-element/caption-methods.html
+++ b/testing/web-platform/tests/html/semantics/tabular-data/the-table-element/caption-methods.html
@@ -1,56 +1,56 @@
 <!DOCTYPE HTML>
 <html>
 <head>
-	<title>Creating and deleting captions</title>
-	<link rel="author" title="Erika Navara" href="mailto:edoyle@microsoft.com">
-	<link rel="help" href="https://html.spec.whatwg.org/multipage/#the-table-element" />
-	<link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-table-createcaption" />
-	<link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-table-deletecaption" />
-	<script src="/resources/testharness.js"></script>
-	<script src="/resources/testharnessreport.js"></script>
+  <title>Creating and deleting captions</title>
+  <link rel="author" title="Erika Navara" href="mailto:edoyle@microsoft.com">
+  <link rel="help" href="https://html.spec.whatwg.org/multipage/#the-table-element" />
+  <link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-table-createcaption" />
+  <link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-table-deletecaption" />
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
 </head>
 <body>
-	<div id="log"></div>
-	<table id="table1" style="display:none">
-		<caption id="caption1">caption</caption>
-		<tr>
-			<td>cell</td>
-			<td>cell</td>
-		</tr>
-	</table>
-	<table id="table2" style="display:none">
-		<tr>
-			<td>cell</td>
-			<td>cell</td>
-		</tr>
-	</table>
-	<table id="table3" style="display:none">
-		<caption id="caption3">caption 3</caption>
-		<tr>
-			<td>cell</td>
-			<td>cell</td>
-		</tr>
-	</table>
-	<script>
-		test(function () {
-			var table1 = document.getElementById('table1');
-			var testCaption = table1.createCaption();
-			var table1FirstCaption = table1.caption;
-			assert_equals(testCaption, table1FirstCaption);
-		}, "createCaption method returns the first caption element child of the table")
-		test(function () {
-			var table2 = document.getElementById('table2');
-			var test2Caption = table2.createCaption();
-			var table2FirstNode = table2.firstChild;
-			assert_true(test2Caption instanceof  HTMLTableCaptionElement);
-			assert_equals(table2FirstNode, test2Caption);
-		}, "createCaption method creates a new caption and inserts it as the first node of the table element")
-		test(function () {
-			var table3 = document.getElementById('table3');
-			assert_equals(table3.caption.textContent, "caption 3");
-			table3.deleteCaption();
-			assert_equals(table3.caption, null);
-		}, "deleteCaption method removes the first caption element child of the table element")
-	</script>
+  <div id="log"></div>
+  <table id="table1" style="display:none">
+    <caption id="caption1">caption</caption>
+    <tr>
+      <td>cell</td>
+      <td>cell</td>
+    </tr>
+  </table>
+  <table id="table2" style="display:none">
+    <tr>
+      <td>cell</td>
+      <td>cell</td>
+    </tr>
+  </table>
+  <table id="table3" style="display:none">
+    <caption id="caption3">caption 3</caption>
+    <tr>
+      <td>cell</td>
+      <td>cell</td>
+    </tr>
+  </table>
+  <script>
+    test(function () {
+      var table1 = document.getElementById('table1');
+      var testCaption = table1.createCaption();
+      var table1FirstCaption = table1.caption;
+      assert_equals(testCaption, table1FirstCaption);
+    }, "createCaption method returns the first caption element child of the table")
+    test(function () {
+      var table2 = document.getElementById('table2');
+      var test2Caption = table2.createCaption();
+      var table2FirstNode = table2.firstChild;
+      assert_true(test2Caption instanceof  HTMLTableCaptionElement);
+      assert_equals(table2FirstNode, test2Caption);
+    }, "createCaption method creates a new caption and inserts it as the first node of the table element")
+    test(function () {
+      var table3 = document.getElementById('table3');
+      assert_equals(table3.caption.textContent, "caption 3");
+      table3.deleteCaption();
+      assert_equals(table3.caption, null);
+    }, "deleteCaption method removes the first caption element child of the table element")
+  </script>
 </body>
-</html>
\ No newline at end of file
+</html>
--- a/testing/web-platform/tests/html/semantics/text-level-semantics/the-time-element/001.html
+++ b/testing/web-platform/tests/html/semantics/text-level-semantics/the-time-element/001.html
@@ -1,68 +1,68 @@
 <!doctype html>
 <html>
-	<head>
-		<meta charset=utf-8>
-		<title>HTML time element API</title>
-		<style>
+  <head>
+    <meta charset=utf-8>
+    <title>HTML time element API</title>
+    <style>
 #time { visibility: hidden; }
-		</style>
-		<link rel="help" href="https://html.spec.whatwg.org/multipage/#the-time-element">
-		<script src="/resources/testharness.js"></script>
-		<script src="/resources/testharnessreport.js"></script>
-	</head>
-	<body>
-		<div id="log"></div>
-		<!-- intentionally nested to test parsing rules -->
-		<p id="time"><time pubdate datetime="2000-02-01T03:04:05Z">Dummy text <time>2001-06-07T<time>08:09<time></time></time>Z</time></time></p>
-		<script type="text/javascript">
+    </style>
+    <link rel="help" href="https://html.spec.whatwg.org/multipage/#the-time-element">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <!-- intentionally nested to test parsing rules -->
+    <p id="time"><time pubdate datetime="2000-02-01T03:04:05Z">Dummy text <time>2001-06-07T<time>08:09<time></time></time>Z</time></time></p>
+    <script type="text/javascript">
 function makeTime(dateTime,contents,dateTimeProp) {
-	var timeEl = document.createElement('time');
-	if( dateTime ) {
-		timeEl.setAttribute('datetime',dateTime);
-	}
-	if( contents ) {
-		timeEl.innerHTML = contents;
-	}
-	if( dateTimeProp ) {
-		timeEl.dateTime = dateTimeProp;
-	}
-	return timeEl;
+  var timeEl = document.createElement('time');
+  if( dateTime ) {
+    timeEl.setAttribute('datetime',dateTime);
+  }
+  if( contents ) {
+    timeEl.innerHTML = contents;
+  }
+  if( dateTimeProp ) {
+    timeEl.dateTime = dateTimeProp;
+  }
+  return timeEl;
 }
 
 var timep = document.getElementById('time');
 var times = timep.getElementsByTagName('time');
 
 //TIME elements
 test(function () {
-	assert_equals( times.length, 4 );
+  assert_equals( times.length, 4 );
 }, 'HTML parsing should locate 4 time elements in this document');
 test(function () {
-	assert_true( !!window.HTMLTimeElement );
+  assert_true( !!window.HTMLTimeElement );
 }, 'HTMLTimeElement should be exposed for prototyping');
 test(function () {
-	assert_true( makeTime() instanceof window.HTMLTimeElement, 'createElement variant' );
-	assert_true( times[0] instanceof window.HTMLTimeElement, 'HTML parsing variant' );
+  assert_true( makeTime() instanceof window.HTMLTimeElement, 'createElement variant' );
+  assert_true( times[0] instanceof window.HTMLTimeElement, 'HTML parsing variant' );
 }, 'the time elements should be instanceof HTMLTimeElement');
 
 //dateTime
 test(function () {
-	assert_equals( makeTime('2000-02-01T03:04:05Z','2001-02-01T03:04:05Z').dateTime, '2000-02-01T03:04:05Z' );
+  assert_equals( makeTime('2000-02-01T03:04:05Z','2001-02-01T03:04:05Z').dateTime, '2000-02-01T03:04:05Z' );
 }, 'the datetime attribute should be reflected by the .dateTime property');
 test(function () {
-	assert_equals( typeof makeTime().dateTime, 'string', 'typeof test' );
-	assert_equals( makeTime().dateTime, '', 'value test' );
+  assert_equals( typeof makeTime().dateTime, 'string', 'typeof test' );
+  assert_equals( makeTime().dateTime, '', 'value test' );
 }, 'the dateTime IDL property should default to an empty string');
 test(function () {
-	assert_equals( makeTime(false,false,'2000-02-01T03:04:05Z').dateTime, '2000-02-01T03:04:05Z' );
+  assert_equals( makeTime(false,false,'2000-02-01T03:04:05Z').dateTime, '2000-02-01T03:04:05Z' );
 }, 'the dateTime property should be read/write');
 test(function () {
-	assert_equals( makeTime('go fish').dateTime, 'go fish' );
+  assert_equals( makeTime('go fish').dateTime, 'go fish' );
 }, 'the datetime attribute should be reflected by the .dateTime property even if it is invalid');
 test(function () {
-	assert_equals( makeTime(false,'2000-02-01T03:04:05Z').dateTime, '' );
+  assert_equals( makeTime(false,'2000-02-01T03:04:05Z').dateTime, '' );
 }, 'the datetime attribute should not reflect the textContent');
 
-		</script>
+    </script>
 
-	</body>
+  </body>
 </html>
--- a/testing/web-platform/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/content.html
+++ b/testing/web-platform/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/content.html
@@ -16,87 +16,87 @@ increase that limit for the tests below 
 
 <script>
 test(function () {
   assert_idl_attribute(navigator, 'registerContentHandler');
 }, 'the registerContentHandler method should exist on the navigator object');
 
 /* Happy path */
 test(function () {
-	navigator.registerContentHandler('text/x-unknown-type', location.href + '/%s', 'foo');
+  navigator.registerContentHandler('text/x-unknown-type', location.href + '/%s', 'foo');
 }, 'a handler with valid arguments should work');
 
 
 /* URL argument */
 test(function () {
-	navigator.registerContentHandler('text/x-unknown-type', '%s', 'foo');
+  navigator.registerContentHandler('text/x-unknown-type', '%s', 'foo');
 }, 'a relative URL should work');
 
 test(function () {
-	navigator.registerContentHandler('text/x-unknown-type', location.href + '#%s', 'foo');
+  navigator.registerContentHandler('text/x-unknown-type', location.href + '#%s', 'foo');
 }, 'a URL with a fragment identifier should work');
 
 test(function () {
-	navigator.registerContentHandler('text/x-unknown-type', location.href + '?foo=%s', 'foo');
+  navigator.registerContentHandler('text/x-unknown-type', location.href + '?foo=%s', 'foo');
 }, 'a URL with a query string should work');
 
 test(function () {
-	navigator.registerContentHandler('text/x-unknown-type', location.href + '?foo=%s&bar', 'foo');
+  navigator.registerContentHandler('text/x-unknown-type', location.href + '?foo=%s&bar', 'foo');
 }, 'a URL with a multi-argument query string should work');
 
 test(function () {
-	navigator.registerContentHandler('text/x-unknown-type', location.href + '/%s/bar/baz/', 'foo');
+  navigator.registerContentHandler('text/x-unknown-type', location.href + '/%s/bar/baz/', 'foo');
 }, 'a URL with the passed string as a directory name should work');
 
 test(function () {
-	navigator.registerContentHandler('text/x-unknown-type', location.href + '/%s/bar/baz/?foo=1337&bar#baz', 'foo');
+  navigator.registerContentHandler('text/x-unknown-type', location.href + '/%s/bar/baz/?foo=1337&bar#baz', 'foo');
 }, 'a URL with the passed string as a directory name followed by a query string and fragment identifier should work');
 
 test(function () {
-	navigator.registerContentHandler('text/x-unknown-type', location.href + '/%s/foo/%s/', 'foo');
+  navigator.registerContentHandler('text/x-unknown-type', location.href + '/%s/foo/%s/', 'foo');
 }, 'a URL with the passed string included twice should work');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', '', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', '', 'foo') } );
 }, 'an empty url argument should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', 'http://%s.com', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', 'http://%s.com', 'foo') } );
 }, '%s instead of domain name should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', 'http://%s.example.com', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', 'http://%s.example.com', 'foo') } );
 }, '%s instead of subdomain name should throw syntax_err');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', location.href + '', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', location.href + '', 'foo') } );
 }, 'a url argument without %s should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', 'http://example.com', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', 'http://example.com', 'foo') } );
 }, 'a url argument pointing to a different domain name, without %s should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', location.href + '/%', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', location.href + '/%', 'foo') } );
 }, 'a url argument without %s (but with %) should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', location.href + '/%a', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', location.href + '/%a', 'foo') } );
 }, 'a url argument without %s (but with %a) should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SECURITY_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', 'http://example.com/%s', 'foo') } );
+  assert_throws('SECURITY_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', 'http://example.com/%s', 'foo') } );
 }, 'a url argument pointing to a different domain name should throw SECURITY_ERR');
 
 test(function () {
-	assert_throws('SECURITY_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', 'https://example.com/%s', 'foo') } );
+  assert_throws('SECURITY_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', 'https://example.com/%s', 'foo') } );
 }, 'a url argument pointing to a different domain name should throw SECURITY_ERR (2)');
 
 test(function () {
-	assert_throws('SECURITY_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', 'http://foobar.example.com/%s', 'foo') } );
+  assert_throws('SECURITY_ERR', function () { navigator.registerContentHandler('text/x-unknown-type', 'http://foobar.example.com/%s', 'foo') } );
 }, 'a url argument pointing to a different domain name should throw SECURITY_ERR (3)');
 
 /* Content type argument */
 
 /* The following MIME types are handled natively by the browser, and must not
  * be possible to override. Note that this list only covers a few basic content
  * types. Full lists of content types handled by each browser is found under
  * /vendor/. */
@@ -104,33 +104,33 @@ test(function () {
 var blacklist = new Array(
   'image/jpeg',
   'text/html',
   'text/javascript',
   'text/plain');
 
 for (var bi=0, bl=blacklist.length; bi<bl; ++bi){
 
-	test(function () {
-		assert_throws('SECURITY_ERR', function () { navigator.registerContentHandler(blacklist[bi], location.href + '/%s', 'foo') } );
-	}, 'attempting to override the ' + blacklist[bi] + ' MIME type should throw SECURITY_ERR');
+  test(function () {
+    assert_throws('SECURITY_ERR', function () { navigator.registerContentHandler(blacklist[bi], location.href + '/%s', 'foo') } );
+  }, 'attempting to override the ' + blacklist[bi] + ' MIME type should throw SECURITY_ERR');
 
 }
 
 /* Overriding the following MIME types should be possible. */
 var whitelist = new Array('application/atom+xml', /* For feeds. */
   'application/rss+xml', /* For feeds. */
   'application/x-unrecognized', /* Arbitrary MIME types should be overridable. */
   'text/unrecognized',
   'foo/bar');
 
 for (var wi=0, wl=whitelist.length; wi<wl; ++wi){
 
-	test(function () {
-		navigator.registerContentHandler(whitelist[wi], location.href + '/%s', 'foo');
-	}, 'overriding the ' + whitelist[wi] + ' MIME type should work');
+  test(function () {
+    navigator.registerContentHandler(whitelist[wi], location.href + '/%s', 'foo');
+  }, 'overriding the ' + whitelist[wi] + ' MIME type should work');
 
 }
 
 </script>
 
 </body>
 </html>
--- a/testing/web-platform/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.html
+++ b/testing/web-platform/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.html
@@ -15,200 +15,200 @@ increase that limit for the tests below 
 
 <script type='text/javascript'>
 
 test(function () {
   assert_idl_attribute(navigator, 'registerProtocolHandler');
 }, 'the registerProtocolHandler method should exist on the navigator object');
 
 test(function () {
-	navigator.registerProtocolHandler('tel', location.href + '/%s', 'foo');
+  navigator.registerProtocolHandler('tel', location.href + '/%s', 'foo');
 }, 'a handler with valid arguments should work');
 
 
 /* URL argument */
 test(function () {
-	navigator.registerProtocolHandler('tel', '%s', 'foo');
+  navigator.registerProtocolHandler('tel', '%s', 'foo');
 }, 'a relative URL should work');
 
 test(function () {
-	navigator.registerProtocolHandler('tel', location.href + '#%s', 'foo');
+  navigator.registerProtocolHandler('tel', location.href + '#%s', 'foo');
 }, 'a URL with a fragment identifier should work');
 
 test(function () {
-	navigator.registerProtocolHandler('tel', location.href + '?foo=%s', 'foo');
+  navigator.registerProtocolHandler('tel', location.href + '?foo=%s', 'foo');
 }, 'a URL with a query string should work');
 
 test(function () {
-	navigator.registerProtocolHandler('tel', location.href + '?foo=%s&bar', 'foo');
+  navigator.registerProtocolHandler('tel', location.href + '?foo=%s&bar', 'foo');
 }, 'a URL with a multi-argument query string should work');
 
 test(function () {
-	navigator.registerProtocolHandler('tel', location.href + '/%s/bar/baz/', 'foo');
+  navigator.registerProtocolHandler('tel', location.href + '/%s/bar/baz/', 'foo');
 }, 'a URL with the passed string as a directory name should work');
 
 test(function () {
-	navigator.registerProtocolHandler('tel', location.href + '/%s/bar/baz/?foo=1337&bar#baz', 'foo');
+  navigator.registerProtocolHandler('tel', location.href + '/%s/bar/baz/?foo=1337&bar#baz', 'foo');
 }, 'a URL with the passed string as a directory name followed by a query string and fragment identifier should work');
 
 test(function () {
-	navigator.registerProtocolHandler('tel', location.href + '/%s/foo/%s/', 'foo');
+  navigator.registerProtocolHandler('tel', location.href + '/%s/foo/%s/', 'foo');
 }, 'a URL with the passed string included twice should work');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', '', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', '', 'foo') } );
 }, 'an empty url argument should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', 'http://%s.com', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', 'http://%s.com', 'foo') } );
 }, '%s instead of domain name should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', 'http://%s.example.com', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', 'http://%s.example.com', 'foo') } );
 }, '%s instead of subdomain name should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', location.href + '', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', location.href + '', 'foo') } );
 }, 'a url argument without %s should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', 'http://example.com', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', 'http://example.com', 'foo') } );
 }, 'a url argument pointing to a different domain name, without %s should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', location.href + '/%', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', location.href + '/%', 'foo') } );
 }, 'a url argument without %s (but with %) should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', location.href + '/%a', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto', location.href + '/%a', 'foo') } );
 }, 'a url argument without %s (but with %a) should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SECURITY_ERR', function () { navigator.registerProtocolHandler('mailto', 'http://example.com/%s', 'foo') } );
+  assert_throws('SECURITY_ERR', function () { navigator.registerProtocolHandler('mailto', 'http://example.com/%s', 'foo') } );
 }, 'a url argument pointing to a different domain name should throw SECURITY_ERR');
 
 test(function () {
-	assert_throws('SECURITY_ERR', function () { navigator.registerProtocolHandler('mailto', 'https://example.com/%s', 'foo') } );
+  assert_throws('SECURITY_ERR', function () { navigator.registerProtocolHandler('mailto', 'https://example.com/%s', 'foo') } );
 }, 'a url argument pointing to a different domain name should throw SECURITY_ERR (2)');
 
 test(function () {
-	assert_throws('SECURITY_ERR', function () { navigator.registerProtocolHandler('mailto', 'http://foobar.example.com/%s', 'foo') } );
+  assert_throws('SECURITY_ERR', function () { navigator.registerProtocolHandler('mailto', 'http://foobar.example.com/%s', 'foo') } );
 }, 'a url argument pointing to a different domain name should throw SECURITY_ERR (3)');
 
 test(function () {
-	assert_throws('SECURITY_ERR', function () { navigator.registerProtocolHandler('mailto', 'mailto:%s@example.com', 'foo') } );
+  assert_throws('SECURITY_ERR', function () { navigator.registerProtocolHandler('mailto', 'mailto:%s@example.com', 'foo') } );
 }, 'looping handlers should throw SECURITY_ERR');
 
 test(function () {
-	assert_throws('SECURITY_ERR', function () { navigator.registerProtocolHandler('sms', 'tel:%s', 'foo') } );
+  assert_throws('SECURITY_ERR', function () { navigator.registerProtocolHandler('sms', 'tel:%s', 'foo') } );
 }, 'a url argument pointing to a non-http[s] scheme should throw SECURITY_ERR due to not being of the same origin');
 
 /* Protocol argument */
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('unrecognized', location.href + '/%a', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('unrecognized', location.href + '/%a', 'foo') } );
 }, 'a protocol argument containing an unrecognized scheme should throw SECURITY_ERR'); /* This is a whitelist, not a blacklist. */
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto:', location.href + '/%a', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto:', location.href + '/%a', 'foo') } );
 }, 'a protocol argument containing : should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto://', location.href + '/%a', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto://', location.href + '/%a', 'foo') } );
 }, 'a protocol argument containing :// should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('http://', location.href + '/%a', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('http://', location.href + '/%a', 'foo') } );
 }, 'a protocol argument containing http:// should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto' + String.fromCharCode(0), location.href + '/%a', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto' + String.fromCharCode(0), location.href + '/%a', 'foo') } );
 }, 'a protocol argument containing a null character should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailtoo' + String.fromCharCode(8), location.href + '/%a', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailtoo' + String.fromCharCode(8), location.href + '/%a', 'foo') } );
 }, 'a protocol argument containing a backspace character should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto' + String.fromCharCode(10), location.href + '/%a', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mailto' + String.fromCharCode(10), location.href + '/%a', 'foo') } );
 }, 'a protocol argument containing a LF character should throw SYNTAX_ERR');
 
 test(function () {
-	assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mаilto', location.href + '/%a', 'foo') } );
+  assert_throws('SYNTAX_ERR', function () { navigator.registerProtocolHandler('mаilto', location.href + '/%a', 'foo') } );
 }, 'a protocol argument containing non-alphanumeric characters (like a cyrillic “а”) should throw SYNTAX_ERR');
 
 test(function () {
-	navigator.registerProtocolHandler('TEL', location.href + '/%s', 'foo');
+  navigator.registerProtocolHandler('TEL', location.href + '/%s', 'foo');
 }, 'a protocol argument of “TEL” should be equivalent to “tel”');
 
 test(function () {
-	navigator.registerProtocolHandler('teL', location.href + '/%s', 'foo');
+  navigator.registerProtocolHandler('teL', location.href + '/%s', 'foo');
 }, 'a protocol argument of “teL” should be equivalent to “tel”');
 
 
 /* Overriding any of the following protocols must never be allowed. That would
  * break the browser. */
 var blacklist = new Array(
-	'about',
-	'attachment',
-	'blob',
-	'chrome',
-	'cid',
-	'data',
-	'file',
-	'ftp',
-	'http',
-	'https',
-	'javascript',
-	'livescript',
-	'mid',
-	'mocha',
-	'opera',
-	'operamail',
-	'res',
-	'resource',
-	'shttp',
-	'tcl',
-	'vbscript',
-	'view-source',
-	'ws',
-	'wss',
-	'wyciwyg');
+  'about',
+  'attachment',
+  'blob',
+  'chrome',
+  'cid',
+  'data',
+  'file',
+  'ftp',
+  'http',
+  'https',
+  'javascript',
+  'livescript',
+  'mid',
+  'mocha',
+  'opera',
+  'operamail',
+  'res',
+  'resource',
+  'shttp',
+  'tcl',
+  'vbscript',
+  'view-source',
+  'ws',
+  'wss',
+  'wyciwyg');
 
 for ( var bi=0, bl=blacklist.length; bi<bl; ++bi ){
 
-	test(function () {
-		assert_throws('SECURITY_ERR', function () { navigator.registerProtocolHandler(blacklist[bi], location.href + '/%s', 'foo') } );
-	}, 'attempting to override the ' + blacklist[bi] + ' protocol should throw SECURITY_ERR');
+  test(function () {
+    assert_throws('SECURITY_ERR', function () { navigator.registerProtocolHandler(blacklist[bi], location.href + '/%s', 'foo') } );
+  }, 'attempting to override the ' + blacklist[bi] + ' protocol should throw SECURITY_ERR');
 
 }
 
 /* The following protocols must be possible to override.
  * We're just testing that the call goes through here. Whether or not they
  * actually work as handlers is covered by the interactive tests. */
 var whitelist = new Array(
-	'geo',
-	'im',
-	'irc',
-	'ircs',
-	'mailto',
-	'mms',
-	'news',
-	'nntp',
-	'sms',
-	'smsto',
-	'tel',
-	'urn',
-	'webcal',
-	'wtai',
-	'xmpp');
+  'geo',
+  'im',
+  'irc',
+  'ircs',
+  'mailto',
+  'mms',
+  'news',
+  'nntp',
+  'sms',
+  'smsto',
+  'tel',
+  'urn',
+  'webcal',
+  'wtai',
+  'xmpp');
 
 for ( var wi=0, wl=whitelist.length; wi<wl; ++wi ){
 
-	test(function () {
-		navigator.registerProtocolHandler(whitelist[wi], location.href + '/%s', 'foo');
-		assert_true(true);
-	}, 'overriding the ' + whitelist[wi] + ' protocol should work');
+  test(function () {
+    navigator.registerProtocolHandler(whitelist[wi], location.href + '/%s', 'foo');
+    assert_true(true);
+  }, 'overriding the ' + whitelist[wi] + ' protocol should work');
 
 }
 </script>
 
 </body>
 </html>
--- a/testing/web-platform/tests/lint.whitelist
+++ b/testing/web-platform/tests/lint.whitelist
@@ -10,19 +10,17 @@
 INDENT TABS: .gitmodules
 INDENT TABS: app-uri/*
 INDENT TABS: conformance-checkers/*
 INDENT TABS: content-security-policy/*
 INDENT TABS: custom-elements/*
 INDENT TABS: DOMEvents/*
 INDENT TABS: eventsource/*
 INDENT TABS: html/editing/dnd/*
-INDENT TABS: html/semantics/*
 INDENT TABS: html/syntax/*
-INDENT TABS: html/webappapis/*
 INDENT TABS: media-source/*
 INDENT TABS: old-tests/*
 INDENT TABS: pointerlock/*
 INDENT TABS: shadow-dom/*
 INDENT TABS: tools/*
 INDENT TABS: touch-events/*
 INDENT TABS: web-animations/*
 INDENT TABS: webaudio/*
@@ -84,16 +82,17 @@ PRINT STATEMENT:tools/*
 W3C-TEST.ORG:*/tools/*
 PRINT STATEMENT:*/tools/*
 
 ### Test exclusions ##
 
 CR AT EOL:WebIDL/valid/idl/documentation-dos.widl
 CR AT EOL:cors/resources/cors-headers.asis
 CR AT EOL:html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html
+INDENT TABS:html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html
 CR AT EOL:webvtt/webvtt-file-format-parsing/webvtt-file-parsing/support/newlines.vtt
 PARSE-FAILED:dom/nodes/Document-createElement-namespace-tests/empty.svg
 PARSE-FAILED:dom/nodes/Document-createElement-namespace-tests/empty.xhtml
 PARSE-FAILED:dom/nodes/Document-createElement-namespace-tests/minimal_html.svg
 PARSE-FAILED:dom/nodes/Document-createElement-namespace-tests/minimal_html.xhtml
 
 # These have undefined entities; should probably find a way to define them
 PARSE-FAILED:ext-xhtml-pubid/the-xhtml-syntax/parsing-xhtml-documents/xhtml-pubid-1.xhtml
--- a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/111.html
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/111.html
@@ -1,32 +1,32 @@
 <!DOCTYPE html>
 <html><head>
-	<title> scheduler: removing async attribute at runtime</title>
-	<script src="/resources/testharness.js"></script>
-	<script src="/resources/testharnessreport.js"></script>
-	<script src="testlib/testlib.js"></script>
+        <title> scheduler: removing async attribute at runtime</title>
+        <script src="/resources/testharness.js"></script>
+        <script src="/resources/testharnessreport.js"></script>
+        <script src="testlib/testlib.js"></script>
 </head>
 <body>
 
         <div id="test"></div>
-	<div id="log">FAILED (This TC requires JavaScript enabled)</div>
+        <div id="log">FAILED (This TC requires JavaScript enabled)</div>
 
-        <script id="async-script" async src="scripts/include-2.js?pipe=trickle(d1)"></script> 
+        <script id="async-script" async src="scripts/include-2.js?pipe=trickle(d2)"></script>
 
-	<script>
+        <script>
           var t = async_test();
 
           t.step(function() {
             document.getElementById("async-script").removeAttribute("async");
             var s = document.createElement("script");
             s.async = false;
             s.src = "scripts/include-1.js";
             document.body.appendChild(s);
           });
 
           addEventListener("load", t.step_func(function () {
             assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
             t.done();
           }), false);
-          
+
         </script>
 </body></html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/README.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<head>
+<title>Referrer-Policy Web Platform Tests - README</title>
+</head>
+<body>
+  <p>
+  TODO(burnik): Instructions on how to write tests for Referrer-Policy.
+  </p>
+</body>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/generic/common.js
@@ -0,0 +1,28 @@
+// NOTE: This method only strips the fragment and is not in accordance to the
+// recommended draft specification:
+// https://w3c.github.io/webappsec/specs/referrer-policy/#null
+// TODO(burnik): Implement this helper as defined by spec once added scenarios
+// for URLs containing username/password/etc.
+function stripUrlForUseAsReferrer(url) {
+  return url.replace(/#.*$/, "");
+}
+
+function parseUrlQueryString(queryString) {
+  var queries = queryString.replace(/^\?/, "").split("&");
+  var params = {};
+
+  for (var i in queries) {
+    var kvp = queries[i].split("=");
+    params[kvp[0]] = kvp[1];
+  }
+
+  return params;
+};
+
+function appendIframeToBody(url) {
+  var iframe = document.createElement("iframe");
+  iframe.src = url;
+  document.body.appendChild(iframe);
+
+  return iframe;
+}
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/no-referrer-policy/no-referrer-policy.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Check that sub-resource gets the referrer URL when no explicit
+           Referrer Policy is set.</title>
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <!-- Common global functions for referrer-policy tests. -->
+    <script src="../generic/common.js"></script>
+  </head>
+  <body>
+    <h1>Check that sub-resource gets the referrer URL when no explicit Referrer
+        Policy is set.</h1>
+
+    <p>This page loads sub-resources (iframes) and waits for messages containing
+       referrer URLs from children.</p>
+
+    <script>
+      var documentUrl = document.location.toString();
+
+      // Referrer policy can also be defined via meta tag of parent.
+      // TODO(burnik): For now we use the DOM element itself as we expect it not
+      // to be explicitly defined on the page. We should use the content
+      // attribute value instead.
+      var documentMetaReferrer = document.querySelector("meta[name=referrer]");
+
+      // The referrer URL should be this document's URL adjusted according to
+      // this section:
+      // https://w3c.github.io/webappsec/specs/referrer-policy/#strip-url
+      var expectedReferrerUrl = stripUrlForUseAsReferrer(documentUrl);
+
+      // Path to the sub-resource page which reports back it's own context.
+      var subresourceUrlPath = "/referrer-policy/no-referrer-policy" +
+                               "/no-referrer-policy.subresource.py";
+
+      // Define all the test definitions here to create correspoding test
+      // arrangements. Each test arrangement will have it's own iframe and ID
+      // passed by URL. The ID should be unique as it identifies the message
+      // coming back from the iframe and matches the corressponding test to be
+      // run.
+      var scenarios = [
+        {
+          id: "same-origin",
+          url: location.protocol + "//" + location.hostname + ":" +
+               location.port + subresourceUrlPath,
+          metaReferrer: documentMetaReferrer,
+          expectedReferrerUrl: expectedReferrerUrl,
+          description: "Refrerer URL is passed to sub-resource (iframe) of " +
+                       "same-origin."
+        },
+        {
+          id: "cross-origin",
+          url: location.protocol + "//www1." + location.hostname + ":" +
+               location.port + subresourceUrlPath,
+          metaReferrer: documentMetaReferrer,
+          expectedReferrerUrl: expectedReferrerUrl,
+          description: "Refrerer URL is passed to sub-resource (iframe) of " +
+                       "cross-origin."
+        }
+      ];
+
+      //////////////////////////////////////////////////////////////////////////
+      // Rest of the script arranges and runs all the tests defined above.
+      //////////////////////////////////////////////////////////////////////////
+
+      // Creates a test arrangement from a test scenario.
+      function arrangeScenario(scenario) {
+        var test = async_test(scenario.description);
+        var subresourceUrl = scenario.url + "?id=" + scenario.id;
+        var testArrangement = {
+          scenario:scenario,
+          test:test,
+          subresourceUrl:subresourceUrl
+        };
+
+        return testArrangement;
+      }
+
+      // Asserts the values for an iframe response message and matched test
+      // arrangement.
+      function assertScenario(message, testArrangement) {
+        // Defense: Making sure the message and test arrangement are up to date.
+        testArrangement.test.step(function() {
+          assert_equals(Object.keys(message).length, 4);
+          assert_own_property(message, "id");
+          assert_own_property(message, "location");
+          assert_own_property(message, "referrer");
+          assert_own_property(message, "headers");
+          assert_own_property(message.headers, "referer");
+
+          assert_equals(Object.keys(testArrangement).length, 3);
+          assert_own_property(testArrangement, "scenario");
+          assert_own_property(testArrangement, "test");
+          assert_own_property(testArrangement, "subresourceUrl");
+
+          assert_equals(Object.keys(testArrangement.scenario).length, 5);
+          assert_own_property(testArrangement.scenario, "id");
+          assert_own_property(testArrangement.scenario, "url");
+          assert_own_property(testArrangement.scenario, "metaReferrer");
+          assert_own_property(testArrangement.scenario, "expectedReferrerUrl");
+          assert_own_property(testArrangement.scenario, "description");
+        }, "Running a valid test scenario.");
+
+        testArrangement.test.step(function() {
+          // TODO(burnik): This check should be specified by the scenario
+          // itself. For now we only expect that there is no CSP so neither is
+          // the referrer policy explicitly defined via HTTP headers.
+          assert_not_exists(message.headers, "content-security-policy",
+                            "No referrer policy is set.");
+
+          // The meta defined refferer should also not exist.
+          assert_equals(testArrangement.scenario.metaReferrer, null);
+        }, "No referrer policy is explicity defined via HTTP headers or meta.")
+
+        testArrangement.test.step(function() {
+          // Sanity check - location of iframe matches reported location.
+          assert_equals(message.location, testArrangement.subresourceUrl,
+                        "Child reported location.");
+
+          // Child reports the referrer URL available from DOM.
+          assert_equals(message.referrer,
+                        testArrangement.scenario.expectedReferrerUrl,
+                        "Child reported referrer.");
+
+          // Also check the request headers reported from the server.
+          assert_equals(message.headers.referer,
+                        testArrangement.scenario.expectedReferrerUrl,
+                        "Child reported referrer (from server).");
+
+        }, "Referrer URL is passed to the sub-resource (iframe).");
+
+        testArrangement.test.done();
+      }
+
+      // Using a map to easily find and run the test corresponding to the
+      // received message ID (iframe).
+      var testArrangementMap = {};
+
+      // With this handler we receive all the messages from the iframes.
+      // We identify the source and appropriate test arrangement to be run via
+      // the provided message ID.
+      window.addEventListener("message", function (event) {
+        var childMessage = event.data;
+        var testArrangement = testArrangementMap[childMessage.id];
+        // Run the test for this sub-resource.
+        assertScenario(childMessage, testArrangement);
+      });
+
+      // Map all test arrangements by ID and append iframes.
+      for (var i in scenarios) {
+        var testArrangement = arrangeScenario(scenarios[i]);
+        testArrangementMap[scenarios[i].id] = testArrangement;
+        appendIframeToBody(testArrangement.subresourceUrl);
+      }
+    </script>
+
+    <div id="log"></div>
+  </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/no-referrer-policy/no-referrer-policy.subresource.py
@@ -0,0 +1,15 @@
+import os, json
+
+def main(request, response):
+    script_directory = os.path.dirname(os.path.abspath(__file__))
+    template_basename = "no-referrer-policy.subresource.template.html"
+    template_filename = os.path.join(script_directory, template_basename);
+
+    with open(template_filename) as f:
+        template = f.read()
+
+    headers_as_json = json.dumps(request.headers)
+    exported_headers = "var SERVER_REQUEST_HEADERS = " + headers_as_json + ";"
+    rendered_html = template % {"headers": headers_as_json}
+
+    return response.headers, rendered_html
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/no-referrer-policy/no-referrer-policy.subresource.template.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>This page reports back it's request details the parent frame</title>
+    <!-- Common global functions for referrer-policy tests. -->
+    <script src="../generic/common.js"></script>
+  </head>
+  <body>
+    <h2>This page reports back it's request details to the parent frame.</h2>
+
+    <script>
+      // Notice: This is filled in from server side.
+      var SERVER_REQUEST_HEADERS = %(headers)s;
+
+      var query = parseUrlQueryString(document.location.search)
+
+      // Note: Read the ID from the query section of this page's URL.
+      // The ID is used to identify the sender of the message in the parent.
+      var pageInfo = {
+        id: query.id,
+        location: document.location.toString(),
+        referrer: document.referrer,
+        headers: SERVER_REQUEST_HEADERS
+      };
+
+      // Notify parent frame.
+      parent.postMessage(pageInfo, "*");
+    </script>
+
+  </body>
+</html>
--- a/testing/web-platform/tests/webmessaging/with-ports/020.html
+++ b/testing/web-platform/tests/webmessaging/with-ports/020.html
@@ -8,25 +8,23 @@
 var iframe = document.createElement('iframe');
 var url_prefix = location.href.replace('://', '://www1.').replace(/\/with(out)?-ports\/[^\/]+$/, '');
 var url = url_prefix + '/without-ports/020-1.html';
 iframe.src = url;
 document.body.appendChild(iframe);
 </script>
 <div id=log></div>
 <script>
-var t = async_test();
-onload = t.step_func(function() {
+onload = function() {
   window[0].postMessage(1, location.href, []);
   window[1].postMessage(2, url, []);
   var i = 0;
-  onmessage = t.step_func(function(e) {
+  onmessage = function(e) {
     i++;
     assert_equals(e.data[0], i);
     assert_equals(e.data[1], location.protocol + '//' + location.host);
     if (i === 2) {
-      t.done();
+      done();
     }
-  });
-  setTimeout(t.step_func(function() { assert_unreached("Only got " + i + " events before timeout, expected 2") }), 1000);
-});
+  };
+};
 </script>
 
--- a/testing/web-platform/tests/webmessaging/with-ports/021.html
+++ b/testing/web-platform/tests/webmessaging/with-ports/021.html
@@ -8,25 +8,23 @@
 var iframe = document.createElement('iframe');
 var url_prefix = location.href.replace('://', '://www1.').replace(/\/with(out)?-ports\/[^\/]+$/, '');
 var url = url_prefix + '/without-ports/020-1.html';
 iframe.src = url;
 document.body.appendChild(iframe);
 </script>
 <div id=log></div>
 <script>
-var t = async_test();
-onload = t.step_func(function() {
+onload = function() {
   window[0].postMessage(1, '*', []);
   window[1].postMessage(2, '*', []);
   var i = 0;
-  onmessage = t.step_func(function(e) {
+  onmessage = function(e) {
     i++;
     assert_equals(e.data[0], i);
     assert_equals(e.data[1], location.protocol + '//' + location.host);
     if (i === 2) {
-      t.done();
+      done();
     }
-  });
-  setTimeout(t.step_func(function() { assert_unreached("Only got " + i + " events before timeout, expected 2") }), 1000);
-});
+  };
+};
 </script>
 
--- a/testing/web-platform/tests/webmessaging/without-ports/020.html
+++ b/testing/web-platform/tests/webmessaging/without-ports/020.html
@@ -8,25 +8,23 @@
 var iframe = document.createElement('iframe');
 var url_prefix = location.href.replace('://', '://www1.').replace(/\/with(out)?-ports\/[^\/]+$/, '');
 var url = url_prefix + '/without-ports/020-1.html';
 iframe.src = url;
 document.body.appendChild(iframe);
 </script>
 <div id=log></div>
 <script>
-var t = async_test();
-onload = t.step_func(function() {
+onload = function() {
   window[0].postMessage(1, location.href);
   window[1].postMessage(2, url);
   var i = 0;
-  onmessage = t.step_func(function(e) {
+  onmessage = function(e) {
     i++;
     assert_equals(e.data[0], i);
     assert_equals(e.data[1], location.protocol + '//' + location.host);
     if (i == 2) {
-      t.done();
+      done();
     }
-  });
-  setTimeout(t.step_func(function() {assert_unreached("Only got " + i + " events before timeout, expected 2")}), 1000);
-});
+  };
+};
 </script>
 
--- a/testing/web-platform/tests/webmessaging/without-ports/021.html
+++ b/testing/web-platform/tests/webmessaging/without-ports/021.html
@@ -8,25 +8,23 @@
 var iframe = document.createElement('iframe');
 var url_prefix = location.href.replace('://', '://www1.').replace(/\/with(out)?-ports\/[^\/]+$/, '');
 var url = url_prefix + '/without-ports/020-1.html';
 iframe.src = url;
 document.body.appendChild(iframe);
 </script>
 <div id=log></div>
 <script>
-var t = async_test();
-onload = t.step_func(function() {
+onload = function() {
   window[0].postMessage(1, '*');
   window[1].postMessage(2, '*');
   var i = 0;
-  onmessage = t.step_func(function(e) {
+  onmessage = function(e) {
     i++;
     assert_equals(e.data[0], i);
     assert_equals(e.data[1], location.protocol + '//' + location.host);
     if (i === 2) {
-      t.done();
+      done();
     }
-  });
-  setTimeout(t.step_func(function() { assert_unreached("Only got " + i + " events before timeout, expected 2")}), 1000);
-});
+  };
+};
 </script>