diff options
author | mark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-24 20:39:16 +0000 |
---|---|---|
committer | mark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-24 20:39:16 +0000 |
commit | 402440030869a1f1d74119d8f7c9e2f65e0179a7 (patch) | |
tree | 7680a959cc89d75ceae641debf16f9436e773493 /chrome/browser/cocoa/tab_strip_controller.mm | |
parent | d0d8460e70cc8a125e61e1c2c6a21e37daca25ed (diff) | |
download | chromium_src-402440030869a1f1d74119d8f7c9e2f65e0179a7.zip chromium_src-402440030869a1f1d74119d8f7c9e2f65e0179a7.tar.gz chromium_src-402440030869a1f1d74119d8f7c9e2f65e0179a7.tar.bz2 |
Rewrite some tab controller stuff to maybe (but probably not) improve perf.
BUG=15232
TEST=watch perf graphs
Review URL: http://codereview.chromium.org/147103
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19167 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/tab_strip_controller.mm')
-rw-r--r-- | chrome/browser/cocoa/tab_strip_controller.mm | 53 |
1 files changed, 25 insertions, 28 deletions
diff --git a/chrome/browser/cocoa/tab_strip_controller.mm b/chrome/browser/cocoa/tab_strip_controller.mm index 45741cc..6f0cd24 100644 --- a/chrome/browser/cocoa/tab_strip_controller.mm +++ b/chrome/browser/cocoa/tab_strip_controller.mm @@ -444,41 +444,38 @@ NSString* const kTabStripNumberOfTabsChanged = @"kTabStripNumberOfTabsChanged"; // load, so we need to make sure we're not creating the throbber view over and // over. if (contents) { - static NSImage* throbberImage = [[NSImage imageNamed:@"throbber"] retain]; static NSImage* throbberWaitingImage = [[NSImage imageNamed:@"throbber_waiting"] retain]; + static NSImage* throbberLoadingImage = + [[NSImage imageNamed:@"throbber"] retain]; TabController* tabController = [tabArray_ objectAtIndex:index]; - NSImage* image = nil; + + TabLoadingState oldState = [tabController loadingState]; + + TabLoadingState newState = DONE; + NSImage* throbberImage = nil; if (contents->waiting_for_response()) { - throbberWaitingImage = throbberWaitingImage; -#if 0 - if (![tabController waiting]) { - image = throbberWaitingImage; - [tabController setWaiting:YES]; - } -#endif + newState = WAITING; + throbberImage = throbberWaitingImage; } else if (contents->is_loading()) { - if (![tabController loading]) { - image = throbberImage; - [tabController setLoading:YES]; - } + newState = LOADING; + throbberImage = throbberLoadingImage; } - if (image) { - NSRect frame = NSMakeRect(0, 0, 16, 16); -#if 0 - ThrobberView* throbber = - [[[ThrobberView alloc] initWithFrame:frame image:image] autorelease]; - [tabController setIconView:throbber]; -#endif - } - else if (!contents->is_loading()) { - // Set everything back to normal, we're done loading. -#if 0 - [tabController setIconView:[self favIconImageViewForContents:contents]]; -#endif - [tabController setWaiting:NO]; - [tabController setLoading:NO]; + + if (oldState != newState) { + NSView* iconView = nil; + if (newState == DONE) { + iconView = [self favIconImageViewForContents:contents]; + } else { + NSRect frame = NSMakeRect(0, 0, 16, 16); + iconView = [[[ThrobberView alloc] initWithFrame:frame + image:throbberImage] + autorelease]; + } + + [tabController setLoadingState:newState]; + [tabController setIconView:iconView]; } } |