1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/ui/cocoa/tab_contents/favicon_util.h" 6 7 #import <AppKit/AppKit.h> 8 9 #include "app/mac/nsimage_cache.h" 10 #include "base/mac/mac_util.h" 11 #include "content/browser/tab_contents/tab_contents.h" 12 #include "skia/ext/skia_utils_mac.h" 13 14 namespace mac { 15 16 NSImage* FaviconForTabContents(TabContents* contents) { 17 // TabContents returns IDR_DEFAULT_FAVICON, which is a rasterized version of 18 // the Mac PDF. Use the PDF so the icon in the Omnibox matches the default 19 // favicon. 20 if (contents && contents->FaviconIsValid()) { 21 CGColorSpaceRef color_space = base::mac::GetSystemColorSpace(); 22 NSImage* image = 23 gfx::SkBitmapToNSImageWithColorSpace(contents->GetFavicon(), 24 color_space); 25 // The |image| could be nil if the bitmap is null. In that case, fallback 26 // to the default image. 27 if (image) { 28 return image; 29 } 30 } 31 32 return app::mac::GetCachedImageWithName(@"nav.pdf"); 33 } 34 35 } // namespace mac 36