Closed Bug 590525 Opened 14 years ago Closed 12 years ago

Add a drawWindow() special case for <browser remote> that sources its shadow-layer tree

Categories

(Core :: Graphics: Canvas2D, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: cjones, Unassigned)

References

Details

The fennec frontend will want to take a snapshot of the current content window before switching to another tab (and maybe in other situations). There's currently no way to do that for <browser remote> because drawWindow() always re-renders content using a temporary layer manager, but that approach falls over with shadow layers. Rob has discussed a generic API for drawing an arbitrary layer subtree into a context, but it might be easier to somehow special-case <browser remote> initially, since we can assume a lot about its configuration and it has a simple mapping from DOM --> layer tree. All the required pieces are in place to implement this now, although bug 590294 will make things a bit trickier because drawWindow() will probably want to honor the view transform.
If we have to do this, why aren't we using asyncDrawXULElement like we did in tile-manager Fennec?
Oh, should have mentioned that that's a temporary workaround until we have drawWindow support. asyncDrawXULElement() is a slow hard-to-maintain ugly duckling that has the guillotine millimeters away from its neck. Making drawWindow() aware of (shadow) layers will result in a maximally-efficient, synchronous API that will give WSIWYG results (arguably that's an advantage over even drawWindow() of an in-process content window, in the current implementation).
Fixed.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.