Forked from
The Tor Project / Applications / Tor Browser
Source project has a limited visibility.
-
Andrew Osmond authored
Now that we no longer have the extra layer of ImageContainers providing a superficial level of caching/reuse of existing blob recordings, we need some way to share recordings. This part adds support to SurfaceCache to store BlobSurfaceProvider objects. This includes the specialized code for invalidating SVG images. In particular this is useful for animated SVG images. In general we want to avoid changing the image key whenever possible so that we avoid reallocating the underlying buffers in the compositor process for the rasterized blob images. We also need to track the ImageIntRegion used by the recording. If a caller only wants a slice of the SVG image, then we need to track this differentiation in our cache entries. At this time, we don't allow substitutes for entries with a region exclusion. Differential Revision: https://phabricator.services.mozilla.com/D126603
Andrew Osmond authoredNow that we no longer have the extra layer of ImageContainers providing a superficial level of caching/reuse of existing blob recordings, we need some way to share recordings. This part adds support to SurfaceCache to store BlobSurfaceProvider objects. This includes the specialized code for invalidating SVG images. In particular this is useful for animated SVG images. In general we want to avoid changing the image key whenever possible so that we avoid reallocating the underlying buffers in the compositor process for the rasterized blob images. We also need to track the ImageIntRegion used by the recording. If a caller only wants a slice of the SVG image, then we need to track this differentiation in our cache entries. At this time, we don't allow substitutes for entries with a region exclusion. Differential Revision: https://phabricator.services.mozilla.com/D126603