bugzilla.mozilla.org has resumed normal operation. Attachments prior to 2014 will be unavailable for a few days. This is tracked in Bug 1475801.
Please report any other irregularities here.

Missing repaint when using -moz-border-image on a XUL button

VERIFIED FIXED in mozilla1.9.1b3

Status

()

Core
Layout: Images
P3
normal
VERIFIED FIXED
10 years ago
10 years ago

People

(Reporter: mstange, Assigned: dbaron)

Tracking

({verified1.9.1})

Trunk
mozilla1.9.1b3
verified1.9.1
Points:
---
Dependency tree / graph
Bug Flags:
blocking1.9.1 +
in-testsuite +

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(4 attachments)

(Reporter)

Description

10 years ago
Created attachment 351925 [details]
testcase

On first load of the attached testcase the button's border image doesn't show. Resizing the window makes it appear.

I can reproduce the bug when I wait for 30 seconds and hit reload.
(Reporter)

Comment 1

10 years ago
This bug makes the use of border-image in chrome quite unattractive.
Flags: blocking1.9.1?
So I'm seeing slightly different behavior:  I am seeing a repaint, but I'm not seeing a reflow that should have happened.  In other words, the image is used immediately, but the resize that should happen isn't happening.

Are you seeing something different, where the image doesn't get used at all the first load?
I'm also seeing it only in nightlies and not in my tree, which means it's either opt-only, non-DEBUG-only, or fixed by a patch in my tree...
(Reporter)

Comment 4

10 years ago
Created attachment 352068 [details]
left-justified testcase

(In reply to comment #2)
> Are you seeing something different, where the image doesn't get used at all the
> first load?

Yes. On first load I only see the text. (This is on Mac OS X.)

And it looks like there's no reflow, either. I don't know how to tell from the old testcase whether there was a reflow, but in this testcase the button is too narrow on first load.

I see the same behavior in a debug build.
(Reporter)

Comment 5

10 years ago
Created attachment 352069 [details]
screenshots of left-aligned testcase
Flags: blocking1.9.1? → blocking1.9.1+
Priority: -- → P3
Oh, the problem should have been obvious -- XUL layout doesn't use nsHTMLReflowState, so we don't get the pre-loading behavior but instead have the reflow-load-paint race that the border-image code in nsHTMLReflowState is designed to prevent.
(Reporter)

Updated

10 years ago
Blocks: 456214
Created attachment 353557 [details] [diff] [review]
patch

This extracts the relevant piece of the patch to fix this bug.
Attachment #353557 - Flags: superreview?(roc)
Attachment #353557 - Flags: review?(roc)
Attachment #353557 - Flags: superreview?(roc)
Attachment #353557 - Flags: superreview+
Attachment #353557 - Flags: review?(roc)
Attachment #353557 - Flags: review+
David, is this ready to land ?
(It blocks bug 456214...)
Assignee: nobody → dbaron
(In reply to comment #9)
> David, is this ready to land ?

Well, you just did it (on trunk) before I wrote my comment ;->
Fixed on mozilla-central: http://hg.mozilla.org/mozilla-central/rev/2aa1abd075b9
Status: NEW → RESOLVED
Last Resolved: 10 years ago
OS: Mac OS X → All
Resolution: --- → FIXED
Whiteboard: [needs 1.9.1 landing; currently baking]
Target Milestone: --- → mozilla1.9.2a1
Fixed on 1.9.1: http://hg.mozilla.org/releases/mozilla-1.9.1/rev/1a07bc028994
Keywords: fixed1.9.1
Whiteboard: [needs 1.9.1 landing; currently baking]
Target Milestone: mozilla1.9.2a1 → mozilla1.9.1b3
Verified with:

Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20090103 Shiretoko/3.1b3pre ID:20090103020545

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b3pre) Gecko/20090102 Shiretoko/3.1b3pre ID:20090102050105

Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre) Gecko/20090102 Minefield/3.2a1pre ID:20090102020523

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090102 Minefield/3.2a1pre ID:20090102032455
Status: RESOLVED → VERIFIED
Flags: in-testsuite+
Keywords: fixed1.9.1 → verified1.9.1
You need to log in before you can comment on or make changes to this bug.