Upstream fast/workers to external/wpt/workers: first batch.

Bug: 795636
Change-Id: Ifbeaf7eab76b992ac41a4dc7f23ec46f72ad8ca2
Reviewed-on: https://chromium-review.googlesource.com/c/1412827
Commit-Queue: Katie Dillon <kdillon@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#625734}
diff --git a/third_party/blink/web_tests/ASANExpectations b/third_party/blink/web_tests/ASANExpectations
index a753424..6cfb6ad 100644
--- a/third_party/blink/web_tests/ASANExpectations
+++ b/third_party/blink/web_tests/ASANExpectations
@@ -47,7 +47,6 @@
 
 # Stack use-after-return detection
 crbug.com/438499 [ Linux ] crypto/worker-random-values-limits.html [ Timeout ]
-crbug.com/438499 [ Linux ] fast/workers/simultaneous-errors.html [ Timeout ]
 crbug.com/438499 [ Linux ] fast/workers/worker-multi-startup.html [ Timeout ]
 crbug.com/438499 [ Linux ] http/tests/websocket/workers/worker-simple.html [ Timeout ]
 crbug.com/438499 [ Linux ] http/tests/workers/text-encoding.html [ Timeout ]
diff --git a/third_party/blink/web_tests/MSANExpectations b/third_party/blink/web_tests/MSANExpectations
index 34f6fcf..84fc4ec 100644
--- a/third_party/blink/web_tests/MSANExpectations
+++ b/third_party/blink/web_tests/MSANExpectations
@@ -9,7 +9,6 @@
 
 # Deliberate infinite recursion. A JS exception is expected, but may crash with
 # a stack overflow due to bloated stack frames under MSan.
-crbug.com/420606 [ Linux ] fast/workers/shared-worker-constructor.html [ Skip ]
 crbug.com/420606 [ Linux ] fast/workers/worker-constructor.html [ Skip ]
 
 # Flaky under MSan (hang forever).
diff --git a/third_party/blink/web_tests/external/wpt/lint.whitelist b/third_party/blink/web_tests/external/wpt/lint.whitelist
index 2f94041..8c5a32935 100644
--- a/third_party/blink/web_tests/external/wpt/lint.whitelist
+++ b/third_party/blink/web_tests/external/wpt/lint.whitelist
@@ -801,3 +801,5 @@
 # Signed Exchange files have hard-coded URLs in the certUrl field
 WEB-PLATFORM.TEST:signed-exchange/resources/*.sxg
 WEB-PLATFORM.TEST:signed-exchange/resources/generate-test-sxgs.sh
+
+WEB-PLATFORM.TEST: workers/Worker-location.any.js
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/workers/SharedWorker-MessageEvent-source.any.js b/third_party/blink/web_tests/external/wpt/workers/SharedWorker-MessageEvent-source.any.js
new file mode 100644
index 0000000..b3a6034
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/SharedWorker-MessageEvent-source.any.js
@@ -0,0 +1,6 @@
+// META: global=!default,sharedworker
+const t = async_test("Make sure that MessageEvent.source is properly set in connect event.");
+onconnect = t.step_func_done((event) => {
+  assert_equals(event.__proto__, MessageEvent.prototype);
+  assert_equals(event.source, event.ports[0]);
+});
diff --git a/third_party/blink/web_tests/external/wpt/workers/SharedWorker-constructor.html b/third_party/blink/web_tests/external/wpt/workers/SharedWorker-constructor.html
new file mode 100644
index 0000000..2bfe7d9
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/SharedWorker-constructor.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<title>Test SharedWorker constructor functionality.</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+test(() => {
+  assert_throws(new Error(),
+                function() {
+                    new SharedWorker({toString:function(){throw new Error()}}, "name") },
+                "toString exception not propagagted");
+}, "Test toString exception propagated correctly.");
+
+test(() => {
+  assert_throws(new RangeError(),
+                function() {
+                    var foo = {toString:function(){new Worker(foo)}}
+                    new SharedWorker(foo, name); },
+                "Trying to create workers recursively did not result in an exception.");
+}, "Test recursive worker creation results in exception.");
+
+test(() => {
+  assert_throws(new TypeError(),
+                function() { new SharedWorker(); },
+                "Invoking SharedWorker constructor without arguments did not result in an exception.");
+}, "Test SharedWorker creation without arguments results in exception.");
+
+test(() => {
+  try {
+    var worker = new SharedWorker("support/SharedWorker-common.js");
+  } catch (ex) {
+    assert_unreached("Constructor failed when no name is passed: (" + ex + ")");
+  }
+}, "Test SharedWorker constructor without a name does not result in an exception.");
+
+test(() => {
+  try {
+    var worker = new SharedWorker("support/SharedWorker-common.js", null);
+  } catch (ex) {
+    assert_unreached("Constructor failed when null name is passed: (" + ex + ")");
+  }
+}, "Test SharedWorker constructor with null name does not result in an exception.");
+
+test(() => {
+  try {
+    var worker = new SharedWorker("support/SharedWorker-common.js", undefined);
+  } catch (ex) {
+    assert_unreached("Constructor failed when undefined name is passed: (" + ex + ")");
+  }
+}, "Test SharedWorker constructor with undefined name does not result in an exception.");
+
+test(() => {
+  try {
+    var worker = new SharedWorker("support/SharedWorker-common.js", "name");
+  } catch (ex) {
+    assert_unreached("Invoking SharedWorker constructor resulted in an exception: (" + ex + ")");
+  }
+}, "Test SharedWorker constructor suceeds.");
+
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/workers/SharedWorker-exception.html b/third_party/blink/web_tests/external/wpt/workers/SharedWorker-exception.html
new file mode 100644
index 0000000..b9f4530
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/SharedWorker-exception.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<title>This test checks whether exceptions in SharedWorkers are logged to the parent document. An exception should be logged to the error console.</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/SharedWorker-create-common.js"></script>
+<script>
+async_test(function(t) {
+    var worker = createWorker();
+    worker.postMessage("throw");
+    worker.postMessage("ping");
+    worker.onmessage = function(evt) {
+        // Wait for response from ping - that's how we know we have thrown the exception.
+        if (evt.data == "PASS: Received ping message") {
+            t.done();
+        }
+    };
+});
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/workers/SharedWorker-replace-EventHandler.any.js b/third_party/blink/web_tests/external/wpt/workers/SharedWorker-replace-EventHandler.any.js
new file mode 100644
index 0000000..be9d7125
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/SharedWorker-replace-EventHandler.any.js
@@ -0,0 +1,15 @@
+// META: global=!default,sharedworker
+// https://crbug.com/239669
+const t = async_test("Tests that repeatedly setting 'onerror' within a shared worker doesnt crash.");
+onconnect = t.step_func_done((event) => {
+  function update() {
+    onerror = undefined;
+  }
+  try {
+    for (var i = 0; i < 8; ++i) {
+      update();
+    }
+  } catch (ex) {
+    assert_unreached("FAIL: unexpected exception (" + ex + ") received while updating onerror event handler.");
+  }
+});
diff --git a/third_party/blink/web_tests/external/wpt/workers/SharedWorker-script-error.html b/third_party/blink/web_tests/external/wpt/workers/SharedWorker-script-error.html
new file mode 100644
index 0000000..3c93cc0
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/SharedWorker-script-error.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<title>Test SharedWorker script error handling functionality.</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+promise_test(t => {
+    let worker;
+
+    return new Promise((resolve) => {
+        worker = new SharedWorker("support/SharedWorker-script-error.js");
+        // Shared workers should only invoke onerror for loading errors.
+        worker.onerror = function(evt) {
+            assert_unreached("FAIL: onerror invoked for a script error.");
+        };
+        worker.port.postMessage("unhandledError");
+        worker.port.onmessage = resolve;
+    }).then(e => {
+        assert_equals(e.data, "SUCCESS: unhandled error generated");
+    });
+}, 'Test script error unhandled.')
+
+promise_test(t => {
+    let worker;
+
+    return new Promise((resolve) => {
+        worker = new SharedWorker("support/SharedWorker-script-error.js");
+        // Shared workers should only invoke onerror for loading errors.
+        worker.onerror = function(evt) {
+            assert_unreached("FAIL: onerror invoked for a script error.");
+        };
+        worker.port.postMessage("handledError");
+        worker.port.onmessage = resolve;
+    }).then(e => {
+        assert_equals(e.data, "SUCCESS: error handled via onerror");
+    });
+}, 'Test script error handled.')
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/workers/SharedWorker-simple.html b/third_party/blink/web_tests/external/wpt/workers/SharedWorker-simple.html
new file mode 100644
index 0000000..7cd3f4f
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/SharedWorker-simple.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<title>Test simple shared worker construction case.</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+promise_test(t => {
+    let worker;
+
+    return new Promise(resolve => {
+        worker = new SharedWorker('support/SharedWorker-common.js', 'name');
+        worker.port.postMessage("ping");
+        worker.port.onmessage = resolve;
+    }).then(e => {
+        assert_equals(e.data, "PASS: Received ping message");
+    });
+});
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/workers/Worker-base64.any.js b/third_party/blink/web_tests/external/wpt/workers/Worker-base64.any.js
new file mode 100644
index 0000000..b5957f2
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/Worker-base64.any.js
@@ -0,0 +1,5 @@
+// META: global=!default,worker
+test(() => {
+  assert_true(typeof atob === 'function');
+  assert_true(typeof btoa === 'function');
+}, 'Tests that atob() / btoa() functions are exposed to workers');
diff --git a/third_party/blink/web_tests/external/wpt/workers/Worker-call.worker.js b/third_party/blink/web_tests/external/wpt/workers/Worker-call.worker.js
new file mode 100644
index 0000000..ba07498
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/Worker-call.worker.js
@@ -0,0 +1,12 @@
+importScripts("/resources/testharness.js");
+test(() => {
+  try {
+    postMessage("SUCCESS: postMessage() called directly");
+    postMessage.call(null, "SUCCESS: postMessage() invoked via postMessage.call()");
+    var saved = postMessage;
+    saved("SUCCESS: postMessage() called via intermediate variable");
+  } catch (ex) {
+    assert_unreached("FAIL: unexpected exception (" + ex + ") received while calling functions from the worker context.");
+  }
+}, 'Test calling functions from WorkerContext.');
+done();
diff --git a/third_party/blink/web_tests/external/wpt/workers/Worker-constructor-proto.any.js b/third_party/blink/web_tests/external/wpt/workers/Worker-constructor-proto.any.js
new file mode 100644
index 0000000..73eabd552
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/Worker-constructor-proto.any.js
@@ -0,0 +1,7 @@
+//META: global=!default, worker
+test(() => {
+  proto = new Number(42)
+  assert_equals(String(Object.getPrototypeOf(WorkerLocation)), "function () { [native code] }");
+  WorkerLocation.__proto__ = proto;
+  assert_object_equals(Object.getPrototypeOf(WorkerLocation), Object(42));
+}, 'Tests that setting the proto of a built in constructor is not reset.');
diff --git a/third_party/blink/web_tests/external/wpt/workers/Worker-location.any.js b/third_party/blink/web_tests/external/wpt/workers/Worker-location.any.js
new file mode 100644
index 0000000..c2a4590
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/Worker-location.any.js
@@ -0,0 +1,14 @@
+// META: global=!default, dedicatedworker, sharedworker
+test(() => {
+  assert_equals(String(WorkerLocation), "function WorkerLocation() { [native code] }");
+  assert_true(location instanceof Object);
+  assert_equals(location.href, "http://web-platform.test:8001/workers/Worker-location.any.worker.js")
+  assert_equals(location.origin, "http://web-platform.test:8001");
+  assert_equals(location.protocol, "http:");
+  assert_equals(location.host, "web-platform.test:8001");
+  assert_equals(location.hostname, "web-platform.test");
+  assert_equals(location.port, "8001");
+  assert_equals(location.pathname, "/workers/Worker-location.any.worker.js");
+  assert_equals(location.search, "");
+  assert_equals(location.hash, "");
+}, 'Test WorkerLocation properties.');
diff --git a/third_party/blink/web_tests/external/wpt/workers/Worker-replace-global-constructor.any.js b/third_party/blink/web_tests/external/wpt/workers/Worker-replace-global-constructor.any.js
new file mode 100644
index 0000000..f208f373
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/Worker-replace-global-constructor.any.js
@@ -0,0 +1,9 @@
+// META: global=!default,worker
+test(() => {
+  try {
+    self.MessageEvent = 'PASS';
+    assert_equals(self.MessageEvent, 'PASS');
+  } catch (ex) {
+    assert_unreached("FAIL: unexpected exception (" + ex + ") received while replacing global constructor MessageEvent.");
+  }
+}, 'Test replacing global constructors in a worker context.');
diff --git a/third_party/blink/web_tests/external/wpt/workers/Worker-replace-self.any.js b/third_party/blink/web_tests/external/wpt/workers/Worker-replace-self.any.js
new file mode 100644
index 0000000..6e732c0
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/Worker-replace-self.any.js
@@ -0,0 +1,9 @@
+// META: global=!default,worker
+test(() => {
+  try {
+    self = 'PASS';
+    assert_true(self instanceof WorkerGlobalScope);
+  } catch (ex) {
+    assert_unreached("FAIL: unexpected exception (" + ex + ") received while replacing self.");
+  }
+}, 'Test that self is not replaceable.');
diff --git a/third_party/blink/web_tests/external/wpt/workers/Worker-simultaneous-errors.html b/third_party/blink/web_tests/external/wpt/workers/Worker-simultaneous-errors.html
new file mode 100644
index 0000000..4339f2e3
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/Worker-simultaneous-errors.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<title>Test simultaneous errors on workers.</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+promise_test(t => {
+    var workers = 4;
+    var promises = [];
+
+    for (i = 0; i < workers; ++i) {
+        var worker = new Worker('support/throw-on-message-Worker.js');
+        promises.push(new Promise(function(resolve, reject) {
+            var error = 0;
+            worker.onmessage = function(event) {
+                if (event.data === 'second')
+                    resolve(error);
+                else if (event.data === 'error')
+                    ++error;
+            }
+        }));
+        worker.postMessage('first');
+        worker.postMessage('second');
+    }
+
+    return Promise.all(promises).then(e => {
+        var sum = 0;
+        for (var key in e) {
+            sum += e[key]
+        }
+        assert_equals(sum, workers);
+    });
+});
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/workers/Worker-termination-with-port-messages.html b/third_party/blink/web_tests/external/wpt/workers/Worker-termination-with-port-messages.html
new file mode 100644
index 0000000..bc19784a
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/Worker-termination-with-port-messages.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<title>This test terminates a worker when there are many undelivered MessagePort messages still waiting to be dispatched into the Worker Context. This causes termination of JS execution and test should not try to dispatch the remaining messages. Test succeeds if it does not hang or crash (if worker thread is running in the separate process, that process could hang or crash).</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+async_test(function(t) {
+    var worker = new Worker("support/Worker-termination-with-port-messages.js");
+    var channel = new MessageChannel();
+
+    channel.port2.onmessage = function(evt)
+    {
+        // On first message back from worker, terminate it.
+        worker.terminate();
+        t.done();
+    }
+    channel.port2.start();
+
+    worker.postMessage("", [channel.port1]);
+    for (i = 0; i < 1000; i++)
+        channel.port2.postMessage("message to worker");
+});
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/workers/WorkerNavigator.any.js b/third_party/blink/web_tests/external/wpt/workers/WorkerNavigator.any.js
new file mode 100644
index 0000000..3588045
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/WorkerNavigator.any.js
@@ -0,0 +1,12 @@
+// META: global=!default, worker
+test(() => {
+  assert_equals(typeof navigator, "object");
+  assert_true(navigator instanceof WorkerNavigator);
+  assert_equals(navigator.appName, "Netscape");
+  assert_true(navigator.appVersion.indexOf('WebKit') != 0);
+  assert_equals(typeof navigator.platform, "string");
+  assert_true(navigator.userAgent.indexOf('WebKit') != 0);
+  assert_equals(typeof navigator.onLine, "boolean");
+  assert_equals(navigator.appCodeName, 'Mozilla');
+  assert_equals(navigator.product, 'Gecko');
+}, "Testing Navigator properties on workers.");
diff --git a/third_party/blink/web_tests/external/wpt/workers/support/SharedWorker-common.js b/third_party/blink/web_tests/external/wpt/workers/support/SharedWorker-common.js
new file mode 100644
index 0000000..1c1dac3
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/support/SharedWorker-common.js
@@ -0,0 +1,32 @@
+function generateError()
+{
+    // Generate an exception by accessing an undefined variable.
+    foo.bar = 0;
+}
+
+onconnect = function(event) {
+    event.ports[0].onmessage = function(evt) { handleMessage(evt, event.ports[0]); };
+};
+
+function handleMessage(event, port) {
+    self.port = port;
+    if (event.data == "ping")
+        port.postMessage("PASS: Received ping message");
+    else if (event.data == "close")
+        close();
+    else if (event.data == "done")
+        port.postMessage("DONE");
+    else if (event.data == "throw")
+        generateError();
+    else if (event.data == "testingNameAttribute")
+        port.postMessage(self.name);
+    else if (/eval.+/.test(event.data)) {
+        try {
+            port.postMessage(event.data.substr(5) + ": " + eval(event.data.substr(5)));
+        } catch (ex) {
+            port.postMessage(event.data.substr(5) + ": " + ex);
+        }
+    }
+    else
+        port.postMessage("FAILURE: Received unknown message: " + event.data);
+}
diff --git a/third_party/blink/web_tests/external/wpt/workers/support/SharedWorker-create-common.js b/third_party/blink/web_tests/external/wpt/workers/support/SharedWorker-create-common.js
new file mode 100644
index 0000000..1d06174
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/support/SharedWorker-create-common.js
@@ -0,0 +1,8 @@
+// Make a SharedWorker that has the same external interface as a DedicatedWorker, to use in shared test code.
+function createWorker()
+{
+    var worker = new SharedWorker('support/SharedWorker-common.js', 'name');
+    worker.port.onmessage = function(evt) { worker.onmessage(evt); };
+    worker.postMessage = function(msg, port) { worker.port.postMessage(msg, port); };
+    return worker;
+}
diff --git a/third_party/blink/web_tests/external/wpt/workers/support/SharedWorker-script-error.js b/third_party/blink/web_tests/external/wpt/workers/support/SharedWorker-script-error.js
new file mode 100644
index 0000000..0e78949d
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/support/SharedWorker-script-error.js
@@ -0,0 +1,22 @@
+onconnect = function(event) {
+    event.ports[0].onmessage = function(evt) { handleMessage(evt, event.ports[0]); };
+};
+
+function handleMessage(event, port) {
+    if (event.data == "unhandledError") {
+        // Generate an unhandled error.
+        onerror = null;
+        setTimeout(function() {
+            port.postMessage("SUCCESS: unhandled error generated");
+        }, 100);
+        generateError();  // Undefined function call
+    } else if (event.data == "handledError") {
+        onerror = function() {
+            port.postMessage("SUCCESS: error handled via onerror");
+            return true;
+        };
+        generateError();  // Undefined function call
+    } else {
+        port.postMessage("FAIL: Got unexpected message: " + event.data);
+    }
+};
diff --git a/third_party/blink/web_tests/external/wpt/workers/support/Worker-common.js b/third_party/blink/web_tests/external/wpt/workers/support/Worker-common.js
new file mode 100644
index 0000000..55188fe91
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/support/Worker-common.js
@@ -0,0 +1,16 @@
+onmessage = function(evt)
+{
+    if (evt.data == "ping")
+        postMessage("pong");
+    else if (evt.data == "freeze")
+        while (1) {}
+    else if (evt.data == "close")
+        close();
+    else if (/eval.+/.test(evt.data)) {
+        try {
+            postMessage(evt.data.substr(5) + ": " + eval(evt.data.substr(5)));
+        } catch (ex) {
+            postMessage(evt.data.substr(5) + ": " + ex);
+        }
+    }
+}
diff --git a/third_party/blink/web_tests/external/wpt/workers/support/Worker-create-common.js b/third_party/blink/web_tests/external/wpt/workers/support/Worker-create-common.js
new file mode 100644
index 0000000..f0b8efe4
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/support/Worker-create-common.js
@@ -0,0 +1,4 @@
+function createWorker()
+{
+    return new Worker('support/Worker-common.js');
+}
diff --git a/third_party/blink/web_tests/external/wpt/workers/support/Worker-termination-with-port-messages.js b/third_party/blink/web_tests/external/wpt/workers/support/Worker-termination-with-port-messages.js
new file mode 100644
index 0000000..a827db3
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/support/Worker-termination-with-port-messages.js
@@ -0,0 +1,10 @@
+function echo(evt)
+{
+    evt.target.postMessage(evt.data);
+}
+
+onmessage = function(evt)
+{
+    evt.ports[0].onmessage = echo;
+    evt.ports[0].start();
+}
diff --git a/third_party/blink/web_tests/external/wpt/workers/support/throw-on-message-Worker.js b/third_party/blink/web_tests/external/wpt/workers/support/throw-on-message-Worker.js
new file mode 100644
index 0000000..3648f1f
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/workers/support/throw-on-message-Worker.js
@@ -0,0 +1,11 @@
+self.onerror = function(evt) {
+  postMessage('error');
+  return true;
+}
+
+self.onmessage = function(evt) {
+    if (evt.data === "first")
+        throw Error();
+    else
+        postMessage(evt.data);
+}
diff --git a/third_party/blink/web_tests/fast/workers/constructor-proto-expected.txt b/third_party/blink/web_tests/fast/workers/constructor-proto-expected.txt
deleted file mode 100644
index 5e3f260..0000000
--- a/third_party/blink/web_tests/fast/workers/constructor-proto-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-This tests that setting the proto of a built in constructor is not reset
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-proto = new Number(42): 42
-Object.getPrototypeOf(WorkerLocation): function () { [native code] }
-WorkerLocation.__proto__ = proto: 42
-Object.getPrototypeOf(WorkerLocation): 42
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/third_party/blink/web_tests/fast/workers/constructor-proto.html b/third_party/blink/web_tests/fast/workers/constructor-proto.html
deleted file mode 100644
index c0e5e4c2..0000000
--- a/third_party/blink/web_tests/fast/workers/constructor-proto.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<script src="../../resources/js-test.js"></script>
-<script src="resources/worker-create-common.js"></script>
-<script>
-
-var jsTestIsAsync = true;
-
-description('This tests that setting the proto of a built in constructor is not reset');
-
-var worker = createWorker();
-worker.postMessage("eval proto = new Number(42)");
-worker.postMessage("eval Object.getPrototypeOf(WorkerLocation)");
-worker.postMessage("eval WorkerLocation.__proto__ = proto");
-worker.postMessage("eval Object.getPrototypeOf(WorkerLocation)");
-worker.postMessage("eval DONE");
-
-worker.onmessage = function(evt) {
-    if (!/DONE/.test(evt.data))
-        debug(evt.data.replace(new RegExp("/.*(LayoutTests|web_tests)"), "<...>"));
-    else
-        finishJSTest();
-};
-
-</script>
diff --git a/third_party/blink/web_tests/fast/workers/resources/shared-worker-exception.js b/third_party/blink/web_tests/fast/workers/resources/shared-worker-exception.js
deleted file mode 100644
index c0275afd..0000000
--- a/third_party/blink/web_tests/fast/workers/resources/shared-worker-exception.js
+++ /dev/null
@@ -1,26 +0,0 @@
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.waitUntilDone();
-}
-
-description("This test checks whether exceptions in SharedWorkers are logged to the parent document. An exception should be logged to the error console.");
-
-var worker = createWorker();
-worker.postMessage("throw");
-worker.postMessage("ping");
-
-// Wait for response from ping - that's how we know we have thrown the exception.
-worker.onmessage = function(event)
-{
-    debug(event.data);
-
-    // Give the console message a chance to be written out before ending the test (timers are processed after the task queue is empty).
-    setTimeout(done, 0);
-};
-
-function done()
-{
-    debug('<br /><span class="pass">TEST COMPLETE</span>');
-    if (window.testRunner)
-        testRunner.notifyDone();
-}
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-constructor-expected.txt b/third_party/blink/web_tests/fast/workers/shared-worker-constructor-expected.txt
deleted file mode 100644
index d2497c5..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-constructor-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Test SharedWorker constructor functionality. Should print a series of PASS messages, followed with DONE.
-
-PASS: toString exception propagated correctly.
-PASS: trying to create workers recursively resulted in an exception (RangeError: Maximum call stack size exceeded)
-PASS: invoking SharedWorker constructor without arguments resulted in an exception (TypeError: Failed to construct 'SharedWorker': 1 argument required, but only 0 present.)
-PASS: invoking SharedWorker constructor without name did not result in an exception
-PASS: invoking SharedWorker constructor with null name did not result in an exception
-PASS: invoking SharedWorker constructor with undefined name did not result in an exception
-PASS: SharedWorker constructor succeeded: [object SharedWorker]
-DONE
-
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-constructor.html b/third_party/blink/web_tests/fast/workers/shared-worker-constructor.html
deleted file mode 100644
index 2eec12c..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-constructor.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<body>
-<p>Test SharedWorker constructor functionality. Should print a series of PASS messages, followed with DONE.</p>
-<div id=result></div>
-<script>
-function log(message)
-{
-    document.getElementById("result").innerHTML += message + "<br>";
-}
-
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.waitUntilDone();
-}
-
-try {
-    new SharedWorker({toString:function(){throw "exception"}}, "name")
-    log("FAIL: toString exception not propagated.");
-} catch (ex) {
-    if (ex == "exception")
-        log("PASS: toString exception propagated correctly.");
-    else
-        log("FAIL: unexpected exception (" + ex + ") received instead of one propagated from toString.");
-}
-
-try {
-    var foo = {toString:function(){new Worker(foo)}}
-    new SharedWorker(foo, name);
-    log("FAIL: no exception when trying to create workers recursively");
-} catch (ex) {
-    log("PASS: trying to create workers recursively resulted in an exception (" + ex + ")");
-}
-
-try {
-    new SharedWorker();
-    log("FAIL: invoking SharedWorker constructor without arguments did not result in an exception");
-} catch (ex) {
-    log("PASS: invoking SharedWorker constructor without arguments resulted in an exception (" + ex + ")");
-}
-
-try {
-    var worker = new SharedWorker("resources/shared-worker-common.js");
-    log("PASS: invoking SharedWorker constructor without name did not result in an exception");
-} catch (ex) {
-    log("FAIL: Constructor failed when no name is passed: (" + ex + ")");
-}
-
-try {
-    new SharedWorker("resources/shared-worker-common.js", null);
-    log("PASS: invoking SharedWorker constructor with null name did not result in an exception");
-} catch (ex) {
-    log("FAIL: invoking SharedWorker constructor with null name resulted in an exception (" + ex + ")");
-}
-
-try {
-    new SharedWorker("resources/shared-worker-common.js", undefined);
-    log("PASS: invoking SharedWorker constructor with undefined name did not result in an exception");
-} catch (ex) {
-    log("FAIL: invoking SharedWorker constructor with undefined name resulted in an exception (" + ex + ")");
-}
-
-try {
-    var worker = new SharedWorker("resources/shared-worker-common.js", "name");
-    log ("PASS: SharedWorker constructor succeeded: " + worker);
-} catch (ex) {
-    log("FAIL: invoking SharedWorker constructor resulted in an exception (" + ex + ")");
-}
-
-log("DONE");
-if (window.testRunner)
-    testRunner.notifyDone();
-
-</script>
-</body>
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-exception.html b/third_party/blink/web_tests/fast/workers/shared-worker-exception.html
deleted file mode 100644
index a3b2f871..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-exception.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<head>
-<script src="../../resources/js-test.js"></script>
-</head>
-<body>
-<script src="resources/shared-worker-create-common.js"></script>
-<script src="resources/shared-worker-exception.js"></script>
-</body>
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-location-expected.txt b/third_party/blink/web_tests/fast/workers/shared-worker-location-expected.txt
deleted file mode 100644
index 6715999..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-location-expected.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Test WorkerLocation properties.
-
-WorkerLocation: function WorkerLocation() { [native code] }
-typeof location: object
-location: file:<...>/fast/workers/resources/shared-worker-common.js
-location.href: file:<...>/fast/workers/resources/shared-worker-common.js
-location.origin: file://
-location.protocol: file:
-location.host:
-location.hostname:
-location.port:
-location.pathname: <...>/fast/workers/resources/shared-worker-common.js
-location.search:
-location.hash:
-DONE
-
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-location.html b/third_party/blink/web_tests/fast/workers/shared-worker-location.html
deleted file mode 100644
index ba1c430..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-location.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<body>
-<p>Test WorkerLocation properties.</p>
-<div id=result></div>
-<script src="../../resources/gc.js"></script>
-<script src="resources/shared-worker-create-common.js"></script>
-<script src="resources/worker-location.js">
-</script>
-</body>
-</html>
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-messageevent-source-expected.txt b/third_party/blink/web_tests/fast/workers/shared-worker-messageevent-source-expected.txt
deleted file mode 100644
index c1718aa6..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-messageevent-source-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Make sure that MessageEvent.source is properly set in connect event.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-Starting worker: resources/messageevent-source.js
-PASS [Worker]  event.__proto__ is MessageEvent.prototype
-PASS [Worker]  event.source is event.ports[0]
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-messageevent-source.html b/third_party/blink/web_tests/fast/workers/shared-worker-messageevent-source.html
deleted file mode 100644
index 7c051e4..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-messageevent-source.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head>
-<script src="../../resources/js-test.js"></script>
-</head>
-<body>
-<script>
-description("Make sure that MessageEvent.source is properly set in connect event.");
-
-startWorker("resources/messageevent-source.js", "shared");
-</script>
-</body>
-</html>
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-navigator-expected.txt b/third_party/blink/web_tests/fast/workers/shared-worker-navigator-expected.txt
deleted file mode 100644
index ed1c57a..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-navigator-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Test Navigator properties.
-
-typeof navigator: object
-navigator: [object WorkerNavigator]
-navigator.appName: Netscape
-navigator.appVersion.indexOf('WebKit') != 0: true
-typeof navigator.platform: string
-navigator.userAgent.indexOf('WebKit') != 0: true
-typeof navigator.onLine: boolean
-navigator.appCodeName === 'Mozilla': true
-navigator.product === 'Gecko': true
-DONE
-
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-navigator.html b/third_party/blink/web_tests/fast/workers/shared-worker-navigator.html
deleted file mode 100644
index c86c2a7f..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-navigator.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<body>
-<p>Test Navigator properties.</p>
-<div id=result></div>
-<script src="resources/shared-worker-create-common.js"></script>
-<script src="resources/worker-navigator.js"></script>
-</body>
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-replace-event-handler-expected.txt b/third_party/blink/web_tests/fast/workers/shared-worker-replace-event-handler-expected.txt
deleted file mode 100644
index 5cde4727..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-replace-event-handler-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Tests that repeatedly setting 'onerror' within a shared worker doesn't crash.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-Starting worker: resources/shared-worker-replace-event-handler.js
-[Worker] 'onerror' repeatedly updated ok.
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-replace-event-handler.html b/third_party/blink/web_tests/fast/workers/shared-worker-replace-event-handler.html
deleted file mode 100644
index 0a3b924b..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-replace-event-handler.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<!DOCTYPE html>
-<script src="../../resources/js-test.js"></script>
-<script>
-// http://crbug.com/239669
-description("Tests that repeatedly setting 'onerror' within a shared worker doesn't crash.");
-startWorker("resources/shared-worker-replace-event-handler.js", "shared");
-</script>
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-replace-global-constructor-expected.txt b/third_party/blink/web_tests/fast/workers/shared-worker-replace-global-constructor-expected.txt
deleted file mode 100644
index 49286a6..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-replace-global-constructor-expected.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Test replacing global constructors in a worker context.
-
-self.MessageEvent = 'PASS'; MessageEvent;: PASS
-DONE
-
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-replace-global-constructor.html b/third_party/blink/web_tests/fast/workers/shared-worker-replace-global-constructor.html
deleted file mode 100644
index d355c44..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-replace-global-constructor.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<body>
-<p>Test replacing global constructors in a worker context.</p>
-<div id=result></div>
-<script src="resources/shared-worker-create-common.js"></script>
-<script src="resources/worker-replace-global-constructor.js">
-</script>
-</body>
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-replace-self-expected.txt b/third_party/blink/web_tests/fast/workers/shared-worker-replace-self-expected.txt
deleted file mode 100644
index 6eecada3..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-replace-self-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Test that self is not replaceable.
-
-self='PASS': PASS
-self: [object SharedWorkerGlobalScope]
-DONE
-
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-replace-self.html b/third_party/blink/web_tests/fast/workers/shared-worker-replace-self.html
deleted file mode 100644
index bde370b..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-replace-self.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<body>
-<p>Test that self is not replaceable.</p>
-<div id=result></div>
-<script src="resources/shared-worker-create-common.js"></script>
-<script src="resources/worker-replace-self.js"></script>
-</body>
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-script-error-expected.txt b/third_party/blink/web_tests/fast/workers/shared-worker-script-error-expected.txt
deleted file mode 100644
index 1d36a2c..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-script-error-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Test SharedWorker script error handling functionality. Should print a series of PASS messages, followed with DONE.
-
-SUCCESS: unhandled error generated
-SUCCESS: error handled via onerror: Uncaught ReferenceError: generateError is not defined
-DONE
-
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-script-error.html b/third_party/blink/web_tests/fast/workers/shared-worker-script-error.html
deleted file mode 100644
index df5c7f1..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-script-error.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<body>
-<p>Test SharedWorker script error handling functionality. Should print a series of PASS messages, followed with DONE.</p>
-<div id=result></div>
-<script>
-function log(message)
-{
-    document.getElementById("result").innerHTML += message + "<br>";
-}
-
-var testCases = [
-    "testScriptErrorUnhandled",
-    "testScriptErrorHandled"
-];
-var testIndex = 0;
-
-function runNextTest()
-{
-    if (testIndex < testCases.length) {
-        testIndex++;
-        try {
-            window[testCases[testIndex - 1]]();
-        } catch (ex) {
-            log("FAIL: unexpected exception " + ex);
-            runNextTest();
-        }
-    } else {
-        log("DONE");
-        // Wait briefly to make sure that any pending console messages get written out so they don't spill over into subsequent tests and cause failures.
-        setTimeout(function() {
-            if (window.testRunner)
-                testRunner.notifyDone();
-        }, 10);
-    }
-}
-
-function testScriptErrorUnhandled()
-{
-    var worker = new SharedWorker("resources/shared-worker-script-error.js", "name");
-    // SharedWorkers should only invoke onerror for loading errors.
-    worker.onerror = function(evt) {
-        log("FAIL: onerror invoked for a script error");
-    };
-    worker.port.postMessage("unhandledError");
-    worker.port.onmessage = function(evt) {
-        log(evt.data);
-        runNextTest();
-    }
-}
-
-function testScriptErrorHandled()
-{
-    var worker = new SharedWorker("resources/shared-worker-script-error.js", "name2");
-    // SharedWorkers should only invoke onerror for loading errors.
-    worker.onerror = function(evt) {
-        log("FAIL: onerror invoked for a script error");
-    };
-    worker.port.postMessage("handledError");
-    worker.port.onmessage = function(evt) {
-        log(evt.data);
-        runNextTest();
-    }
-}
-
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.waitUntilDone();
-}
-
-runNextTest();
-
-</script>
-</body>
-
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-simple-expected.txt b/third_party/blink/web_tests/fast/workers/shared-worker-simple-expected.txt
deleted file mode 100644
index f10ec17..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-simple-expected.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Test simple shared worker construction case.
-
-PASS: Received ping message
-DONE
-
diff --git a/third_party/blink/web_tests/fast/workers/shared-worker-simple.html b/third_party/blink/web_tests/fast/workers/shared-worker-simple.html
deleted file mode 100644
index 005f596..0000000
--- a/third_party/blink/web_tests/fast/workers/shared-worker-simple.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<body>
-<p>Test simple shared worker construction case.</p>
-<div id=result></div>
-<script>
-function log(message)
-{
-    document.getElementById("result").innerHTML += message + "<br>";
-}
-
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.waitUntilDone();
-}
-
-var worker = new SharedWorker('resources/shared-worker-common.js', 'name');
-
-worker.port.postMessage("ping");
-worker.port.postMessage("done");
-
-worker.port.onmessage = function(event) {
-    log(event.data);
-    if (event.data == "DONE")
-        done();
-};
-
-function done()
-{
-    if (window.testRunner)
-        testRunner.notifyDone();
-}
-</script>
-</body>
diff --git a/third_party/blink/web_tests/fast/workers/simultaneous-errors-expected.txt b/third_party/blink/web_tests/fast/workers/simultaneous-errors-expected.txt
deleted file mode 100644
index 9ef49f3be..0000000
--- a/third_party/blink/web_tests/fast/workers/simultaneous-errors-expected.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-PASS all worker errors were reported.
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/third_party/blink/web_tests/fast/workers/simultaneous-errors.html b/third_party/blink/web_tests/fast/workers/simultaneous-errors.html
deleted file mode 100644
index c5cb306..0000000
--- a/third_party/blink/web_tests/fast/workers/simultaneous-errors.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!doctype html>
-<script src="../../resources/js-test.js"></script>
-<script>
-window.jsTestIsAsync = true;
-
-var workers = 4;
-var errorsInWorker = 0;
-var promises = [];
-for (i = 0; i < workers; ++i) {
-  var worker = new Worker('resources/throw-on-message-worker.js');
-  promises.push(new Promise(function(resolve, reject) {
-      worker.onmessage = function(event) {
-          if (event.data === 'second')
-              resolve();
-          else if (event.data === 'error')
-              ++errorsInWorker;
-      }
-  }));
-  worker.postMessage('first');
-  worker.postMessage('second');
-}
-
-Promise.all(promises).then(function() {
-    if (errorsInWorker === workers)
-        testPassed('all worker errors were reported.');
-    else
-        testFailed('only ' + errorsInWorker + ' errors reported in ' + workers + ' workers');
-    finishJSTest();
-});
-</script>
diff --git a/third_party/blink/web_tests/fast/workers/termination-with-port-messages-expected.txt b/third_party/blink/web_tests/fast/workers/termination-with-port-messages-expected.txt
deleted file mode 100644
index 7ae8d299..0000000
--- a/third_party/blink/web_tests/fast/workers/termination-with-port-messages-expected.txt
+++ /dev/null
@@ -1 +0,0 @@
-This test terminates a worker when there are many undelivered MessagePort messages still waiting to be dispatched into the Worker Context. This causes termination of JS execution and test should not try to dispatch the remaining messages. Test succeeds if it does not hang or crash (if worker thread is running in the separate process, that process could hang or crash).
diff --git a/third_party/blink/web_tests/fast/workers/termination-with-port-messages.html b/third_party/blink/web_tests/fast/workers/termination-with-port-messages.html
deleted file mode 100644
index 1c19d998..0000000
--- a/third_party/blink/web_tests/fast/workers/termination-with-port-messages.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<script>
-function test()
-{
-    if (window.testRunner) {
-        testRunner.dumpAsText();
-        testRunner.waitUntilDone();
-    }
-
-    var worker = new Worker("resources/termination-with-port-messages.js");
-    var channel = new MessageChannel();
-
-    channel.port2.onmessage = function(evt)
-    {
-        // On first message back from worker, terminate it.
-        worker.terminate();
-        if (window.testRunner)
-            setTimeout("testRunner.notifyDone();", 0);
-    }
-    channel.port2.start();
-
-    worker.postMessage("", [channel.port1]);
-    for (i = 0; i < 1000; i++)
-        channel.port2.postMessage("message to worker");
-}
-</script>
-<body onload=test()>
-<p>This test terminates a worker when there are many undelivered MessagePort messages still waiting to be dispatched into the Worker Context. This causes termination of JS execution and test should not try to dispatch the remaining messages. Test succeeds if it does not hang or crash (if worker thread is running in the separate process, that process could hang or crash).</p>
-</body>
diff --git a/third_party/blink/web_tests/fast/workers/worker-base64-expected.txt b/third_party/blink/web_tests/fast/workers/worker-base64-expected.txt
deleted file mode 100644
index 7bde475..0000000
--- a/third_party/blink/web_tests/fast/workers/worker-base64-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-[Worker] Tests that atob() / btoa() functions are exposed to workers
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-Starting worker: resources/worker-base64.js
-PASS [Worker] typeof atob === 'function' is true
-PASS [Worker] typeof btoa === 'function' is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/third_party/blink/web_tests/fast/workers/worker-base64.html b/third_party/blink/web_tests/fast/workers/worker-base64.html
deleted file mode 100644
index aeea1e2b..0000000
--- a/third_party/blink/web_tests/fast/workers/worker-base64.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<script src="../../resources/js-test.js"></script>
-<link rel="help" href="http://www.w3.org/TR/workers/#apis-available-to-workers">
-</head>
-<body>
-<script>
-worker = startWorker("resources/worker-base64.js");
-</script>
-</body>
-</html>
diff --git a/third_party/blink/web_tests/fast/workers/worker-call-expected.txt b/third_party/blink/web_tests/fast/workers/worker-call-expected.txt
deleted file mode 100644
index 621d3b5..0000000
--- a/third_party/blink/web_tests/fast/workers/worker-call-expected.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Test calling functions from WorkerContext. Should print multiple SUCCESS lines, followed by DONE.
-
-SUCCESS: postMessage() called directly
-SUCCESS: postMessage() invoked via postMessage.call()
-SUCCESS: postMessage() called via intermediate variable
-DONE
-
diff --git a/third_party/blink/web_tests/fast/workers/worker-call.html b/third_party/blink/web_tests/fast/workers/worker-call.html
deleted file mode 100644
index 7f0a0e0..0000000
--- a/third_party/blink/web_tests/fast/workers/worker-call.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<body>
-<p>Test calling functions from WorkerContext. Should print multiple SUCCESS lines, followed by DONE.</p>
-<div id=result></div>
-<script>
-
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.waitUntilDone();
-}
-
-function log(message)
-{
-    document.getElementById("result").innerHTML += message + "<br>";
-}
-
-var worker = new Worker("resources/worker-call.js");
-worker.onmessage = function(event) {
-    log(event.data);
-    if (event.data == "DONE") {
-        if (window.testRunner)
-            testRunner.notifyDone();
-    }
-};
-</script>
-</body>