зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1484966 - Part 1: Fix most clang-tidy warnings for layout/painting/ r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D3869 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
58f9cc4fc8
Коммит
2f3ec8cc90
|
@ -2880,7 +2880,7 @@ TransformGfxRectToAncestor(const nsIFrame *aFrame,
|
|||
const nsIFrame *aAncestor,
|
||||
bool* aPreservesAxisAlignedRectangles = nullptr,
|
||||
Maybe<Matrix4x4Flagged>* aMatrixCache = nullptr,
|
||||
bool aStopAtStackingContextAndDisplayPort = false,
|
||||
bool aStopAtStackingContextAndDisplayPortAndOOFFrame = false,
|
||||
nsIFrame** aOutAncestor = nullptr)
|
||||
{
|
||||
Matrix4x4Flagged ctm;
|
||||
|
@ -2890,7 +2890,7 @@ TransformGfxRectToAncestor(const nsIFrame *aFrame,
|
|||
} else {
|
||||
// Else, compute it
|
||||
uint32_t flags = 0;
|
||||
if (aStopAtStackingContextAndDisplayPort) {
|
||||
if (aStopAtStackingContextAndDisplayPortAndOOFFrame) {
|
||||
flags |= nsIFrame::STOP_AT_STACKING_CONTEXT_AND_DISPLAY_PORT;
|
||||
}
|
||||
ctm = nsLayoutUtils::GetTransformToAncestor(aFrame, aAncestor, flags, aOutAncestor);
|
||||
|
@ -2957,7 +2957,7 @@ nsLayoutUtils::TransformFrameRectToAncestor(const nsIFrame* aFrame,
|
|||
const nsIFrame* aAncestor,
|
||||
bool* aPreservesAxisAlignedRectangles /* = nullptr */,
|
||||
Maybe<Matrix4x4Flagged>* aMatrixCache /* = nullptr */,
|
||||
bool aStopAtStackingContextAndDisplayPort /* = false */,
|
||||
bool aStopAtStackingContextAndDisplayPortAndOOFFrame /* = false */,
|
||||
nsIFrame** aOutAncestor /* = nullptr */)
|
||||
{
|
||||
SVGTextFrame* text = GetContainingSVGTextFrame(aFrame);
|
||||
|
@ -2969,7 +2969,7 @@ nsLayoutUtils::TransformFrameRectToAncestor(const nsIFrame* aFrame,
|
|||
result = ToRect(text->TransformFrameRectFromTextChild(aRect, aFrame));
|
||||
result = TransformGfxRectToAncestor(text, result, aAncestor,
|
||||
nullptr, aMatrixCache,
|
||||
aStopAtStackingContextAndDisplayPort, aOutAncestor);
|
||||
aStopAtStackingContextAndDisplayPortAndOOFFrame, aOutAncestor);
|
||||
// TransformFrameRectFromTextChild could involve any kind of transform, we
|
||||
// could drill down into it to get an answer out of it but we don't yet.
|
||||
if (aPreservesAxisAlignedRectangles)
|
||||
|
@ -2981,7 +2981,7 @@ nsLayoutUtils::TransformFrameRectToAncestor(const nsIFrame* aFrame,
|
|||
NSAppUnitsToFloatPixels(aRect.height, srcAppUnitsPerDevPixel));
|
||||
result = TransformGfxRectToAncestor(aFrame, result, aAncestor,
|
||||
aPreservesAxisAlignedRectangles, aMatrixCache,
|
||||
aStopAtStackingContextAndDisplayPort, aOutAncestor);
|
||||
aStopAtStackingContextAndDisplayPortAndOOFFrame, aOutAncestor);
|
||||
}
|
||||
|
||||
float destAppUnitsPerDevPixel = aAncestor->PresContext()->AppUnitsPerDevPixel();
|
||||
|
|
|
@ -870,7 +870,7 @@ public:
|
|||
const nsIFrame* aAncestor,
|
||||
bool* aPreservesAxisAlignedRectangles = nullptr,
|
||||
mozilla::Maybe<Matrix4x4Flagged>* aMatrixCache = nullptr,
|
||||
bool aStopAtStackingContextAndDisplayPort = false,
|
||||
bool aStopAtStackingContextAndDisplayPortAndOOFFrame = false,
|
||||
nsIFrame** aOutAncestor = nullptr);
|
||||
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ public:
|
|||
|
||||
explicit FourFloatsHashKey(KeyTypePointer aKey) : mValue(*aKey) {}
|
||||
FourFloatsHashKey(const FourFloatsHashKey& aToCopy) : mValue(aToCopy.mValue) {}
|
||||
~FourFloatsHashKey() {}
|
||||
~FourFloatsHashKey() = default;
|
||||
|
||||
KeyType GetKey() const { return mValue; }
|
||||
bool KeyEquals(KeyTypePointer aKey) const { return *aKey == mValue; }
|
||||
|
|
|
@ -3143,7 +3143,9 @@ PaintedLayerDataNode::FindPaintedLayerFor(const nsIntRect& aVisibleRect,
|
|||
// use this painted layer.
|
||||
if (data.mVisibleRegion.Intersects(aVisibleRect)) {
|
||||
break;
|
||||
} else if (gfxPrefs::LayoutSmallerPaintedLayers()) {
|
||||
}
|
||||
|
||||
if (gfxPrefs::LayoutSmallerPaintedLayers()) {
|
||||
lowestUsableLayer = nullptr;
|
||||
}
|
||||
}
|
||||
|
@ -6078,9 +6080,9 @@ ComputeDesiredDisplaySizeForAnimation(nsIFrame* aContainerFrame)
|
|||
if (widget) {
|
||||
return LayoutDevicePixel::ToAppUnits(widget->GetClientSize(),
|
||||
presContext->AppUnitsPerDevPixel());
|
||||
} else {
|
||||
return presContext->GetVisibleArea().Size();
|
||||
}
|
||||
|
||||
return presContext->GetVisibleArea().Size();
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
|
@ -212,7 +212,7 @@ private:
|
|||
|
||||
class RefCountedRegion {
|
||||
private:
|
||||
~RefCountedRegion() {}
|
||||
~RefCountedRegion() = default;
|
||||
public:
|
||||
NS_INLINE_DECL_REFCOUNTING(RefCountedRegion)
|
||||
|
||||
|
|
|
@ -48,6 +48,8 @@ public:
|
|||
*/
|
||||
struct PixelRoundedRect
|
||||
{
|
||||
PixelRoundedRect() = delete;
|
||||
|
||||
PixelRoundedRect(const DisplayItemClip::RoundedRect& aRRect,
|
||||
nsPresContext* aPresContext)
|
||||
: mRect(aPresContext->AppUnitsToGfxUnits(aRRect.mRect.x),
|
||||
|
@ -60,6 +62,7 @@ public:
|
|||
mRadii[corner] = aPresContext->AppUnitsToGfxUnits(aRRect.mRadii[corner]);
|
||||
}
|
||||
}
|
||||
|
||||
PixelRoundedRect(const PixelRoundedRect& aPRR)
|
||||
: mRect(aPRR.mRect)
|
||||
{
|
||||
|
@ -118,9 +121,6 @@ public:
|
|||
gfx::Rect mRect;
|
||||
// Indices into mRadii are the enum HalfCorner constants in gfx/2d/Types.h
|
||||
gfxFloat mRadii[8];
|
||||
|
||||
private:
|
||||
PixelRoundedRect() = delete;
|
||||
};
|
||||
|
||||
struct MaskLayerImageKeyRef;
|
||||
|
|
|
@ -347,13 +347,17 @@ public:
|
|||
// frame, and even though we schedule a paint, we don't mark the canvas
|
||||
// frame as invalid.
|
||||
return true;
|
||||
} else if (type == DisplayItemType::TYPE_TABLE_BORDER_COLLAPSE) {
|
||||
}
|
||||
|
||||
if (type == DisplayItemType::TYPE_TABLE_BORDER_COLLAPSE) {
|
||||
// We intentionally don't mark the root table frame as modified when a subframe
|
||||
// changes, even though the border collapse item for the root frame is what paints
|
||||
// the changed border. Marking the root frame as modified would rebuild display
|
||||
// items for the whole table area, and we don't want that.
|
||||
return true;
|
||||
} else if (type == DisplayItemType::TYPE_TEXT_OVERFLOW) {
|
||||
}
|
||||
|
||||
if (type == DisplayItemType::TYPE_TEXT_OVERFLOW) {
|
||||
// Text overflow marker items are created with the wrapping block as their frame,
|
||||
// and have an index value to note which line they are created for. Their rendering
|
||||
// can change if the items on that line change, which may not mark the block as modified.
|
||||
|
@ -361,17 +365,22 @@ public:
|
|||
// if they might have changed rendering, and it's easier to just use the new items
|
||||
// rather than computing if we actually need them.
|
||||
return true;
|
||||
} else if (type == DisplayItemType::TYPE_SUBDOCUMENT) {
|
||||
}
|
||||
|
||||
if (type == DisplayItemType::TYPE_SUBDOCUMENT) {
|
||||
// nsDisplaySubDocument::mShouldFlatten can change without an invalidation
|
||||
// (and is the reason we unconditionally build the subdocument item), so always
|
||||
// use the new one to make sure we get the right value.
|
||||
return true;
|
||||
} else if (type == DisplayItemType::TYPE_CARET) {
|
||||
}
|
||||
|
||||
if (type == DisplayItemType::TYPE_CARET) {
|
||||
// The caret can change position while still being owned by the same frame
|
||||
// and we don't invalidate in that case. Use the new version since the changed
|
||||
// bounds are needed for DLBI.
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -506,11 +515,12 @@ public:
|
|||
PredecessorStackItem item = mStack.PopLastElement();
|
||||
AutoTArray<MergedListIndex,2> result =
|
||||
ResolveNodeIndexesOldToMerged(item.mDirectPredecessors);
|
||||
|
||||
if (mStack.IsEmpty()) {
|
||||
return result;
|
||||
} else {
|
||||
ProcessOldNode(item.mNode, std::move(result));
|
||||
}
|
||||
|
||||
ProcessOldNode(item.mNode, std::move(result));
|
||||
} else {
|
||||
// Grab the current predecessor, push predecessors of that onto the processing
|
||||
// stack (if it hasn't already been processed), and then advance to the next entry.
|
||||
|
|
|
@ -88,7 +88,7 @@ typedef Index<MergedListUnits> MergedListIndex;
|
|||
template <typename T>
|
||||
class DirectedAcyclicGraph {
|
||||
public:
|
||||
DirectedAcyclicGraph() {}
|
||||
DirectedAcyclicGraph() = default;
|
||||
DirectedAcyclicGraph(DirectedAcyclicGraph&& aOther)
|
||||
: mNodesInfo(std::move(aOther.mNodesInfo))
|
||||
, mDirectPredecessorList(std::move(aOther.mDirectPredecessorList))
|
||||
|
|
|
@ -84,9 +84,7 @@ struct InlineBackgroundData
|
|||
{
|
||||
}
|
||||
|
||||
~InlineBackgroundData()
|
||||
{
|
||||
}
|
||||
~InlineBackgroundData() = default;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
|
@ -1465,10 +1463,10 @@ nsCSSRendering::FindBackgroundFrame(nsIFrame* aForFrame,
|
|||
if (IsCanvasFrame(aForFrame)) {
|
||||
*aBackgroundFrame = FindCanvasBackgroundFrame(aForFrame, rootElementFrame);
|
||||
return true;
|
||||
} else {
|
||||
*aBackgroundFrame = aForFrame;
|
||||
return FindElementBackground(aForFrame, rootElementFrame);
|
||||
}
|
||||
|
||||
*aBackgroundFrame = aForFrame;
|
||||
return FindElementBackground(aForFrame, rootElementFrame);
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -1529,7 +1527,7 @@ nsCSSRendering::GetShadowColor(nsCSSShadowItem* aShadow,
|
|||
}
|
||||
|
||||
nsRect
|
||||
nsCSSRendering::GetShadowRect(const nsRect aFrameArea,
|
||||
nsCSSRendering::GetShadowRect(const nsRect& aFrameArea,
|
||||
bool aNativeTheme,
|
||||
nsIFrame* aForFrame)
|
||||
{
|
||||
|
@ -1824,12 +1822,14 @@ nsCSSRendering::GetShadowInnerRadii(nsIFrame* aFrame,
|
|||
BoxDecorationRectForBorder(aFrame, aFrameArea, aFrame->GetSkipSides());
|
||||
nsSize sz = frameRect.Size();
|
||||
nsMargin border = aFrame->GetUsedBorder();
|
||||
bool hasBorderRadius = aFrame->GetBorderRadii(sz, sz, Sides(), twipsRadii);
|
||||
aFrame->GetBorderRadii(sz, sz, Sides(), twipsRadii);
|
||||
const nscoord oneDevPixel = aFrame->PresContext()->DevPixelsToAppUnits(1);
|
||||
|
||||
RectCornerRadii borderRadii;
|
||||
|
||||
hasBorderRadius = GetBorderRadii(frameRect, aFrameArea, aFrame, borderRadii);
|
||||
const bool hasBorderRadius =
|
||||
GetBorderRadii(frameRect, aFrameArea, aFrame, borderRadii);
|
||||
|
||||
if (hasBorderRadius) {
|
||||
ComputePixelRadii(twipsRadii, oneDevPixel, &borderRadii);
|
||||
|
||||
|
@ -3200,10 +3200,10 @@ ComputeSpacedRepeatSize(nscoord aImageDimension,
|
|||
if (ratio < 2.0f) { // If you can't repeat at least twice, then don't repeat.
|
||||
aRepeat = false;
|
||||
return aImageDimension;
|
||||
} else {
|
||||
aRepeat = true;
|
||||
return (aAvailableSpace - aImageDimension) / (NSToIntFloor(ratio) - 1);
|
||||
}
|
||||
|
||||
aRepeat = true;
|
||||
return (aAvailableSpace - aImageDimension) / (NSToIntFloor(ratio) - 1);
|
||||
}
|
||||
|
||||
/* static */ nscoord
|
||||
|
|
|
@ -148,7 +148,7 @@ struct nsCSSRendering {
|
|||
const nsRect& aBorderRect,
|
||||
nsIFrame* aFrame,
|
||||
RectCornerRadii& aOutRadii);
|
||||
static nsRect GetShadowRect(const nsRect aFrameArea,
|
||||
static nsRect GetShadowRect(const nsRect& aFrameArea,
|
||||
bool aNativeTheme,
|
||||
nsIFrame* aForFrame);
|
||||
static mozilla::gfx::Color GetShadowColor(nsCSSShadowItem* aShadow,
|
||||
|
|
|
@ -367,13 +367,13 @@ static void ResolveMidpoints(nsTArray<ColorStop>& stops)
|
|||
}
|
||||
// calculate colors
|
||||
|
||||
for (size_t y = 0; y < 9; y++) {
|
||||
for (auto& newStop : newStops) {
|
||||
// Calculate the intermediate color stops per the formula of the CSS images
|
||||
// spec. http://dev.w3.org/csswg/css-images/#color-stop-syntax
|
||||
// 9 points were chosen since it is the minimum number of stops that always
|
||||
// give the smoothest appearace regardless of midpoint position and difference
|
||||
// in luminance of the end points.
|
||||
float relativeOffset = (newStops[y].mPosition - offset1) / (offset2 - offset1);
|
||||
float relativeOffset = (newStop.mPosition - offset1) / (offset2 - offset1);
|
||||
float multiplier = powf(relativeOffset, logf(.5f) / logf(midpoint));
|
||||
|
||||
gfx::Float red = color1.r + multiplier * (color2.r - color1.r);
|
||||
|
@ -381,7 +381,7 @@ static void ResolveMidpoints(nsTArray<ColorStop>& stops)
|
|||
gfx::Float blue = color1.b + multiplier * (color2.b - color1.b);
|
||||
gfx::Float alpha = color1.a + multiplier * (color2.a - color1.a);
|
||||
|
||||
newStops[y].mColor = Color(red, green, blue, alpha);
|
||||
newStop.mColor = Color(red, green, blue, alpha);
|
||||
}
|
||||
|
||||
stops.ReplaceElementsAt(x, 1, newStops, 9);
|
||||
|
@ -844,7 +844,6 @@ nsCSSGradientRenderer::Paint(gfxContext& aContext,
|
|||
mRadiusX = mRadiusY = 0.0;
|
||||
}
|
||||
stopDelta = 0.0;
|
||||
lastStop = firstStop;
|
||||
}
|
||||
|
||||
// Don't normalize non-repeating or degenerate gradients below 0..1
|
||||
|
|
|
@ -2684,7 +2684,8 @@ already_AddRefed<LayerManager> nsDisplayList::PaintRoot(nsDisplayListBuilder* aB
|
|||
}
|
||||
|
||||
NotifySubDocInvalidationFunc computeInvalidFunc =
|
||||
presContext->MayHavePaintEventListenerInSubDocument() ? nsPresContext::NotifySubDocInvalidation : 0;
|
||||
presContext->MayHavePaintEventListenerInSubDocument()
|
||||
? nsPresContext::NotifySubDocInvalidation : nullptr;
|
||||
|
||||
UniquePtr<LayerProperties> props;
|
||||
|
||||
|
@ -2838,7 +2839,8 @@ GetMouseThrough(const nsIFrame* aFrame)
|
|||
while (frame) {
|
||||
if (frame->GetStateBits() & NS_FRAME_MOUSE_THROUGH_ALWAYS) {
|
||||
return true;
|
||||
} else if (frame->GetStateBits() & NS_FRAME_MOUSE_THROUGH_NEVER) {
|
||||
}
|
||||
if (frame->GetStateBits() & NS_FRAME_MOUSE_THROUGH_NEVER) {
|
||||
return false;
|
||||
}
|
||||
frame = nsBox::GetParentXULBox(frame);
|
||||
|
@ -4393,13 +4395,6 @@ nsDisplayThemedBackground::nsDisplayThemedBackground(nsDisplayListBuilder* aBuil
|
|||
MOZ_COUNT_CTOR(nsDisplayThemedBackground);
|
||||
}
|
||||
|
||||
nsDisplayThemedBackground::~nsDisplayThemedBackground()
|
||||
{
|
||||
#ifdef NS_BUILD_REFCNT_LOGGING
|
||||
MOZ_COUNT_DTOR(nsDisplayThemedBackground);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
nsDisplayThemedBackground::Init(nsDisplayListBuilder* aBuilder)
|
||||
{
|
||||
|
@ -5514,7 +5509,7 @@ nsDisplayBoxShadowOuter::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder
|
|||
|
||||
// We don't move the shadow rect here since WR does it for us
|
||||
// Now translate everything to device pixels.
|
||||
nsRect shadowRect = frameRect;
|
||||
const nsRect& shadowRect = frameRect;
|
||||
LayoutDevicePoint shadowOffset = LayoutDevicePoint::FromAppUnits(
|
||||
nsPoint(shadow->mXOffset, shadow->mYOffset),
|
||||
appUnitsPerDevPixel);
|
||||
|
@ -5607,7 +5602,7 @@ nsDisplayBoxShadowInner::Paint(nsDisplayListBuilder* aBuilder,
|
|||
bool
|
||||
nsDisplayBoxShadowInner::CanCreateWebRenderCommands(nsDisplayListBuilder* aBuilder,
|
||||
nsIFrame* aFrame,
|
||||
nsPoint aReferenceOffset)
|
||||
const nsPoint& aReferenceOffset)
|
||||
{
|
||||
nsCSSShadowArray *shadows = aFrame->StyleEffects()->mBoxShadow;
|
||||
if (!shadows) {
|
||||
|
@ -5633,7 +5628,7 @@ nsDisplayBoxShadowInner::CreateInsetBoxShadowWebRenderCommands(mozilla::wr::Disp
|
|||
const StackingContextHelper& aSc,
|
||||
nsRegion& aVisibleRegion,
|
||||
nsIFrame* aFrame,
|
||||
const nsRect aBorderRect)
|
||||
const nsRect& aBorderRect)
|
||||
{
|
||||
if (!nsCSSRendering::ShouldPaintBoxShadowInner(aFrame)) {
|
||||
return;
|
||||
|
@ -8111,8 +8106,11 @@ nsDisplayTransform::ShouldPrerenderTransformedContent(nsDisplayListBuilder* aBui
|
|||
if (frameArea <= maxLimitArea && frameSize <= absoluteLimit) {
|
||||
*aDirtyRect = overflow;
|
||||
return FullPrerender;
|
||||
} else if (gfxPrefs::PartiallyPrerenderAnimatedContent()) {
|
||||
*aDirtyRect = nsLayoutUtils::ComputePartialPrerenderArea(*aDirtyRect, overflow, maxSize);
|
||||
}
|
||||
|
||||
if (gfxPrefs::PartiallyPrerenderAnimatedContent()) {
|
||||
*aDirtyRect = nsLayoutUtils::ComputePartialPrerenderArea(*aDirtyRect,
|
||||
overflow, maxSize);
|
||||
return PartialPrerender;
|
||||
}
|
||||
|
||||
|
@ -9863,9 +9861,9 @@ nsDisplaySVGWrapper::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aB
|
|||
aSc,
|
||||
aManager,
|
||||
aDisplayListBuilder);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
namespace mozilla {
|
||||
|
|
|
@ -2109,6 +2109,8 @@ public:
|
|||
MOZ_COUNT_CTOR(nsDisplayItem);
|
||||
}
|
||||
|
||||
nsDisplayItem() = delete;
|
||||
|
||||
protected:
|
||||
virtual ~nsDisplayItem() {
|
||||
MOZ_COUNT_DTOR(nsDisplayItem);
|
||||
|
@ -2914,8 +2916,6 @@ public:
|
|||
}
|
||||
|
||||
protected:
|
||||
nsDisplayItem() = delete;
|
||||
|
||||
typedef bool (*PrefFunc)(void);
|
||||
bool ShouldUseAdvancedLayer(LayerManager* aManager, PrefFunc aFunc) const;
|
||||
bool CanUseAdvancedLayer(LayerManager* aManager) const;
|
||||
|
@ -3407,8 +3407,8 @@ struct nsDisplayListCollection : public nsDisplayListSet {
|
|||
* Sort all lists by content order.
|
||||
*/
|
||||
void SortAllByContentOrder(nsIContent* aCommonAncestor) {
|
||||
for (int32_t i = 0; i < 6; ++i) {
|
||||
mLists[i].SortByContentOrder(aCommonAncestor);
|
||||
for (auto& mList : mLists) {
|
||||
mList.SortByContentOrder(aCommonAncestor);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3431,7 +3431,7 @@ private:
|
|||
*/
|
||||
class RetainedDisplayList : public nsDisplayList {
|
||||
public:
|
||||
RetainedDisplayList() {}
|
||||
RetainedDisplayList() = default;
|
||||
RetainedDisplayList(RetainedDisplayList&& aOther)
|
||||
{
|
||||
AppendToTop(&aOther);
|
||||
|
@ -3828,43 +3828,43 @@ protected:
|
|||
if (aStyleBorder.IsBorderImageLoaded()) {
|
||||
borderBounds.Inflate(aStyleBorder.GetImageOutset());
|
||||
return borderBounds;
|
||||
} else {
|
||||
nsMargin border = aStyleBorder.GetComputedBorder();
|
||||
T result;
|
||||
if (border.top > 0) {
|
||||
result = nsRect(borderBounds.X(), borderBounds.Y(), borderBounds.Width(), border.top);
|
||||
}
|
||||
if (border.right > 0) {
|
||||
result.OrWith(nsRect(borderBounds.XMost() - border.right, borderBounds.Y(), border.right, borderBounds.Height()));
|
||||
}
|
||||
if (border.bottom > 0) {
|
||||
result.OrWith(nsRect(borderBounds.X(), borderBounds.YMost() - border.bottom, borderBounds.Width(), border.bottom));
|
||||
}
|
||||
if (border.left > 0) {
|
||||
result.OrWith(nsRect(borderBounds.X(), borderBounds.Y(), border.left, borderBounds.Height()));
|
||||
}
|
||||
|
||||
nscoord radii[8];
|
||||
if (mFrame->GetBorderRadii(radii)) {
|
||||
if (border.left > 0 || border.top > 0) {
|
||||
nsSize cornerSize(radii[mozilla::eCornerTopLeftX], radii[mozilla::eCornerTopLeftY]);
|
||||
result.OrWith(nsRect(borderBounds.TopLeft(), cornerSize));
|
||||
}
|
||||
if (border.top > 0 || border.right > 0) {
|
||||
nsSize cornerSize(radii[mozilla::eCornerTopRightX], radii[mozilla::eCornerTopRightY]);
|
||||
result.OrWith(nsRect(borderBounds.TopRight() - nsPoint(cornerSize.width, 0), cornerSize));
|
||||
}
|
||||
if (border.right > 0 || border.bottom > 0) {
|
||||
nsSize cornerSize(radii[mozilla::eCornerBottomRightX], radii[mozilla::eCornerBottomRightY]);
|
||||
result.OrWith(nsRect(borderBounds.BottomRight() - nsPoint(cornerSize.width, cornerSize.height), cornerSize));
|
||||
}
|
||||
if (border.bottom > 0 || border.left > 0) {
|
||||
nsSize cornerSize(radii[mozilla::eCornerBottomLeftX], radii[mozilla::eCornerBottomLeftY]);
|
||||
result.OrWith(nsRect(borderBounds.BottomLeft() - nsPoint(0, cornerSize.height), cornerSize));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
nsMargin border = aStyleBorder.GetComputedBorder();
|
||||
T result;
|
||||
if (border.top > 0) {
|
||||
result = nsRect(borderBounds.X(), borderBounds.Y(), borderBounds.Width(), border.top);
|
||||
}
|
||||
if (border.right > 0) {
|
||||
result.OrWith(nsRect(borderBounds.XMost() - border.right, borderBounds.Y(), border.right, borderBounds.Height()));
|
||||
}
|
||||
if (border.bottom > 0) {
|
||||
result.OrWith(nsRect(borderBounds.X(), borderBounds.YMost() - border.bottom, borderBounds.Width(), border.bottom));
|
||||
}
|
||||
if (border.left > 0) {
|
||||
result.OrWith(nsRect(borderBounds.X(), borderBounds.Y(), border.left, borderBounds.Height()));
|
||||
}
|
||||
|
||||
nscoord radii[8];
|
||||
if (mFrame->GetBorderRadii(radii)) {
|
||||
if (border.left > 0 || border.top > 0) {
|
||||
nsSize cornerSize(radii[mozilla::eCornerTopLeftX], radii[mozilla::eCornerTopLeftY]);
|
||||
result.OrWith(nsRect(borderBounds.TopLeft(), cornerSize));
|
||||
}
|
||||
if (border.top > 0 || border.right > 0) {
|
||||
nsSize cornerSize(radii[mozilla::eCornerTopRightX], radii[mozilla::eCornerTopRightY]);
|
||||
result.OrWith(nsRect(borderBounds.TopRight() - nsPoint(cornerSize.width, 0), cornerSize));
|
||||
}
|
||||
if (border.right > 0 || border.bottom > 0) {
|
||||
nsSize cornerSize(radii[mozilla::eCornerBottomRightX], radii[mozilla::eCornerBottomRightY]);
|
||||
result.OrWith(nsRect(borderBounds.BottomRight() - nsPoint(cornerSize.width, cornerSize.height), cornerSize));
|
||||
}
|
||||
if (border.bottom > 0 || border.left > 0) {
|
||||
nsSize cornerSize(radii[mozilla::eCornerBottomLeftX], radii[mozilla::eCornerBottomLeftY]);
|
||||
result.OrWith(nsRect(borderBounds.BottomLeft() - nsPoint(0, cornerSize.height), cornerSize));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
nsRect mBounds;
|
||||
|
@ -4312,7 +4312,15 @@ class nsDisplayThemedBackground : public nsDisplayItem {
|
|||
public:
|
||||
nsDisplayThemedBackground(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame,
|
||||
const nsRect& aBackgroundRect);
|
||||
virtual ~nsDisplayThemedBackground();
|
||||
|
||||
#ifdef NS_BUILD_REFCNT_LOGGING
|
||||
virtual ~nsDisplayThemedBackground() {
|
||||
MOZ_COUNT_DTOR(nsDisplayThemedBackground);
|
||||
}
|
||||
#else
|
||||
virtual ~nsDisplayThemedBackground() = default;
|
||||
#endif
|
||||
|
||||
void Init(nsDisplayListBuilder* aBuilder);
|
||||
|
||||
void Destroy(nsDisplayListBuilder* aBuilder) override
|
||||
|
@ -4760,12 +4768,12 @@ public:
|
|||
|
||||
static bool CanCreateWebRenderCommands(nsDisplayListBuilder* aBuilder,
|
||||
nsIFrame* aFrame,
|
||||
nsPoint aReferencePoint);
|
||||
const nsPoint& aReferencePoint);
|
||||
static void CreateInsetBoxShadowWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuilder,
|
||||
const StackingContextHelper& aSc,
|
||||
nsRegion& aVisibleRegion,
|
||||
nsIFrame* aFrame,
|
||||
const nsRect aBorderRect);
|
||||
const nsRect& aBorderRect);
|
||||
virtual bool CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuilder,
|
||||
mozilla::wr::IpcResourceUpdateQueue& aResources,
|
||||
const StackingContextHelper& aSc,
|
||||
|
@ -4934,6 +4942,8 @@ public:
|
|||
mListPtr = &mList;
|
||||
}
|
||||
|
||||
nsDisplayWrapList() = delete;
|
||||
|
||||
/**
|
||||
* A custom copy-constructor that does not copy mList, as this would mutate
|
||||
* the other item.
|
||||
|
@ -5114,8 +5124,6 @@ public:
|
|||
const ActiveScrolledRoot* GetFrameActiveScrolledRoot() { return mFrameActiveScrolledRoot; }
|
||||
|
||||
protected:
|
||||
nsDisplayWrapList() = delete;
|
||||
|
||||
void MergeFromTrackingMergedFrames(const nsDisplayWrapList* aOther)
|
||||
{
|
||||
mBounds.UnionRect(mBounds, aOther->mBounds);
|
||||
|
@ -6775,9 +6783,7 @@ public:
|
|||
|
||||
nsDisplayPerspective(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame,
|
||||
nsDisplayList* aList);
|
||||
~nsDisplayPerspective()
|
||||
{
|
||||
}
|
||||
~nsDisplayPerspective() = default;
|
||||
|
||||
virtual void HitTest(nsDisplayListBuilder* aBuilder, const nsRect& aRect,
|
||||
HitTestState* aState, nsTArray<nsIFrame*> *aOutFrames) override
|
||||
|
|
|
@ -70,10 +70,6 @@ nsImageRenderer::nsImageRenderer(nsIFrame* aForFrame,
|
|||
{
|
||||
}
|
||||
|
||||
nsImageRenderer::~nsImageRenderer()
|
||||
{
|
||||
}
|
||||
|
||||
static bool
|
||||
ShouldTreatAsCompleteDueToSyncDecode(const nsStyleImage* aImage,
|
||||
uint32_t aFlags)
|
||||
|
|
|
@ -119,7 +119,7 @@ public:
|
|||
};
|
||||
|
||||
nsImageRenderer(nsIFrame* aForFrame, const nsStyleImage* aImage, uint32_t aFlags);
|
||||
~nsImageRenderer();
|
||||
~nsImageRenderer() = default;
|
||||
/**
|
||||
* Populates member variables to get ready for rendering.
|
||||
* @return true iff the image is ready, and there is at least a pixel to
|
||||
|
|
Загрузка…
Ссылка в новой задаче