Gecko:CrossProcessLayers: Difference between revisions

Jump to navigation Jump to search
Line 83: Line 83:
Updates to R_s are atomic wrt painting.  When S wishes to publish updates to M, it sends an "Update(cset)" message to M containing all R_s changes to be applied.  This message is processed in its own "task" ("event") in M.  This task will (?? create a layer tree transaction and ??) apply cset.  cset will include layer additions, removals, and attribute changes.  Initially we probably want Update(cset) to be synchronous.  (cjones believes it can be made asynchronous, but that would add unnecessary complexity for a first implementation.)  Under the covers (opaque to M), in-place updates will be made to existing R_s layers.
Updates to R_s are atomic wrt painting.  When S wishes to publish updates to M, it sends an "Update(cset)" message to M containing all R_s changes to be applied.  This message is processed in its own "task" ("event") in M.  This task will (?? create a layer tree transaction and ??) apply cset.  cset will include layer additions, removals, and attribute changes.  Initially we probably want Update(cset) to be synchronous.  (cjones believes it can be made asynchronous, but that would add unnecessary complexity for a first implementation.)  Under the covers (opaque to M), in-place updates will be made to existing R_s layers.


Question: how should M publish updates of R_s to its own master MM?  One approach is to apply Update(cset) to R_s, then synchronously publish Update(cset union M_cset) to its master MM.
Question: how should M publish updates of R_s to its own master MM?  One approach is to apply Update(cset) to R_s, then synchronously publish Update(cset union M_cset) to its master MM.  This is an optimization that allows us to maintain copy semantics without actually copying.


A cset C can be constructed by implementing a TransactionRecorder interface for layers (layer managers?).  The recorder will observe all mutations performed on a tree and package them into an IPC message.  (This interface could also be used for debugging, to dump layer modifications to stdout.)
A cset C can be constructed by implementing a TransactionRecorder interface for layers (layer managers?).  The recorder will observe all mutations performed on a tree and package them into an IPC message.  (This interface could also be used for debugging, to dump layer modifications to stdout.)
Confirmed users
699

edits

Navigation menu