It should be possible to create new Workers from Workers.
The main low-level functionality that is still missing is an ability to load resources from Workers, same as in XMLhttpRequest and importScripts().
*** Bug 25152 has been marked as a duplicate of this bug. ***
Assigning to Jian Li because of all the work done in blocking bugs.
Sorry for asking this question relatively late in the game, but what are the use cases for nested workers? Do they warrant increased complexity in the existing and future (e.g. Web Inspector) code at this point?
Creating workers from workers doesn't seem to be a dangerous feature, and it seems potentially useful, but it is not clear to me if it's useful enough to add yet, without feedback from web application authors who use workers.
I think they're quite useful in developing a large web application. For example, an online email application can start a worker to fetch emails and store them in the local storage on the background. This worker can start a couple nested workers such that some actions can be done in parallel, like using XHR to send emails and receive emails. With nested worker support, it will become easier to write such big applications.
If you need more information on this. Please ping me.
*** Bug 24016 has been marked as a duplicate of this bug. ***
Note: Firefox 3.5 has launched with support for this. Over lunch today, I chatted with Maciej about this and he supported the view that we should be at feature parity to avoid developer confusion.
Does chromium have a plan to do that?
Where can find detailed information?
Thanks in advance.
I don't know about current plans but usually it was a question if there is enough real world need to justify the work... The work can be non-trivial, some part include loading refactoring (currently delegated to the parent, assuming it's a Page) and perhaps things like DevTools integration... In the past, the folks involved found more pressing needs to work on, that's it.
Theoretically, it's a nice feature and it's in the spec :-)
I am working on a library to support communication with sandboxed code that is agnostic to the specific sandboxing mechanism used. See https://github.com/tildeio/oasis.js
Support for nested contexts is important for this library (and the use-cases that are driving it).
I think this feature would be great to have. The use case I have right now is I'm taking a large application and moving it to run in a worker, so it's more responsive and never stalls the main thread. The application happens to use workers, so basically I need to be able to create workers from the worker I move the application to, for it to run.
The current situation was a surprise to me: Nested workers are in the spec, are mentioned on html5rocks as working ( http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers ), but in practice seem to only work in firefox at the moment :(
Correction to my last statement, they work in Internet Explorer as well.
*** Bug 158605 has been marked as a duplicate of this bug. ***
A wpt test for this:
This test is currently marked [ Skip ] in WebKit TestExpectations.
We could use this feature for the neo.mjs UI framework project to spawn the data worker from inside the app worker.
Created a discussion here:
Ideally would be support for spawning a "normal" worker from within a SharedWorker as well. Is there already a ticket for this one?
Spawning SharedWorkers from inside SharedWorkers is not needed for my context.
I have moved a library I'm using to a Worker, but the library itself creates another worker. Now my site works in all browsers except Safari :(