Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7571)

Unified Diff: chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm

Issue 2126043002: [Material][Mac] Fix Default Favicon's Color (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: cleaned up Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 44d1d9808a484e1df8a12a9caa4b2dfdab503528..6531d5c15c49988cfe77a7f9250584a339ff0be4 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
@@ -1495,7 +1496,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();
@@ -1508,12 +1510,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
@@ -1584,6 +1582,8 @@ private:
if (oldState != newState)
[tabController setLoadingState:newState];
+ [tabController setShouldUseDefaultFavicon:NO];
Robert Sesek 2016/07/12 23:43:56 Does the TabController really need to know about w
spqchan 2016/07/13 17:16:14 The default favicon also needs to be updated at in
Robert Sesek 2016/07/13 22:37:59 Why can't the TabStripController updates the icon
+
// While loading, this function is called repeatedly with the same state.
// To avoid expensive unnecessary view manipulation, only make changes when
// the state is actually changing. When loading is complete (kTabDone),
@@ -1592,7 +1592,10 @@ private:
oldHasIcon != newHasIcon) {
if (newHasIcon) {
if (newState == kTabDone) {
- [tabController setIconImage:[self iconImageForContents:contents]];
+ [tabController setIconImage:[self iconImageForContents:contents
+ atIndex:modelIndex]];
+ [tabController
+ setShouldUseDefaultFavicon:mac::ShouldUseDefaultFavicon(contents)];
} else if (newState == kTabCrashed) {
[tabController setIconImage:sadFaviconImage withToastAnimation:YES];
} else {

Powered by Google App Engine
This is Rietveld 408576698