> The name "compression" is unfortunate here.  It took me some time to
> understand what the real issue is.

Agreed. (Any ideas for a better word? For me 'supersede' comes to mind, 
as in a newer message supersedes an older one so the older one can be 
dropped, but I don't think that would be very clear either.)

> That said, it seems like the "clean" architectural solution here is to
> create a new actor for every combination of parameters that you do not
> want to "compress" messages for, and leave as function parameters
> every parameter that you do want to compress messages for.  That may
> not scale well, but in this case I think it would just mean creating
> an actor for every (sub?)frame.  Have we tried that?  Is the
> performance cost too high?

Interesting idea. My intuition tells me that this would come with a lot
of overhead, as right now we have a single TabChild per browser tab 
(persistent across loading new pages in the tab), while scrollable 
frames are specific to each page (and sometimes come and go while 
navigating a single page). It also seems like having to coordinate the
creation and destruction of these actors would add complexity, but I'm 
not very familiar with IPDL so I could be wrong.

My immediate interest in this has diminished somewhat as my other use
case for conditional compression (PBrowser::RealTouchMoveEvent) has
gone away due to a change in approach for bug 976605, and I don't think
the overhead of not compressing multiple UpdateFrame messages for the
same frame is enough to justify doing it just for that. I'll keep my
eyes open for other uses cases, though, and keep your suggestion of
creating more actors in mind.

Cheers,
Botond
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to