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)
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)
|
70.11 KB,
text/plain
|
Details | |
|
1.22 KB,
patch
|
mark
:
review+
|
Details | Diff | Splinter Review |
|
5.44 KB,
patch
|
mark
:
review+
|
Details | Diff | Splinter Review |
Forked from bug 308802.
Load the site in the URL (I had java turned off); it crashes, blowing the stack.
| Assignee | ||
Comment 1•20 years ago
|
||
Bad crash, 1.0 material.
| Assignee | ||
Comment 2•20 years ago
|
||
Updated•20 years ago
|
Severity: normal → critical
Summary: Site crashes camino (recursive widget updates) → Site crashes camino (recursive widget updates) [@ nsViewManager::GetDeviceContext]
| Assignee | ||
Comment 3•20 years ago
|
||
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)
| Assignee | ||
Comment 4•20 years ago
|
||
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 5•20 years ago
|
||
Comment on attachment 199681 [details] [diff] [review]
Patch
These are reasonable checks.
Attachment #199681 -
Flags: review?(mark) → review+
| Assignee | ||
Comment 6•20 years ago
|
||
*** Bug 312594 has been marked as a duplicate of this bug. ***
| Assignee | ||
Comment 7•20 years ago
|
||
I'd love to rip out nsChildView::RemovedFromWindow() and
nsChildView::AddedToWindow(), but it regresses Java applet drawing when
switching tabs (as expected).
| Assignee | ||
Comment 8•20 years ago
|
||
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]
| Assignee | ||
Comment 9•20 years ago
|
||
*** Bug 313093 has been marked as a duplicate of this bug. ***
| Assignee | ||
Comment 10•20 years ago
|
||
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 11•20 years ago
|
||
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+
| Assignee | ||
Comment 12•20 years ago
|
||
Checked in on trunk and branch.
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?
| Assignee | ||
Comment 14•20 years ago
|
||
(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.
| Assignee | ||
Comment 15•20 years ago
|
||
(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.
| Assignee | ||
Comment 16•20 years ago
|
||
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 ago → 20 years ago
Resolution: --- → FIXED
Updated•14 years ago
|
Crash Signature: [@ nsViewManager::GetDeviceContext]
You need to log in
before you can comment on or make changes to this bug.
Description
•