Closed Bug 709398 Opened 13 years ago Closed 1 year ago

"ABORT: negative scaling factors must be handled manually" with background, -moz-column

Categories

(Core :: Layout, defect)

x86_64
macOS
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: jruderman, Unassigned)

References

Details

(Keywords: assertion, testcase, Whiteboard: qa-not-actionable)

Attachments

(5 files, 1 obsolete file)

###!!! ABORT: negative scaling factors must be handled manually: 'aScale >= 0.0f', file nsCoord.h, line 138
Attached file stack trace
Attached patch fix+test (obsolete) — Splinter Review
https://tbpl.mozilla.org/?tree=Try&rev=8da8879637d8
Assignee: nobody → matspal
Attachment #734275 - Flags: review?(roc)
Comment on attachment 734275 [details] [diff] [review]
fix+test

Review of attachment 734275 [details] [diff] [review]:
-----------------------------------------------------------------

Wouldn't it make more sense to fix this in nsCSSRendering::ComputeBackgroundPositioningArea?
Attached patch fix+test, v2Splinter Review
OK.  The only other caller of ComputeBackgroundPositioningArea
is nsDisplayBackgroundImage::GetPositioningArea() and I figured the
mIsThemed path should be consistent with the non-mIsThemed path so
I clamped that too.

https://tbpl.mozilla.org/?tree=Try&rev=e813a1025a29
Attachment #734275 - Attachment is obsolete: true
Attachment #734275 - Flags: review?(roc)
Attachment #734940 - Flags: review?(roc)
Comment on attachment 734940 [details] [diff] [review]
fix+test, v2

Review of attachment 734940 [details] [diff] [review]:
-----------------------------------------------------------------

::: layout/base/nsCSSRendering.cpp
@@ +4601,5 @@
>  nsSize
>  nsImageRenderer::ComputeSize(const nsStyleBackground::Size& aLayerSize,
>                               const nsSize& aBgPositioningArea)
>  {
> +  MOZ_ASSERT(aBgPositioningArea.width >= 0 && aBgPositioningArea.height >= 0);

I think this should be non-fatal. It doesn't matter much if it's negative here I think.

::: layout/base/nsDisplayList.cpp
@@ +2023,5 @@
>  {
>    if (mIsThemed) {
> +    nsRect bgRect(ToReferenceFrame(), mFrame->GetSize());
> +    bgRect.width = std::max(0, bgRect.width);
> +    bgRect.height = std::max(0, bgRect.height);

Why is this necessary? Frame sizes should never be negative. Do we have known situations where frame sizes go negative?
See Also: → 1395974
Whiteboard: qa-not-actionable

The bug assignee didn't login in Bugzilla in the last months and this bug has severity 'critical'.
:dholbert, could you have a look please?
For more information, please visit auto_nag documentation.

Assignee: MatsPalmgren_bugz → nobody
Flags: needinfo?(dholbert)

In the process of migrating remaining bugs to the new severity system, the severity for this bug cannot be automatically determined. Please retriage this bug using the new severity system.

Severity: critical → --

Here's the testcase, with unprefixed column-count, to make it testable in current builds (which don't support -moz-column-count).

I can't reproduce any assertions in a debug build with this testcase, so this was presumably fixed at some point.

Flags: needinfo?(dholbert)
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → WORKSFORME
Pushed by dholbert@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/24c0088aa2c0
Add crashtest for this no-longer-reproducible bug. (no review, crashtest-only)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: