| Index: chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
|
| diff --git a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
|
| index 3a19757dd342ae08eb8e99b1ce750a0081d98faf..0c6614676dc11a1bc2147fdea57d15fa338fa94c 100644
|
| --- a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
|
| +++ b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
|
| @@ -142,7 +142,8 @@ private:
|
| - (void)addSubviewToPermanentList:(NSView*)aView;
|
| - (void)regenerateSubviewList;
|
| - (NSInteger)indexForContentsView:(NSView*)view;
|
| -- (NSImage*)iconImageForContents:(content::WebContents*)contents;
|
| +- (NSImage*)iconImageForContents:(content::WebContents*)contents
|
| + atIndex:(NSInteger)modelIndex;
|
| - (void)updateIconsForContents:(content::WebContents*)contents
|
| atIndex:(NSInteger)modelIndex;
|
| - (void)layoutTabsWithAnimation:(BOOL)animate
|
| @@ -1297,6 +1298,7 @@ private:
|
| NSUInteger index,
|
| BOOL* stop) {
|
| [current setActive:index == activeIndex];
|
| + [self updateIconsForContents:newContents atIndex:modelIndex];
|
| }];
|
|
|
| // Tell the new tab contents it is about to become the selected tab. Here it
|
| @@ -1328,6 +1330,7 @@ private:
|
| BOOL selected = iter != selection.end() &&
|
| [self indexFromModelIndex:*iter] == i;
|
| [current setSelected:selected];
|
| + [self updateIconsForContents:tabStripModel_->GetWebContentsAt(i) atIndex:i];
|
| if (selected)
|
| ++iter;
|
| ++i;
|
| @@ -1474,7 +1477,8 @@ private:
|
|
|
| // A helper routine for creating an NSImageView to hold the favicon or app icon
|
| // for |contents|.
|
| -- (NSImage*)iconImageForContents:(content::WebContents*)contents {
|
| +- (NSImage*)iconImageForContents:(content::WebContents*)contents
|
| + atIndex:(NSInteger)modelIndex {
|
| extensions::TabHelper* extensions_tab_helper =
|
| extensions::TabHelper::FromWebContents(contents);
|
| BOOL isApp = extensions_tab_helper->is_app();
|
| @@ -1487,12 +1491,8 @@ private:
|
| if (icon)
|
| image = skia::SkBitmapToNSImageWithColorSpace(*icon, colorSpace);
|
| } else {
|
| - TabController* tab = [tabArray_ firstObject];
|
| - NSColor* titleColor = [[tab tabView] titleColor];
|
| - NSColor* deviceColor =
|
| - [titleColor colorUsingColorSpace:[NSColorSpace deviceRGBColorSpace]];
|
| - image = mac::FaviconForWebContents(
|
| - contents, skia::NSDeviceColorToSkColor(deviceColor));
|
| + TabController* tab = [tabArray_ objectAtIndex:modelIndex];
|
| + image = mac::FaviconForWebContents(contents, [[tab tabView] iconColor]);
|
| }
|
|
|
| // Either we don't have a valid favicon or there was some issue converting it
|
| @@ -1571,7 +1571,8 @@ private:
|
| oldHasIcon != newHasIcon) {
|
| if (newHasIcon) {
|
| if (newState == kTabDone) {
|
| - [tabController setIconImage:[self iconImageForContents:contents]];
|
| + [tabController setIconImage:[self iconImageForContents:contents
|
| + atIndex:modelIndex]];
|
| } else if (newState == kTabCrashed) {
|
| [tabController setIconImage:sadFaviconImage withToastAnimation:YES];
|
| } else {
|
| @@ -2307,6 +2308,9 @@ private:
|
|
|
| - (void)themeDidChangeNotification:(NSNotification*)notification {
|
| [newTabButton_ setImages];
|
| + for (int i = 0; i < tabStripModel_->count(); i++) {
|
| + [self updateIconsForContents:tabStripModel_->GetWebContentsAt(i) atIndex:i];
|
| + }
|
| }
|
|
|
| - (void)setVisualEffectsDisabledForFullscreen:(BOOL)fullscreen {
|
|
|