Index: third_party/WebKit/LayoutTests/webexposed/resources/global-interface-listing-worker.js |
diff --git a/third_party/WebKit/LayoutTests/webexposed/resources/global-interface-listing-worker.js b/third_party/WebKit/LayoutTests/webexposed/resources/global-interface-listing-worker.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8819fb8159bbb63c15cce7ecdf03454cfbe2dae4 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/webexposed/resources/global-interface-listing-worker.js |
@@ -0,0 +1,36 @@ |
+// Avoid polluting the global scope. |
+(function(globalObject) { |
+ |
+ // Save the list of property names of the global object before loading other scripts. |
+ var propertyNamesInGlobal = Object.getOwnPropertyNames(globalObject); |
+ |
+ importScripts('../../resources/js-test.js'); |
+ importScripts('../../resources/global-interface-listing.js'); |
+ |
+ if (!self.postMessage) { |
+ // Shared worker. Make postMessage send to the newest client, which in |
+ // our tests is the only client. |
+ |
+ // Store messages for sending until we have somewhere to send them. |
+ self.postMessage = function(message) { |
+ if (typeof self.pendingMessages === "undefined") |
+ self.pendingMessages = []; |
+ self.pendingMessages.push(message); |
+ }; |
+ self.onconnect = function(event) { |
+ self.postMessage = function(message) { |
+ event.ports[0].postMessage(message); |
+ }; |
+ // Offload any stored messages now that someone has connected to us. |
+ if (typeof self.pendingMessages === "undefined") |
+ return; |
+ while (self.pendingMessages.length) |
+ event.ports[0].postMessage(self.pendingMessages.shift()); |
+ }; |
+ } |
+ |
+ globalInterfaceListing(globalObject, propertyNamesInGlobal, debug); |
+ |
+ finishJSTest(); |
+ |
+})(this); |