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;
import org.chromium.base.Callback;
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.ui.favicon.FaviconHelper;
import org.chromium.chrome.browser.ui.favicon.FaviconUtils;
......@@ -153,7 +154,7 @@ public class TabListFaviconProvider {
*/
public void getFaviconForUrlAsync(
String url, boolean isIncognito, Callback<Drawable> faviconCallback) {
if (mFaviconHelper == null || NativePageFactory.isNativePageUrl(url, isIncognito)) {
if (mFaviconHelper == null || NewTabPage.isNTPUrl(url)) {
faviconCallback.onResult(getRoundedChromeDrawable(isIncognito));
} else {
mFaviconHelper.getLocalFaviconImageForURL(
......
......@@ -39,7 +39,7 @@ import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.task.PostTask;
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
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.search_engines.TemplateUrlServiceFactory;
import org.chromium.chrome.browser.tab.EmptyTabObserver;
......@@ -358,7 +358,7 @@ class TabListMediator {
private final TabObserver mTabObserver = new EmptyTabObserver() {
@Override
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 (mModel.indexFromId(tab.getId()) == TabModel.INVALID_TAB_INDEX) return;
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