The test changes here are to adjust for the fact that
nsTextFrame::GetRenderedText can now trim whitespace from the end of lines
that end in a hard line break.
--HG--
extra : commitid : Dn0U0KPLfbY
extra : rebase_source : 57a6ad2e3ba1f7ec6aef9b940d8facdbba7e9c91
This change necessitates a few other header changes around the tree:
either places that we relying on FrameLayerBuilder.h to #include
ImageLayers.h for them, or places that were bootlegging headers from
ImageLayers.h.
Having these out-of-line means that we don't have to have
LayerUserData's destructor in scope for the destruction of the local
nsAutoPtr. This change will enable us to forward-declare LayerUserData
in Layers.h and thereby encourage people to use the correct header for
LayerUserData.
Having to include all of Layers.h just to get at the definition of
LayerUserData is inconvenient, especially as most of the interesting
things in Layers.h can be forward-declared. Let's move LayerUserData to
its own header, so clients can include a small header for that,
forward-declare anything else they need from Layers.h, and reduce header
bloat.
LayerManagerUserDataDestroy is a static function in Layers.h that we
only ever take a pointer to, to use it as a destruction function for
gfx::UserData. It's *possible* the compiler is smart enough to call it
directly, rather than through the function pointer stored in
gfx::UserData, but that seems highly unlikely. And
LayerManagerUserDataDestroy does a virtual call anyway, so it's not as
though it being inlined is particularly important.
All of this is to say that we don't need to define
LayerManagerUserDataDestroy in Layers.h; defining it out-of-line will be
just as effective. Defining it out-of-line also means that we don't
need the definition of LayerUserData anywhere in Layers.h, and we can
move LayerUserData to a separate header.
This value is never written anywhere, so it's not needed, and gfx::Surface
doesn't have an equivalent.
--HG--
extra : rebase_source : 721db7717644b32e47d5698a750463394a9895ae
cairo_format_t and gfxImageFormat have their equivalent constants in the same
order, so you can just cast between them, which is kind of nasty.
This patch replaces all such casts with explicit conversions via calls to new
conversion functions. These functions will be removed in a subsequent patch.
--HG--
extra : rebase_source : ca11568fc06ac48f0e7ca409d4dc01b9192c9e83
SharedSurface_EGLImages are deallocated on the client side and are
unable to be recycled. This led to a race condition where CanvasClient
would free a TextureClient, destroying its underlying data, but
ImageHost might attempt to composite the corresponding TextureHost
before receiving a replacement to use instead.
Give SharedSurface an interface for its backends to specify any texture
flags that they require a TextureClient to set, and ensure that
DEALLOCATE_CLIENT is set for SharedSurface_EGLImage
SharedSurfaceTextureClients. This ensures that texture data is destroyed
synchronously and, importantly, after any outstanding ipdl messages have
been delivered. This guarantees that ImageHost has received a new
TextureHost to composite before the previous TextureHost's data is
destroyed.
In bug 922912, we folded back gkmedias.dll info xul.dll, so in practice, there
is no default configuration left that exercises GKMEDIAS_SHARED_LIBRARY. And
sure enough, it's been broken for months in many different ways.
The gkmedias intermediate library is however kept for webrtc signaling tests.