Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/Tab.java | 
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/Tab.java b/chrome/android/java/src/org/chromium/chrome/browser/Tab.java | 
| index 4db0aa3208985edfc3e3d9c09925f9e074588cca..73f260280154d0b1568b9cd3f319ae70cbb9cf6b 100644 | 
| --- a/chrome/android/java/src/org/chromium/chrome/browser/Tab.java | 
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/Tab.java | 
| @@ -139,6 +139,10 @@ public class Tab implements NavigationClient { | 
| private boolean mIsClosing = false; | 
| + private Bitmap mFavicon = null; | 
| + | 
| + private String mFaviconUrl = null; | 
| + | 
| /** | 
| * A default {@link ChromeContextMenuItemDelegate} that supports some of the context menu | 
| * functionality. | 
| @@ -885,10 +889,17 @@ public class Tab implements NavigationClient { | 
| /** | 
| * @return The bitmap of the favicon scaled to 16x16dp. null if no favicon | 
| * is specified or it requires the default favicon. | 
| - * TODO(bauerb): Upstream implementation. | 
| */ | 
| public Bitmap getFavicon() { | 
| - return null; | 
| + if (mContentViewCore != null) { | 
| + if (mFavicon == null || !mContentViewCore.getUrl().equals(mFaviconUrl)) { | 
| + if (mNativeTabAndroid == 0) | 
| + return null; | 
| 
 
David Trainor- moved to gerrit
2014/07/28 17:50:04
put on line above or add {} (java style)
 
Jitu( very slow this week)
2014/07/30 11:33:55
Done.
 
 | 
| + mFavicon = nativeGetFavicon(mNativeTabAndroid); | 
| + mFaviconUrl = mContentViewCore.getUrl(); | 
| + } | 
| + } | 
| + return mFavicon; | 
| } | 
| /** | 
| @@ -1014,6 +1025,8 @@ public class Tab implements NavigationClient { | 
| */ | 
| @CalledByNative | 
| protected void onFaviconUpdated() { | 
| + mFavicon = null; | 
| + mFaviconUrl = null; | 
| for (TabObserver observer : mObservers) observer.onFaviconUpdated(this); | 
| } | 
| @@ -1156,4 +1169,5 @@ public class Tab implements NavigationClient { | 
| private native void nativeSetActiveNavigationEntryTitleForUrl(long nativeTabAndroid, String url, | 
| String title); | 
| private native boolean nativePrint(long nativeTabAndroid); | 
| + private native Bitmap nativeGetFavicon(long nativeTabAndroid); | 
| } |