Gecko:CrossProcessLayers: Difference between revisions

Line 174: Line 174:
== Recording modifications made to layer trees during transactions ==
== Recording modifications made to layer trees during transactions ==


Placeholder.
It's not clear yet what's the best way to implement this.  One approach would be to add an optional <code>TransactionObserver</code> member to <code>LayerManager</code>s.  The observer could be notified on each layer tree operation.  For remoting layers, we would add a <code>TransactionObserver</code> implementation that bundled up modifications into an <code>nsTArray<Edit></code> per above.  A second approach would be for <code>LayerManager</code>s internally, optionally to record all tree modifications, then invoke an optional callback on transaction.End().  For remoting, this callback would transform the manager's internal changeset format into <code>nsTArray<Edit></code>.


== Strawman complete example ==
== Strawman complete example ==


'''TODO''': assume processes have been launched per diagram above.  Walk through layer tree creation and Publish()ing.  Walk through transaction and Update() propagation.
'''TODO''': assume processes have been launched per diagram above.  Walk through layer tree creation and Publish()ing.  Walk through transaction and Update() propagation.
Confirmed users
699

edits