Last Comment Bug 164733 - Multiple tabs painted redundantly on background tab load/reload
: Multiple tabs painted redundantly on background tab load/reload
: fixed1.8.1, perf
Product: Camino Graveyard
Classification: Graveyard
Component: Tabbed Browsing (show other bugs)
: unspecified
: PowerPC Mac OS X
-- normal (vote)
: Camino1.5
Assigned To: Stuart Morgan
Depends on: 159672
  Show dependency treegraph
Reported: 2002-08-26 17:57 PDT by sairuh (rarely reading bugmail)
Modified: 2006-09-26 06:53 PDT (History)
8 users (show)
See Also:
QA Whiteboard:
Iteration: ---
Points: ---

tab-level redraw (5.09 KB, patch)
2006-09-23 09:52 PDT, Stuart Morgan
bugzilla-graveyard: review+
sfraser_bugs: superreview+
Details | Diff | Splinter Review

Description User image sairuh (rarely reading bugmail) 2002-08-26 17:57:47 PDT
spun off from bug 159672 --this is probably a minor component to the overall
slowness i see when loading multiple pages as tabs in the background.

0. have the Quartz Debugger on, with "flash screen updates" selected. also, make
sure you have the pref turned on for loading tabs in the background.

1. open a link in a new tab --i used cmd-click.

2. watch as you get two flashes: one for the tab widget being created and
another for when the title in the tab redraws.

when i went over this with simon, he mentioned that more than one flash here
indicated redundant repainting.
Comment 1 User image Mike Pinkerton (not reading bugmail) 2002-08-27 07:24:56 PDT
yup, i just saw that last week. you can see it even better in jaguar which
paints in red redundant paints.

there is something very weird with our redraw code. not sure if this is related
to our slow redraw perf (redrawing too much area), but it could be.
Comment 2 User image Wincent Colaiuta 2002-10-22 06:43:49 PDT
This is probably only adding to the confusion, but I spent a bit of time running
Quartz Debugger tonight and comparing Mozilla and Chimera (nightly of
2002101804). Chimera is all over the place with redraws compared to Mozilla.

A couple of examples: guaranteed redundant paints (red flashes) whenever you
scroll in small increments (eg. by clicking on scroll arrows, or using a mouse
scroll wheel); and the throbber animation repaints the entire toolbar, not just
the throbber.
Comment 3 User image Mike Pinkerton (not reading bugmail) 2002-10-28 11:59:45 PST
i tried some stuff to prevent from drawing the full toolbar when the throbber
updates, but i can't get it to stop. i think it might be a NSToolbar bug but i
haven't coded up a testcase to prove it.
Comment 4 User image Mike Pinkerton (not reading bugmail) 2002-10-29 07:58:07 PST
offtopic, but i just verified that the throbber repainting the entire toolbar is
an apple bug. i can duplicate it in a test app that has nothing to do with chimera. 
Comment 5 User image Mike Pinkerton (not reading bugmail) 2002-10-29 08:27:36 PST
the throbber paint bug has been reported to apple as radar id #3087039
Comment 6 User image Ludovic Hirlimann [:Usul] 2003-10-18 13:51:45 PDT
Mike what is the status of radar id #3087039 ?
Comment 7 User image Ludovic Hirlimann [:Usul] 2004-09-08 11:37:14 PDT
still true with 2004090408 (v0.8+).
Comment 8 User image Jasper 2004-11-08 15:09:31 PST
Geoff you might want to look at this.
Comment 9 User image Mike Pinkerton (not reading bugmail) 2005-07-31 13:39:29 PDT
is this still a problem?
Comment 10 User image Stuart Morgan 2006-03-05 16:30:13 PST
The bug as originally described doesn't appear to happen in the new tab implementation, but loading (or reloading) of a background tab actually causes the whole tab bar to repaint a couple of times, so there is still redundant tab painting happening.
Comment 11 User image Stuart Morgan 2006-05-02 00:32:09 PDT
The main cause of what I describe in comment 10 is that either of the following triggers a redraw of the entire tab bar:
- any tab getting a new title
- any tab getting a new icon
The tab code is really convoluted, but it looks like the above could be fixed at a coarse level by replacing BrowserTabViewItem's calls to refreshTabBar: with calls to some new method to refresh just a certain tab or rect.

That won't solve all the drawing issues with the tabs, but it would substantially reduce the insanity as a quick first-pass.
Comment 12 User image Stuart Morgan 2006-09-23 09:52:05 PDT
Created attachment 239802 [details] [diff] [review]
tab-level redraw

Redraw just the tab, rather than the whole bar, when changing the favicon or title.  Still not ideal, but a heck of a lot better.
Comment 13 User image Chris Lawson (gone) 2006-09-23 21:08:31 PDT
Comment on attachment 239802 [details] [diff] [review]
tab-level redraw

Comment 14 User image froodian (Ian Leue) 2006-09-26 01:28:35 PDT
Checked in on 1.8branch and trunk
Comment 15 User image Smokey Ardisson (offline for a while; not following bugs - do not email) 2006-09-26 01:39:56 PDT
"That won't solve all the drawing issues with the tabs, but it would
substantially reduce the insanity as a quick first-pass."

Do we really want to close this out, or leave it open for possible future fixes?
Comment 16 User image Stuart Morgan 2006-09-26 06:53:35 PDT
Future improvements could be done in later bugs.

Note You need to log in before you can comment on or make changes to this bug.