W3C home > Mailing lists > Public > public-audio@w3.org > October to December 2015

Re: New name for "AudioWorker"

From: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed, 7 Oct 2015 10:12:17 -0700
Message-ID: <CAJL3UpRokB9oA4favwmFc=VKG6+9TTn08kZXiqxKW2_gv-b3_g@mail.gmail.com>
To: Chris Wilson <cwilso@google.com>
Cc: Hongchan Choi <hongchan@google.com>, Alex Russell <slightlyoff@google.com>, Paul Adenot <padenot@mozilla.com>, "public-audio@w3.org Group" <public-audio@w3.org>, Shane Stephens <shanestephens@google.com>, Ian Vollick <vollick@chromium.org>, Elliott Sprehn <esprehn@google.com>
Hi all,

Houdini is attempting to add extension points into the rendering pipeline
of browsers. Because of this we need properties similar to what is required
for AudioWorker (at the moment we've called it IsolatedWorker, fine with
changing the name to IsolatedProcessor or something <bikeshed-here>).

I'm currently writing a draft of the spec at the moment and should appear
here (https://drafts.css-houdini.org/isolated-workers/) at the end of the

It will be based on the strawperson discussed at Houdini Paris F2F. (

A few properties that we'd like from this spec:
 - Thread-agnostic - that is, it does not define on which thread this is
run, may share a thread with something else, i.e. main document context.
 - Subset of APIs - remove network request APIs etc.
 - Hook based - APIs will be reached by registering callbacks on
GlobalScope, e.g. registerPaint() not event based.
 - Life-cycle - can be created/destroyed at defined points in time. Similar
to ServiceWorker.

Additionally we've observed that javascript implementations have a high
memory overhead per javascript context. We believe we want to limit the
number created, so similar to the main javascript execution context, code
shares a single javascript execution context. Details of this is probably
better discussed one there is a proposal.


On Wed, Oct 7, 2015 at 9:32 AM, Chris Wilson <cwilso@google.com> wrote:

> I'm actually off-the-cuff against trying to boil the ocean of the general
> pattern.  This is pretty specific - the new thing , runs *IN* something
> that can be a Worker-like process, but they're expected to share the
> process.  The thing you can instantiate lots of (runtime contexts?) run
> inside that process.
> I was expecting we would rename AW to CustomAudioProcessor, still define
> them as running inside a Worker (and define how that Worker-sharing works),
> and use Worker messaging.  That seemed like the shortest path to success.
> On Wed, Oct 7, 2015 at 9:16 AM, Hongchan Choi <hongchan@google.com> wrote:
>> Nothing forces workers to be heavy weight, but doesn't it have the
>> assumption that it runs on its own thread? What we want is to be able to
>> throw JS code into VM that runs on the audio thread.
>> Perhaps we can break that assumption, and propose a new type of Worker.
>> On Wed, Oct 7, 2015 at 9:09 AM Alex Russell <slightlyoff@google.com>
>> wrote:
>>> Why isn't this thing a worker? What forces workers to be heavyweight?
>>> Also, would be good to align with the Houdini folks on this as they're
>>> proposing similar things in the rendering and compositing space.
>>> Regards
>>> On 7 Oct 2015 7:52 a.m., "Paul Adenot" <padenot@mozilla.com> wrote:
>>>> We need to decide for a new name for something that:
>>>> - Runs off-main-thread
>>>> - Has access to a very limited set of APIs
>>>> - Can be instantiated a lot of times in the same document (much more
>>>> than Workers can or would)
>>>> - Is specialized to one domain (audio, video, etc.)
>>>> - ... ?
>>>> It is likely that we would be the first group to spec something like
>>>> this, but it would be used by other groups (layout people, video/image
>>>> processing folks, etc.). We need something that is not too tied to audio,
>>>> or can be adapted. I propose "Processor", which conveys the meaning of
>>>> taking something as input, applying a transformation, and outputting it.
>>>> I'm very open to suggestions though, this is merely to get the ball rolling.
>>>> Thoughts ?
>>>> Paul.
Received on Wednesday, 7 October 2015 17:12:48 UTC

This archive was generated by hypermail 2.3.1 : Friday, 18 December 2015 09:00:35 UTC