Index: third_party/WebKit/LayoutTests/external/wpt/html/webappapis/the-windoworworkerglobalscope-mixin/Worker_Self_Origin.html |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/the-windoworworkerglobalscope-mixin/Worker_Self_Origin.html b/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/the-windoworworkerglobalscope-mixin/Worker_Self_Origin.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..22b28b3e35ef5f05d18b4013798d6513c59c1700 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/the-windoworworkerglobalscope-mixin/Worker_Self_Origin.html |
@@ -0,0 +1,45 @@ |
+<!DOCTYPE html> |
+<meta charset=utf-8> |
+<title>Test workers self.origin</title> |
+<script src="/resources/testharness.js"></script> |
+<script src="/resources/testharnessreport.js"></script> |
+<div id="log"></div> |
+<script> |
+function assertOriginWorker(workerSource, expectedOrigin, testName) { |
+ async_test(function(t) { |
+ w = new Worker(workerSource); |
+ w.onmessage = t.step_func(function(e) { |
+ assert_equals(e.data, expectedOrigin); |
+ t.done(); |
+ }); |
+ }, testName + ' Worker'); |
+} |
+ |
+function assertOriginSharedWorker(workerSource, expectedOrigin, testName) { |
+ async_test(function(t) { |
+ w = new SharedWorker(workerSource); |
+ w.port.start(); |
+ w.port.onmessage = t.step_func(function(e) { |
+ assert_equals(e.data, expectedOrigin); |
+ t.done(); |
+ }); |
+ }, testName + ' SharedWorker'); |
+} |
+ |
+// Test same-origin workers |
+assertOriginWorker("./support/WorkerSelfOriginWorker.js", self.origin, "Same Origin"); |
+assertOriginSharedWorker("./support/WorkerSelfOriginSharedWorker.js", self.origin, "Same Origin"); |
+ |
+// Test data url workers have opaque origin |
+assertOriginWorker("data:application/javascript,postMessage(self.origin);", "null", "Data Url"); |
+assertOriginSharedWorker("data:application/javascript,onconnect = function(e) { e.ports[0].postMessage(self.origin); }", "null", "Data Url"); |
+ |
+// Test blob url workers |
+blob = new Blob(["postMessage(self.origin);"]); |
+blobUrl = URL.createObjectURL(blob); |
+assertOriginWorker(blobUrl, self.origin, "Blob Url"); |
+ |
+blob = new Blob(["onconnect = function(e) { e.ports[0].postMessage(self.origin); }"]); |
+blobUrl = URL.createObjectURL(blob); |
+assertOriginSharedWorker(blobUrl, self.origin, "Blob Url"); |
+</script> |