| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/ui/cocoa/tab_contents/favicon_util_mac.h" |
| |
| #include "components/favicon/content/content_favicon_driver.h" |
| #include "ui/base/resource/resource_bundle.h" |
| #include "ui/resources/grit/ui_resources.h" |
| |
| namespace mac { |
| |
| NSImage* FaviconForWebContents(content::WebContents* contents) { |
| favicon::FaviconDriver* favicon_driver = |
| contents ? favicon::ContentFaviconDriver::FromWebContents(contents) |
| : nullptr; |
| if (favicon_driver && favicon_driver->FaviconIsValid()) { |
| NSImage* image = favicon_driver->GetFavicon().AsNSImage(); |
| // The |image| could be nil if the bitmap is null. In that case, fallback |
| // to the default image. |
| if (image) { |
| return image; |
| } |
| } |
| |
| ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| return rb.GetNativeImageNamed(IDR_DEFAULT_FAVICON).ToNSImage(); |
| } |
| |
| } // namespace mac |