Closed
Bug 310591
Opened 19 years ago
Closed 18 years ago
hidden elements drawn unnecessarily (S5 slideshows hang/beachball) (AppKit NSView drawing)
Categories
(Core :: Widget: Cocoa, defect)
Tracking
()
RESOLVED
WONTFIX
People
(Reporter: moz, Assigned: jaas)
References
()
Details
Go to the above URL. Try to go to the next slide. Hang!
Comment 1•19 years ago
|
||
The slideshow works by twiddling visibility: style on a bunch of <div>s between hidden and visible, so we have a lot of widgets in the hierarchy for elements that are hidden. The problem is that in Cocoa widget, NSViews corresponding to the the widgets of those nsViews all live in the NSView hierarchy, and AppKit is telling us to redraw those views outside of Gecko's drawing loop. So we spend huge amounts of time calling UpdateWidget() on widgets that should be being drawn at all. This is a serious Cocoa widget issue. We are going to have to circumvent AppKit's view drawing mechanism to fix this (which I believe Safari has already had to do). We have other reasons to have to do this too (see bug 187435). We could possible work around the problem if we can short-circuit the drawRect: for a "hidden" widget, if there's a way to get that information in the widget code.
*** Bug 337839 has been marked as a duplicate of this bug. ***
OS: Mac OS X 10.2 → Mac OS X 10.3
QA Contact: general
Summary: display: hidden; elements drawn unnecessarily → display: hidden; elements drawn unnecessarily (S5 slideshows hang/beachball)
Updated•19 years ago
|
Assignee: sfraser_bugs → joshmoz
Component: General → Widget: Cocoa
Product: Camino → Core
Version: unspecified → Trunk
Updated•19 years ago
|
QA Contact: general → cocoa
Comment 4•19 years ago
|
||
(AIUI, display:hidden elements are not even in the view hierarchy, so I doubt they are a problem. visibility:hidden are still there though.)
Summary: display: hidden; elements drawn unnecessarily (S5 slideshows hang/beachball) → hidden elements drawn unnecessarily (S5 slideshows hang/beachball)
You mean display:none. I am working on a plan to eliminate all but the top-most widget of a window. That will fix this, I think.
Updated•18 years ago
|
Summary: hidden elements drawn unnecessarily (S5 slideshows hang/beachball) → hidden elements drawn unnecessarily (S5 slideshows hang/beachball) (AppkKit NSView drawing)
Updated•18 years ago
|
Summary: hidden elements drawn unnecessarily (S5 slideshows hang/beachball) (AppkKit NSView drawing) → hidden elements drawn unnecessarily (S5 slideshows hang/beachball) (AppKit NSView drawing)
Updated•18 years ago
|
Flags: blocking1.9?
Why are we creating more than one platform widget for the content area in this case? It seems like that's what we should try to fix/remove, even if roc's full patch for one topmost widget doesn't make it.
Comment 8•18 years ago
|
||
(In reply to comment #7) > Why are we creating more than one platform widget for the content area in this > case? It seems like that's what we should try to fix/remove, even if roc's > full patch for one topmost widget doesn't make it. > I always wondered that as well. If you stop in the debugger and check a ChildView's subviews and superview in gdb on runtime (try for example: print-object [self superview], print-object [self subviews] etc -- it'll print out lots of useful things) - there were always a big hierarchy of views with the same size. N ote that this was when I was regularly still debugging the code, which means 2-3 months ago. So if I had a tab with size X, I could normally also have a bunch of subviews with size X, and even those could have subviews with the same size. If we can optimize that (or fix the bugs!) I think it'll speed up the browser a lot.
The slides are position:fixed so we create a widget for each one on branch. On trunk, we don't. And indeed, I'm not seeing a problem on trunk.
| Reporter | ||
Comment 10•18 years ago
|
||
To true; I don't either, anymore. Changing to branch(?).
Version: Trunk → 1.8 Branch
Comment 11•18 years ago
|
||
As a branch bug, this is WONTFIX. As a trunk bug this is WORKSFORME (or FIXED if you find when we stopped giving fixed-pos elements widgets). Please resolve as desired.
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → WORKSFORME
Flags: blocking1.9?
You need to log in
before you can comment on or make changes to this bug.
Description
•