Closed Bug 312563 Opened 20 years ago Closed 20 years ago

Site crashes camino or breaks window updating (recursive widget updates) [@ nsViewManager::GetDeviceContext]

Categories

(Camino Graveyard :: Page Layout, defect, P1)

PowerPC
macOS
defect

Tracking

(Not tracked)

RESOLVED FIXED
Camino1.0

People

(Reporter: sfraser_bugs, Assigned: sfraser_bugs)

References

()

Details

(Keywords: crash, fixed1.8)

Crash Data

Attachments

(3 files)

Forked from bug 308802. Load the site in the URL (I had java turned off); it crashes, blowing the stack.
Bad crash, 1.0 material.
Flags: camino1.0+
Keywords: crash
Priority: -- → P1
Target Milestone: --- → Camino1.0
Attached file Crash log
Severity: normal → critical
Summary: Site crashes camino (recursive widget updates) → Site crashes camino (recursive widget updates) [@ nsViewManager::GetDeviceContext]
Attached patch PatchSplinter Review
This patch fixes the crash (on the branch, at least; I wasn't able to reliably crash on the trunk). However, the window is left in a very weird state after visiting this site with Java turned off. Navigating to new pages doesn't draw properly, news tabs don't show up, and clicks in various parts of the window are ignored.
Attachment #199681 - Flags: review?(mark)
The code that is causing the weird non-refreshing window issue with this page is the Invalidate(PR_TRUE) call in nsChildView::RemovedFromWindow(). Note that the view has just been removed from the window, but that synchronous invalidate is trying to redraw it, so sometimes AppKit throws assertions about -lockFocus failing. Not surprising. The reason that the synchronous Invalidate() is there is to cause a painting cycle on the content, so that plugins get a paint event at tab switch time, which, in theory, should have a null cliprect and cause them to stop drawing. This is a total hack, and needs to be fixed the right way (bug 277067).
Depends on: 277067
Comment on attachment 199681 [details] [diff] [review] Patch These are reasonable checks.
Attachment #199681 - Flags: review?(mark) → review+
*** Bug 312594 has been marked as a duplicate of this bug. ***
I'd love to rip out nsChildView::RemovedFromWindow() and nsChildView::AddedToWindow(), but it regresses Java applet drawing when switching tabs (as expected).
I checked in the patch. However, we still hose cocoa window updates (read up), so keeping bug open.
Assignee: mikepinkerton → sfraser_bugs
Summary: Site crashes camino (recursive widget updates) [@ nsViewManager::GetDeviceContext] → Site crashes camino or breaks window updating (recursive widget updates) [@ nsViewManager::GetDeviceContext]
Blocks: 313093
Blocks: 313127
No longer blocks: 313127
No longer blocks: 313093
*** Bug 313093 has been marked as a duplicate of this bug. ***
This patch removes the troublesome code. It may regress plugins drawing through tabs on tab switching (i.e. Camino will now behave similarly to Firefox for bug 277067).
Attachment #200228 - Flags: review?(mark)
Comment on attachment 200228 [details] [diff] [review] Patch to rip out the "notify plugin" hack I can't really decide which behavior is worse, but I suppose it's better to let things bleed through tabs (recoverable) than to kill the window.
Attachment #200228 - Flags: review?(mark) → review+
Checked in on trunk and branch.
Status: NEW → RESOLVED
Closed: 20 years ago
Keywords: fixed1.8
Resolution: --- → FIXED
In bug 313127, Mike asked why all the recent widget recursion regressions and Simon replied "I think something in gecko (the view manager?) changed on the branch fairly recently." Using Steven's regression window from bug 308802, bet. 9-30 and 10-04 (several days without builds, unfortunately), we get bonsai: http://tinyurl.com/apnmh Among those checkins is bug 281709, which added some stuff to the *View files in Cocoa widget (a branch-only change, so it doesn't show up in CVS blame, etc., at least in what appears to be the default presentation). It looks like bug 281709 caused a bunch of layout regressions and was backed out yesterday in bug 311146 (looks like there's a new fix brewing in bug 281709). Is there any chance that those changes caused our recursive widget bug (which seemed to be almost branch-only), and if so, can we put back in the stuff Simon just ripped out so as to un-regress plugin drawing on tab switches?
Blocks: 281709
(In reply to comment #13) > In bug 313127, Mike asked why all the recent widget recursion regressions and > Simon replied "I think something in gecko (the view manager?) changed on the > branch fairly recently." > > Using Steven's regression window from bug 308802, bet. 9-30 and 10-04 (several > days without builds, unfortunately), we get bonsai: http://tinyurl.com/apnmh > > Among those checkins is bug 281709, which added some stuff to the *View files in > Cocoa widget (a branch-only change, so it doesn't show up in CVS blame, etc., at > least in what appears to be the default presentation). It looks like bug 281709 > caused a bunch of layout regressions and was backed out yesterday in bug 311146 > (looks like there's a new fix brewing in bug 281709). > > Is there any chance that those changes caused our recursive widget bug (which > seemed to be almost branch-only), and if so, can we put back in the stuff Simon > just ripped out so as to un-regress plugin drawing on tab switches? Nice analysis. I think you're right. I'll test with the latest changes from bug 281709.
No longer blocks: 281709
Status: RESOLVED → REOPENED
Depends on: 281709
Resolution: FIXED → ---
(In reply to comment #12) > Checked in on trunk and branch. Actually it seems that this only made it onto the trunk. So this might explain bug 313356.
OK, I checked that last patch into the branch, and it fixes bug 313356. So I think the best thing to do here is to keep that hack out, and live with the plugin tab switching regressions, which will eventually get fixed via bug 277067.
Status: REOPENED → RESOLVED
Closed: 20 years ago20 years ago
Resolution: --- → FIXED
Crash Signature: [@ nsViewManager::GetDeviceContext]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: