E10s: "content driver"

Smaug <[email protected]>
Newsgroups gmane.comp.mozilla.devel.dom
Message-ID <[email protected]>
Hi all,

I've been thinking about the content-to-chrome event handling,
and serializing and de-serializing event would be otherwise
pretty easy, but handling event targets is tricky.
(I'm going to implement serialization for MozAfterPaint etc so that we 
can prototype some Fennec-like implementation.)

So I've tried to come up with something where event target handling
would happen mainly in content process.
The idea is to hook content process WindowRoot's event handling related
methods to a new JS context. That context should have access to content
DOM and to an API to send messages to chrome process, but no chrome
privileges.

When content process is initialized, chrome would activate
event listeners in this new layer (I've used "content chrome" name
  before, but perhaps "content driver" is better.)
Also extensions could send new event listeners to the content driver.
Event listeners could then communicate with chrome using "remote
chrome" API, which would probably look a bit like
nsIWebBrowserChrome/nsIEmbeddingSiteWindow/nsIWebBrowserChromeFocus
/nsIContextMenuListener/nsITooltipListener/nsIWebProgressListener.
The API should also have some generic way to send and receive JSON
data.

I *think* without some kind of content driver layer we'll end up having
something pretty close to 
http://mxr.mozilla.org/seamonkey/source/ipc/ipcd/, especially dconnect.

But, content driver makes it harder to develop extensions and FF
UI. Developer needs to split code to be executed in chrome and in
content driver.

Comments?


-Olli
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.