Closed Bug 514788 Opened 15 years ago Closed 14 years ago

Modifying iframe's location sometimes prevents window from repainting until browser looses focus

Categories

(Core :: Web Painting, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME
Tracking Status
blocking2.0 --- -

People

(Reporter: justin.lebar+bug, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: regression)

Attachments

(3 files)

Attached file Testcase
STR:
* Visit attached page.  Load up another window (such as the error console) and resize the main window so that you can click between both without completely hiding either.
* Refresh the page until the iframe shows up as empty and "Completed." is not displayed below the iframe.
* Focus your other window.  The page should redraw, with "completed" printed below the iframe and a page-not-found message displayed in the iframe.

Expected results:
* The page should repaint when the iframe receives the error page and when we display "Completed."

Reproducible:
On my machine, this always happens with a debug build (changeset b1ccd18e73dd).  Happens much more rarely on a release build, but I made it happen once (while I was compiling) on Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.3a1pre) Gecko/20090903 Minefield/3.7a1pre
I'm seeing this in my extension, but I'm not modifying the iframe's location at all. I have a xul file that is more or less just:

<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">	
   <iframe src="mozmill.html" width="400px" height="700px"/>
</window>

when I open the xul file using window.open, and play around with the user interface in the iframe, the ui is not repainted whatsoever until I minimize it and bring it back up again, or I focus another window.

I'm on Firefox 3.5.5 w/ Ubuntu 9.04 and Gnome.
This is fine in Firefox 3.0, but not in 3.5.5 to trunk.
Attached file Test extension
This is a test extension, to reproduce this bug:

1. Install extension
2. Click on red 'Open Iframe' menu item in the Tools menu
3. Click on the red box in the window that pops up.

Expected results:
the red box increases in width every time you click on it.

Actual results:
the red box does not increase in size when you click on it, only after minimizing or refocusing windows.


One thing I noticed is that this is fine when just browsing to chrome://iframerepaint/content/iframe.xul, this works, it's only when opening with window.open('chrome://iframerepaint/content/iframe.xul', '','chrome') that this occurs, and opening without 'chrome' also works.
Assignee: nobody → roc
Flags: blocking1.9.2?
Mats, could you look into this?
Assignee: roc → matspal
Component: DOM → Layout
QA Contact: general → layout
Regression range: 2009-02-24-02 -- 2009-02-25-02
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=69c86f3acc5a&tochange=8eba35e62d92
I have confirmed it's a regression from bug 298889 in a local debug build.
Assignee: matspal → nobody
Blocks: 298889
Component: Layout → Layout: View Rendering
Keywords: regression
QA Contact: layout → layout.view-rendering
Assignee: nobody → matspal
Attached patch wip1Splinter Review
Fwiw, this "fixes" the problem.  'aWidget' and all its child widgets have
GetTransparencyMode() == eTransparencyTransparent at this point so I don't
know what the real fix would be...
Would take a safe fix with tests, don't think I'd block since we managed to ship Firefox 3.5 without it.
blocking2.0: --- → ?
Flags: wanted1.9.2+
Flags: blocking1.9.2?
Flags: blocking1.9.2-
Yeah, that's true. This is more for the addons, I'm sure some addons use iframes in their own windows, or will.

Mats, given the fix - is there a workaround a web developer or addon author could use temporarily?
Might be better to focus on getting rid of all child widgets rather than mess around with more hacks like bug 298889.
After reading all the comments in bug 298889 I agree.
(Is this bug Linux-only? -- maybe you were right in bug 298889
comment 62/65 after all.)

I can't think of a better fix, except making it conditional for GTK2 perhaps.
Still seems a bit risky.
Assignee: matspal → nobody
Blocks: 529589
Is this fixed now given the widget removal that landed in compositor phase 1?
Just tested Heather's extension in the latest nightly Gecko/20100124 Minefield/3.7a1pre, and I get the expected results.
I can still reproduce the problem, 20100126 trunk nightly, and local debug build.
mats, harth, etc: Can you still reproduce this?
Does this still happen?
Since nobody who has been able to reproduce this problem has commented here in a year, I'm closing this as WORKSFORME.

If you can still reproduce, please reopen!
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → WORKSFORME
Works for me too, 2011-01-14 nightly and local DEBUG builds on Linux64.
Component: Layout: View Rendering → Layout: Web Painting
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: