summaryrefslogtreecommitdiffstats
path: root/chrome/test/data/workers
diff options
context:
space:
mode:
authoratwilson@chromium.org <atwilson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-12 17:39:23 +0000
committeratwilson@chromium.org <atwilson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-12 17:39:23 +0000
commit022132ceb7f9aacdfe8ac750bd8ebc6a41eed065 (patch)
treefd4690851ef2e0890e51442cc56a682b5a9fb78e /chrome/test/data/workers
parent55beb13f610c7ec714c6fdf061357b4b522b041e (diff)
downloadchromium_src-022132ceb7f9aacdfe8ac750bd8ebc6a41eed065.zip
chromium_src-022132ceb7f9aacdfe8ac750bd8ebc6a41eed065.tar.gz
chromium_src-022132ceb7f9aacdfe8ac750bd8ebc6a41eed065.tar.bz2
Enabled a number of worker tests on various platforms.
Added new SingleSharedWorker and MultipleSharedWorker tests, and enabled a bunch of other tests after marking them flaky/excluding them from valgrind. Review URL: http://codereview.chromium.org/490023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34429 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/data/workers')
-rw-r--r--chrome/test/data/workers/multi_worker.html2
-rw-r--r--chrome/test/data/workers/single_worker.html2
-rw-r--r--chrome/test/data/workers/worker_common.js11
-rw-r--r--chrome/test/data/workers/worker_utils.js20
4 files changed, 33 insertions, 2 deletions
diff --git a/chrome/test/data/workers/multi_worker.html b/chrome/test/data/workers/multi_worker.html
index b0ef8cc..46cc3c6 100644
--- a/chrome/test/data/workers/multi_worker.html
+++ b/chrome/test/data/workers/multi_worker.html
@@ -13,7 +13,7 @@ var completed_worker_count = 0;
var total_workers = 4;
function createWorker(base) {
- var worker = new Worker("worker_common.js");
+ var worker = getWorker("worker_common.js");
for (var i = 0; i < 100; i++) {
worker.postMessage("eval " + base + "+" + i);
expected_total += base + i;
diff --git a/chrome/test/data/workers/single_worker.html b/chrome/test/data/workers/single_worker.html
index d5b1962..3c6e7d2 100644
--- a/chrome/test/data/workers/single_worker.html
+++ b/chrome/test/data/workers/single_worker.html
@@ -7,7 +7,7 @@
<script>
-var worker = new Worker("worker_common.js");
+var worker = getWorker("worker_common.js");
worker.postMessage("ping");
worker.onmessage = function(evt) {
if (evt.data == "pong")
diff --git a/chrome/test/data/workers/worker_common.js b/chrome/test/data/workers/worker_common.js
index 583c6a5..8caa622 100644
--- a/chrome/test/data/workers/worker_common.js
+++ b/chrome/test/data/workers/worker_common.js
@@ -1,3 +1,14 @@
+if (!self.postMessage) {
+ // This is a shared worker - mimic dedicated worker APIs
+ onconnect = function(event) {
+ event.ports[0].onmessage = function(e) {
+ self.onmessage(e);
+ };
+ self.postMessage = function(msg, ports) {
+ event.ports[0].postMessage(msg, ports);
+ };
+ };
+}
onmessage = function(evt) {
if (evt.data == "ping")
postMessage("pong");
diff --git a/chrome/test/data/workers/worker_utils.js b/chrome/test/data/workers/worker_utils.js
index 03c84631..50d8c96 100644
--- a/chrome/test/data/workers/worker_utils.js
+++ b/chrome/test/data/workers/worker_utils.js
@@ -1,3 +1,23 @@
+var shared_worker_count = 0;
+function getWorker(worker_url)
+{
+ // Create either a dedicated or shared worker, depending on flags
+ var url = document.location.toString();
+ if (url.search("shared") >= 0) {
+ // Make a shared worker that looks like a worker
+ var worker = new SharedWorker(worker_url, "name" + ++shared_worker_count);
+ worker.port.onmessage = function(evt) {
+ worker.onmessage(evt);
+ };
+ worker.postMessage = function(msg, port) {
+ worker.port.postMessage(msg, port);
+ };
+ return worker;
+ } else {
+ return new Worker(worker_url);
+ }
+}
+
function onSuccess()
{
setTimeout(onFinished, 0, "OK");