Closed Bug 804323 Opened 12 years ago Closed 12 years ago

Repaint error: Delay until full display of element

Categories

(Core :: Layout, defect)

17 Branch
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla19
Tracking Status
firefox16 --- unaffected
firefox17 + fixed
firefox18 + fixed
firefox19 + fixed

People

(Reporter: hmitsch, Assigned: roc)

References

Details

(Keywords: regression)

Attachments

(6 files)

Steps to reproduce:
- Open http://carishina.net/henrik/webapps/BlickAmMozilla/zwitter.html
- Press "Stream!"
- Wait 2 seconds (twitter is being queried)
- Tweets are drawn in rectangles

Expected result:
- Rectangles should be drawn immediately

Actual result:
- Rectangles are only fully drawn after a short delay

Issue reproduced on:
- Aurora (Fx 18) on Mac OS and Windows
- Nightly (2012-10-15) on Mac OS

Issue NOT reproducible on:
- Firefox 16.0.1 on Windows
- Safari 6.0.1 on Mac OS
- Chrome 24.0 on Mac OS
I can reproduce this bug with a current version of Firefox Beta (17.0) on OSX.

I can NOT reproduce this bug with the current version of Firefox Release (16.0.1) on OSX.

Removing dependency on `dlbi|539356` bug, as that one landed in Gecko 18, but the bug is also available in Gecko 17.
No longer depends on: dlbi
Version: 18 Branch → 17 Branch
Rectangles are sometimes cut, see the screenshot I attached.

m-c
good=2012-08-13
bad=2012-08-14
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=f89feda9d997&tochange=22288130fea2

Suspected bug: bug 539356.
Loic, thanks!

> Suspected bug: bug 539356.

\cc Matt as he worked on 539356 (dlbi).
The zooming is done by setting the style of the <body> element to something like this:

  transform-origin: 626.5px 317.5px 0px; 
  transform: translate(-410.963px, -193.484px) rotate(-2.31655rad) skewX(0rad) scale(0.978596, 0.978596);

By changing the values in JS, the transitions/zoom effects are created.
Regression window(m-i)
Good:
http://hg.mozilla.org/integration/mozilla-inbound/rev/b753e1dce89f
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/17.0 Firefox/17.0 ID:20120812205544
Bad:
http://hg.mozilla.org/integration/mozilla-inbound/rev/94e4dbce3b94
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/17.0 Firefox/17.0 ID:20120812215445
Pushlog:
http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=b753e1dce89f&tochange=94e4dbce3b94

Inlocal build
Last Good: 2d6fd808c2b0
First Bad: f4e247827bab

Triggered by:
f4e247827bab	Robert O'Callahan — Bug 691651. When an element changes between having a transform and not having one, don't reframe if we don't need to. r=dbaron
Assignee: nobody → roc
Attached file testcase
If you reload the testcase a few times, the yellow box will sometimes fail to appear.

Dumping the frame tree shows that in those cases, the yellow box has been added as an aboslutely-positioned child of the root element instead of the transformed body.
Attached patch fixSplinter Review
Attachment #674541 - Flags: review?(bzbarsky)
Comment on attachment 674541 [details] [diff] [review]
fix

r=me
Attachment #674541 - Flags: review?(bzbarsky) → review+
Either this patch or bug 801488's patches caused mochitest browser-chrome crashes on all platforms. Backed out.
https://hg.mozilla.org/integration/mozilla-inbound/rev/293bdc2afe11

https://tbpl.mozilla.org/php/getParsedLog.php?id=16451037&tree=Mozilla-Inbound

 0  libxul.so!nsGenericHTMLElement::GetOffsetRect(nsRect&, nsIContent**) [nsGenericHTMLElement.cpp : 490 + 0x6]
    eip = 0x013e5761   esp = 0xbfbc2910   ebp = 0xbfbc2998   ebx = 0x027a1234
    esi = 0x91bb1858   edi = 0x8b213228   eax = 0xf0dea7ff   ecx = 0x027a1234
    edx = 0x8b0b7e00   efl = 0x00010296
    Found by: given as instruction pointer in context
 1  libxul.so!nsGenericHTMLElement::GetOffsetHeight(int*) [nsGenericHTMLElement.cpp : 625 + 0x17]
    eip = 0x013e3cea   esp = 0xbfbc29a0   ebp = 0xbfbc29e8   ebx = 0x8d991da0
    esi = 0xbfbc29dc   edi = 0x8f3fa420
    Found by: call frame info
 2  libxul.so!nsIDOMHTMLElement_GetOffsetHeight [dom_quickstubs.cpp : 12640 + 0xb]
    eip = 0x017c484e   esp = 0xbfbc29f0   ebp = 0xbfbc2a38   ebx = 0x8d991da0
    esi = 0xb2fff8a0   edi = 0xa63b2024
    Found by: call frame info
 3  0x3b1d326
    eip = 0x03b1d327   esp = 0xbfbc2a40   ebp = 0xbfbc2a88   ebx = 0x8d991da0
    esi = 0x8aafe010   edi = 0xb2fff8b0
    Found by: call frame info
 4  libxul.so + 0x1aea233
    eip = 0x027a1234   esp = 0xbfbc2a90   ebp = 0xb2fff848
    Found by: previous frame's frame pointer
 5  libxul.so!js::mjit::EnterMethodJIT(JSContext*, js::StackFrame*, void*, JS::Value*, bool) [MethodJIT.cpp : 1043 + 0x1c]
    eip = 0x022273da   esp = 0xbfbc2aa0   ebp = 0xb2fff848
    Found by: stack scanning
 6  libxul.so!mozilla::css::Loader::InsertSheetInDoc(nsCSSStyleSheet*, nsIContent*, nsIDocument*) [Loader.cpp : 1310 + 0x5]
    eip = 0x01227079   esp = 0xbfbc2ac0   ebp = 0xb2fff848
    Found by: stack scanning
 7  libxul.so!js::mjit::JaegerShot(JSContext*, bool) [MethodJIT.cpp : 1101 + 0x8]
    eip = 0x02227567   esp = 0xbfbc2b10   ebp = 0xb2fff848
    Found by: stack scanning
 8  libc-2.11.so + 0xdab47
    eip = 0x00bc2b48   esp = 0xbfbc2b30   ebp = 0xb2fff848
    Found by: stack scanning
 9  libxul.so!js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) [jsinterp.cpp : 2420 + 0x15]
    eip = 0x020f9981   esp = 0xbfbc2b70   ebp = 0xb2fff848
    Found by: stack scanning
10  libxul.so!XPCWrappedNative::GetWrappedNativeOfJSObject(JSContext*, JSObject*, JSObject*, JSObject**, XPCWrappedNativeTearOff**) [XPCWrappedNative.cpp : 1869 + 0xa]
    eip = 0x017b6af7   esp = 0xbfbc2b90   ebp = 0xb2fff848
    Found by: stack scanning
Attached patch fix regressionsSplinter Review
The crashes were due to use calling MarkAbsoluteContainingBlock on a frame that already is one, wiping out the old AbsoluteContainer property.
Attachment #675358 - Flags: review?(bzbarsky)
Comment on attachment 675358 [details] [diff] [review]
fix regressions

r=me
Attachment #675358 - Flags: review?(bzbarsky) → review+
Comment on attachment 675358 [details] [diff] [review]
fix regressions

[Approval Request Comment]
Bug caused by (feature/regressing bug #): 691651
User impact if declined: Some pages won't render correctly
Testing completed (on m-c, etc.): none
Risk to taking this patch (and alternatives if risky): Not trivial, but not a very complicated patch either. We have the alternative of backing out bug 691651 on beta instead of taking this patch there.
String or UUID changes made by this patch: None.
Attachment #675358 - Flags: approval-mozilla-beta?
Attachment #675358 - Flags: approval-mozilla-aurora?
https://hg.mozilla.org/mozilla-central/rev/f6f8969f4a70
Status: NEW → RESOLVED
Closed: 12 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla19
Depends on: 806056
Just tested this on the latest Nightly build. It works. Thanks for fixing the issue so quickly.

Best regards,
   Henrik (the person who reported this bug)
Comment on attachment 675358 [details] [diff] [review]
fix regressions

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

This patch caused bug 806056. Let's back out bug 691651 on beta and try to settle things down for Aurora.
Attachment #675358 - Flags: approval-mozilla-beta?
Attachment #675358 - Flags: approval-mozilla-aurora?
[Approval Request Comment]
Bug caused by (feature/regressing bug #): 691591
User impact if declined: Problems rendering some Web pages
Testing completed (on m-c, etc.): none, this is just a backout for beta
Risk to taking this patch (and alternatives if risky): nothing better than this
String or UUID changes made by this patch: none
Attachment #676017 - Flags: approval-mozilla-beta?
Attachment #676017 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Your beta-backout patch with some minor tweaks.  It fixes the test in
this bug and running reftests locally ... looks good so far.
Attachment #678576 - Flags: review?(roc)
Comment on attachment 678576 [details] [diff] [review]
Backout bug 691591 on aurora

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

Thanks!
Attachment #678576 - Flags: review?(roc) → review+
Attachment #678576 - Flags: approval-mozilla-aurora?
Comment on attachment 678576 [details] [diff] [review]
Backout bug 691591 on aurora

lowrisk backout patch, approving on aurora
Attachment #678576 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Verified fix on latest Aurora. It works. Right in time for tonight's MozMUC meetup. You guys rock! AwesomeR.

Thank you,
   Henrik
Depends on: 812665
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: