import changes from `dev' branch of rmottola/Arctic-Fox:

- Bug 1166942 - Add logging of color layer bounds. r=nical (442de4b6c)
- Bug 1152109 - Don't clear plugin data cache in ShadowLayers code, we need to resend this during repaints that do not involve reflow. r=roc (8670e73f9)
- Bug 1158122 - Remove all occurences of nsIntRect in gfx/layers/composite. r=nical (dcfa2050a)
- Bug 1158122 - Remove all occurences of nsIntRect in gfx/ipc/. r=nical (1ca3800b5)
- Bug 1158122 - Remove all occurences of nsIntRect in gfx/gl/. r=nical (187d70360)
- Bug 1158122 - Remove all occurences of nsIntRect in gfx/thebes/. r=nical (487ab747c)
- Bug 1155621 - Remove no-op gfx2DGlue conversion helpers. r=Bas (f2ea364d4)
- Bug 1158122 - Remove some occurences of nsIntRect in gfx/layers/. r=nical (b1bb2e736)
- Bug 1158122 - Remove all occurences of nsIntRect in gfx/layers/client. r=nical (f0e71c984)
- Bug 1158122 - Remove the remaining occurences of nsIntRect in gfx/layers. r=nical (571ff6de0)
- Bug 1148350 - Add a test. r=botond (226b59773)
- Bug 1158122 - Remove most occurences of nsIntRect in gfx/tests. r=nical (cb3b2541c)
- Bug 1032848 - Part 1: Implement WebIDL for HTMLCanvasElement::CaptureStream. r=smaug, r=mt (210e34454)
- Bug 1032848 - Part 2: Implement HTMLCanvasElement::CaptureStream. r=mt, r=jesup, r=jgilbert, r=gwright (bec93b4d3)
- Bug 1032848 followup: Add 'override' annotation to Notify() method in CanvasCaptureMediaStream.cpp. rs=ehsan (9866fd266)
- Bug 1032848 - Part 3: Add tests for HTMLCanvasElement::CaptureStream. r=mt, r=jgilbert, r=jesup (bde68ba7c)
- Bug 987498 - Part 1 - Layers support OverlayImage. r=roc (8b22b789f)
- Bug 987498 - Part 2 - HTMLMediaElement supports playback OverlayImage. r=roc (247dc15a2)
- Bug 987498 - Part 3 - Implement DOMHwMediaStream. r=roc (f0d9de519)
- Bug 987498 - Part 4 -Implement SetImageSize on DOMHwMediaStream. r=roc (850cf6ad0)
- Bug 1147194 - Do scroll info layer hoisting when building the display list. r=tn (64ae65e97)
- Bug 1161389 - Skip AccessibleCaret frame if nsDisplayListBuilder doesn't build caret. r=roc (0e8328488)
- Bug 1068881 (Part 2) - Add reftests for rounding image dest rects to zero size. r=roc (00202564b)
- Bug 1164227 - Don't allow invalid region simplification to invalidate unchanged scrolled contents. r=roc (3cde9cd56)
- Bug 1148022 - When frame metrics are attached to the container layer of the root scroll frame, make sure that its scroll frame is active. r=tn (5369f9175)
- Bug 1154478 - Really force-enable the event-regions code when APZ is enabled. r=tn (e7ba54c3d)
- Move AsyncPanZoomAnimation into its own header. (bug 1139220 part 1, r=kats) (e06fd8854)
- Bug 1139180 - Add BUG_COMPONENT metadata to moz.build for files in layout/. r=roc (468dedf02)
- Factor the guts of AsyncScroll into a base helper class. (bug 1139220 part 2, r=kgilbert) (1719bcba6)
- Use the main-thread key spline animation logic for Desktop APZ. (bug 1139220 part 3, r=kats,kgilbert) (84a1d8948)
- Bug 1147038. Use the correct clip for root scroll frames in root content documents. r=mstange (cae882bdf)
- Use Maybe to communicate the APZ scrollframe clip. (bug 1148582 part 1, r=mstange) (d22c5cfeb)
This commit is contained in:
2020-12-03 09:53:51 +08:00
parent c87e0c17a5
commit fa9ed1e11b
168 changed files with 3290 additions and 993 deletions
+19 -19
View File
@@ -43,7 +43,7 @@
#include "nsDebug.h" // for NS_ASSERTION, etc
#include "nsISupportsImpl.h" // for gfxContext::Release, etc
#include "nsPoint.h" // for nsIntPoint
#include "nsRect.h" // for nsIntRect
#include "nsRect.h" // for mozilla::gfx::IntRect
#include "nsRegion.h" // for nsIntRegion, etc
#include "nsTArray.h" // for nsAutoTArray
#ifdef MOZ_ENABLE_SKIA
@@ -67,7 +67,7 @@ using namespace mozilla::gfx;
* aRect.
*/
static bool
ClipToContain(gfxContext* aContext, const nsIntRect& aRect)
ClipToContain(gfxContext* aContext, const IntRect& aRect)
{
gfxRect userRect(aRect.x, aRect.y, aRect.width, aRect.height);
gfxRect deviceRect = aContext->UserToDevice(userRect);
@@ -115,12 +115,12 @@ BasicLayerManager::PushGroupForLayer(gfxContext* aContext, Layer* aLayer,
return result.forget();
}
static nsIntRect
static IntRect
ToInsideIntRect(const gfxRect& aRect)
{
gfxRect r = aRect;
r.RoundIn();
return nsIntRect(r.X(), r.Y(), r.Width(), r.Height());
return IntRect(r.X(), r.Y(), r.Width(), r.Height());
}
// A context helper for BasicLayerManager::PaintLayer() that holds all the
@@ -169,7 +169,7 @@ public:
void AnnotateOpaqueRect()
{
const nsIntRegion& visibleRegion = mLayer->GetEffectiveVisibleRegion();
const nsIntRect& bounds = visibleRegion.GetBounds();
const IntRect& bounds = visibleRegion.GetBounds();
DrawTarget *dt = mTarget->GetDrawTarget();
const IntRect& targetOpaqueRect = dt->GetOpaqueRect();
@@ -281,8 +281,8 @@ BasicLayerManager::BeginTransactionWithTarget(gfxContext* aTarget)
}
static void
TransformIntRect(nsIntRect& aRect, const Matrix& aMatrix,
nsIntRect (*aRoundMethod)(const gfxRect&))
TransformIntRect(IntRect& aRect, const Matrix& aMatrix,
IntRect (*aRoundMethod)(const gfxRect&))
{
Rect gr = Rect(aRect.x, aRect.y, aRect.width, aRect.height);
gr = aMatrix.TransformBounds(gr);
@@ -309,12 +309,12 @@ enum {
ALLOW_OPAQUE = 0x01,
};
static void
MarkLayersHidden(Layer* aLayer, const nsIntRect& aClipRect,
const nsIntRect& aDirtyRect,
MarkLayersHidden(Layer* aLayer, const IntRect& aClipRect,
const IntRect& aDirtyRect,
nsIntRegion& aOpaqueRegion,
uint32_t aFlags)
{
nsIntRect newClipRect(aClipRect);
IntRect newClipRect(aClipRect);
uint32_t newFlags = aFlags;
// Allow aLayer or aLayer's descendants to cover underlying layers
@@ -326,7 +326,7 @@ MarkLayersHidden(Layer* aLayer, const nsIntRect& aClipRect,
{
const Maybe<ParentLayerIntRect>& clipRect = aLayer->GetEffectiveClipRect();
if (clipRect) {
nsIntRect cr = ParentLayerIntRect::ToUntyped(*clipRect);
IntRect cr = ParentLayerIntRect::ToUntyped(*clipRect);
// clipRect is in the container's coordinate system. Get it into the
// global coordinate system.
if (aLayer->GetParent()) {
@@ -356,7 +356,7 @@ MarkLayersHidden(Layer* aLayer, const nsIntRect& aClipRect,
}
nsIntRegion region = aLayer->GetEffectiveVisibleRegion();
nsIntRect r = region.GetBounds();
IntRect r = region.GetBounds();
TransformIntRect(r, transform, ToOutsideIntRect);
r.IntersectRect(r, aDirtyRect);
data->SetHidden(aOpaqueRegion.Contains(r));
@@ -366,7 +366,7 @@ MarkLayersHidden(Layer* aLayer, const nsIntRect& aClipRect,
if ((aLayer->GetContentFlags() & Layer::CONTENT_OPAQUE) &&
(newFlags & ALLOW_OPAQUE)) {
nsIntRegionRectIterator it(region);
while (const nsIntRect* sr = it.Next()) {
while (const IntRect* sr = it.Next()) {
r = *sr;
TransformIntRect(r, transform, ToInsideIntRect);
@@ -395,18 +395,18 @@ MarkLayersHidden(Layer* aLayer, const nsIntRect& aClipRect,
* clipped and in the dirty rect), in the root coordinate system.
*/
static void
ApplyDoubleBuffering(Layer* aLayer, const nsIntRect& aVisibleRect)
ApplyDoubleBuffering(Layer* aLayer, const IntRect& aVisibleRect)
{
BasicImplData* data = ToData(aLayer);
if (data->IsHidden())
return;
nsIntRect newVisibleRect(aVisibleRect);
IntRect newVisibleRect(aVisibleRect);
{
const Maybe<ParentLayerIntRect>& clipRect = aLayer->GetEffectiveClipRect();
if (clipRect) {
nsIntRect cr = ParentLayerIntRect::ToUntyped(*clipRect);
IntRect cr = ParentLayerIntRect::ToUntyped(*clipRect);
// clipRect is in the container's coordinate system. Get it into the
// global coordinate system.
if (aLayer->GetParent()) {
@@ -514,7 +514,7 @@ BasicLayerManager::EndTransactionInternal(DrawPaintedLayerCallback aCallback,
if (mTarget && mRoot &&
!(aFlags & END_NO_IMMEDIATE_REDRAW) &&
!(aFlags & END_NO_COMPOSITE)) {
nsIntRect clipRect;
IntRect clipRect;
{
gfxContextMatrixAutoSaveRestore save(mTarget);
@@ -533,7 +533,7 @@ BasicLayerManager::EndTransactionInternal(DrawPaintedLayerCallback aCallback,
PaintLayer(mTarget, mRoot, aCallback, aCallbackData);
if (!mRegionToClear.IsEmpty()) {
nsIntRegionRectIterator iter(mRegionToClear);
const nsIntRect *r;
const IntRect *r;
while ((r = iter.Next())) {
mTarget->GetDrawTarget()->ClearRect(Rect(r->x, r->y, r->width, r->height));
}
@@ -928,7 +928,7 @@ BasicLayerManager::PaintLayer(gfxContext* aTarget,
PaintSelfOrChildren(paintLayerContext, aTarget);
}
} else {
const nsIntRect& bounds = visibleRegion.GetBounds();
const IntRect& bounds = visibleRegion.GetBounds();
RefPtr<DrawTarget> untransformedDT =
gfxPlatform::GetPlatform()->CreateOffscreenContentDrawTarget(IntSize(bounds.width, bounds.height),
SurfaceFormat::B8G8R8A8);