Open Bug 1350337 Opened 5 years ago Updated 4 months ago

create public interface for WorkerPrivate to hide implementation details, possibly using nsIGlobalObject

Categories

(Core :: DOM: Workers, task, P2)

task

Tracking

()

People

(Reporter: bkelly, Assigned: edenchuang)

References

(Blocks 1 open bug)

Details

Currently if someone needs to work with Workers at all they probably will end up referencing a WorkerPrivate.  This is a major build headache because it means all the details of the WorkerPrivate are essentially leaked to those consumer.

For example, I want to add an ipdlh defined type to WorkerLoadInfo.  If I do that, though, every directory that includes WorkerPrivate.h must change its moz.build to include:

  include('/ipc/chromium/chromium-config.mozbuild')

In general exposing our concrete type to all consumers makes developing Worker code harder.  There is more busy work for cases like I describe above.  It also makes builds longer by triggering rebuilds of code that don't care about private details of the worker internals.

We really need an abstract WorkerPrivate interface similar to nsGlobalWindow's nsPIDOMWindowInner.
Priority: -- → P3

:perry, probably we should order our WorkerPrivate enhancements a bit and track them together?

Flags: needinfo?(perry)
See Also: → 1539508

Yeah, this would be a big quality of life improvement...

Flags: needinfo?(perry)

At the all-hands :baku proposed making nsIGlobalObject the public interface, with the intent to move even worker-specific things to this interface like Terminate(). That seems like an excellent plan to me.

Assignee: nobody → echuang
Blocks: 1539508
See Also: 1539508
Type: enhancement → task

:ssengupta to take over with Eden uploading current WIP.

Assignee: echuang → ssengupta
Flags: needinfo?(echuang)
Summary: create public interface for WorkerPrivate to hide implementation details → create public interface for WorkerPrivate to hide implementation details, possibly using nsIGlobalObject

Hi Andrew, please take over that WIP patch for further decisions.

Assignee: ssengupta → bugmail
Assignee: bugmail → echuang
Flags: needinfo?(echuang)
Priority: P3 → P2
You need to log in before you can comment on or make changes to this bug.