Bug 1414036 - Make sure we paint nsDisplayButtonBorder's box shadow before early return of the empty border. r=kats
MozReview-Commit-ID: AWevj7ls5SL
--- a/layout/forms/nsButtonFrameRenderer.cpp
+++ b/layout/forms/nsButtonFrameRenderer.cpp
@@ -365,33 +365,33 @@ nsDisplayButtonBorder::CreateWebRenderCo
mozilla::layers::WebRenderLayerManager* aManager,
nsDisplayListBuilder* aDisplayListBuilder)
{
ContainerLayerParameters parameter;
if (GetLayerState(aDisplayListBuilder, aManager, parameter) != LAYER_ACTIVE) {
return false;
}
- if (!mBorderRenderer) {
- // empty border, nothing to do
- MOZ_ASSERT(mBorderIsEmpty);
- return true;
- }
-
// This is really a combination of paint box shadow inner +
// paint border.
nsRect buttonRect = nsRect(ToReferenceFrame(), mFrame->GetSize());
bool snap;
nsRegion visible = GetBounds(aDisplayListBuilder, &snap);
nsDisplayBoxShadowInner::CreateInsetBoxShadowWebRenderCommands(aBuilder,
aSc,
visible,
mFrame,
buttonRect);
- mBorderRenderer->CreateWebRenderCommands(this, aBuilder, aResources, aSc);
+
+ if (mBorderRenderer) {
+ mBorderRenderer->CreateWebRenderCommands(this, aBuilder, aResources, aSc);
+ } else {
+ // empty border, nothing to do
+ MOZ_ASSERT(mBorderIsEmpty);
+ }
return true;
}
void
nsDisplayButtonBorder::ComputeInvalidationRegion(nsDisplayListBuilder* aBuilder,
const nsDisplayItemGeometry* aGeometry,
nsRegion *aInvalidRegion) const