Commit cf62759b authored by Xi Han's avatar Xi Han Committed by Commit Bot

Fetch real Favicon for native pages.

The chrome://history page is a native page, and currently
TabListMediator and TabListFaviconProvider return the default round
favicon for all native pages. To fix this issue, both classes will only
check if it is a NTP, and treat other native pages the same as regular
URLs, and load real favicon for them.

Bug: 1104811
Change-Id: Ia93cfb77e41f2fdd2da9eb06c12fd797c4b34a82
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2310151
Commit-Queue: Xi Han <hanxi@chromium.org>
Reviewed-by: default avatarWei-Yin Chen (陳威尹) <wychen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#791880}
parent bd977eb2
...@@ -17,6 +17,7 @@ import androidx.appcompat.content.res.AppCompatResources; ...@@ -17,6 +17,7 @@ import androidx.appcompat.content.res.AppCompatResources;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.chrome.browser.native_page.NativePageFactory; import org.chromium.chrome.browser.native_page.NativePageFactory;
import org.chromium.chrome.browser.ntp.NewTabPage;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.ui.favicon.FaviconHelper; import org.chromium.chrome.browser.ui.favicon.FaviconHelper;
import org.chromium.chrome.browser.ui.favicon.FaviconUtils; import org.chromium.chrome.browser.ui.favicon.FaviconUtils;
...@@ -153,7 +154,7 @@ public class TabListFaviconProvider { ...@@ -153,7 +154,7 @@ public class TabListFaviconProvider {
*/ */
public void getFaviconForUrlAsync( public void getFaviconForUrlAsync(
String url, boolean isIncognito, Callback<Drawable> faviconCallback) { String url, boolean isIncognito, Callback<Drawable> faviconCallback) {
if (mFaviconHelper == null || NativePageFactory.isNativePageUrl(url, isIncognito)) { if (mFaviconHelper == null || NewTabPage.isNTPUrl(url)) {
faviconCallback.onResult(getRoundedChromeDrawable(isIncognito)); faviconCallback.onResult(getRoundedChromeDrawable(isIncognito));
} else { } else {
mFaviconHelper.getLocalFaviconImageForURL( mFaviconHelper.getLocalFaviconImageForURL(
......
...@@ -39,7 +39,7 @@ import org.chromium.base.metrics.RecordUserAction; ...@@ -39,7 +39,7 @@ import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.task.PostTask; import org.chromium.base.task.PostTask;
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
import org.chromium.chrome.browser.native_page.NativePageFactory; import org.chromium.chrome.browser.ntp.NewTabPage;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
import org.chromium.chrome.browser.tab.EmptyTabObserver; import org.chromium.chrome.browser.tab.EmptyTabObserver;
...@@ -358,7 +358,7 @@ class TabListMediator { ...@@ -358,7 +358,7 @@ class TabListMediator {
private final TabObserver mTabObserver = new EmptyTabObserver() { private final TabObserver mTabObserver = new EmptyTabObserver() {
@Override @Override
public void onDidStartNavigation(Tab tab, NavigationHandle navigationHandle) { public void onDidStartNavigation(Tab tab, NavigationHandle navigationHandle) {
if (NativePageFactory.isNativePageUrl(tab.getUrlString(), tab.isIncognito())) return; if (NewTabPage.isNTPUrl(tab.getUrlString())) return;
if (navigationHandle.isSameDocument() || !navigationHandle.isInMainFrame()) return; if (navigationHandle.isSameDocument() || !navigationHandle.isInMainFrame()) return;
if (mModel.indexFromId(tab.getId()) == TabModel.INVALID_TAB_INDEX) return; if (mModel.indexFromId(tab.getId()) == TabModel.INVALID_TAB_INDEX) return;
mModel.get(mModel.indexFromId(tab.getId())) mModel.get(mModel.indexFromId(tab.getId()))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment