The term "root layer" is used in the compositor to refer to both the
pipeline root layer and the page background layer. This can be quite
confusing. Instead, call the page background layer the "base layer,"
which is always the first child of the pipeline root layer.
It is possible for a PaintTask to start exiting soon after sending new
buffers to the compositor. In that case, the compositor should return
the now unnecessary buffers to the PaintTask so that it can properly
free them.
To accomplish this, the compositor now keeps a hash map of paint task
channels per pipeline id. When a PaintTask exists, the constellation
informs the compositor that it can forget about it. Additionally, the
PaintTask should not wait for any buffers when the engine is doing a
complete shutdown. In that case, the compositor is already halted and
has simply let all buffers leak. We pipe through the shutdown type when
destroying the pipeline to make this decision.
Fixes#2641.
When finding the layer under a point, take into account clipping
rectangles defined by layers that mask to bounds. This prevents clicks
from being hijacked by masked layers.
Root layers that define the extent of iframes should always mask their
child content. This fixes a bug where root layers without an assigned
size and location do not spill over the entire scene.
Accepted and closed incoming streams
Added header to for constant use.
Removed extra spaces.
Corrected spacing to conform to coding standards.
Corrected spacing to conform to coding standards.
Corrected spacing to conform with coding standards.
Moving new import next to old import for devtools_traits as specified in comment.
Removed method definition to include as inline code and changed to iter_mut.
Using loops to exit devtools on server exit message and disconnected message to simply break as suggested in the comment.
Removing TODO comment for completed functionality.
Moved the operation for exit of devtools on servo closing outside the match loop.
Removing trailing ';' and adding new line before connection closing loop.
Instead of creating a display list for the entire page, only create one
for an area that expands around the viewport. On my machine this makes
incremental layout of http://timecube.com 50% faster.