New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 769049 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 3
Type: Bug



Sign in to add a comment

Favicons of video webpages of youtube.com do not show in recent tabs.

Project Member Reported by vbhatso...@chromium.org, Sep 26 2017

Issue description

App Version: 62.0.3202.35Beta
iOS Version: 10.3.3, 11.0
Device:iPhone, iPad
URL: youtube.com

Steps to reproduce:
1. Launch chrome and go to youtube.com and play a video.
2.Close the webpage after playing the video. Go to recent tabs.

Observed results:
Favicons of video webpages of youtube.com do not show in recent tabs.

Expected results:
Favicons of video webpages of youtube.com should show in recent tabs.

Number of times you were able to reproduce: 5/5
Bug reproducible after clean install: Yes
Bug reproducible after clearing cache and cookies: Yes
Bug reproducible on Chrome Mobile on Android: Not tested
Bug reproducible on Safari/Firefox: Firefox: NA, Safari: NA
Bug reproducible on current stable build (App Version, iOS Version): Yes-M61
Bug reproducible on the current beta channel build (App Version, iOS Version): Yes-62
https://drive.google.com/a/google.com/file/d/0B6GVWQnhaMClSnJYZ2JKM2J0clE/view?usp=sharing


 
Cc: eugene...@chromium.org sdefresne@chromium.org
Owner: eugene...@chromium.org
Status: Assigned (was: Untriaged)
Eugene, can you check whether this is happening at the web layer?  Also cc'ing Sylvain, because I remember him working on favicons at some point.
Components: UI>Browser
Components: Mobile>WebView>Glue
Cc: -sdefresne@chromium.org gambard@chromium.org jif@chromium.org
Components: -Mobile>WebView>Glue -UI>Browser UI>Browser>History
Owner: sdefresne@chromium.org
WebStateObserver::FaviconUrlUpdated returned this favicon for YouTube:
https://m.youtube.com/yts/favicon-vfl8qSV2F.ico

Favicon is correct, so this looks like embedder bug. Sylvain, could you please take a look if  WebFaviconDriver works correctly.
Owner: eugene...@chromium.org
I've tried to debug this and I think the issue is that WebStateObserver::FaviconUrlUpdated is not triggered when navigating from one YouTube video to another YouTube video.

If I visit a YouTube page from a link or by typing the url in the omnibox, then -handleDocumentFaviconsMessage:context: is called, which call WebStateObserver::FaviconUrlUpdated and correctly fetch and save the favicon. And the link display the proper favicon in the history.

However, if I navigate from a YouTube video to another YouTube video (by clicking on it or via a playlist) then -handleDocumentFaviconsMessage:context: is not called, the page favicon is not updated and the link does not display the proper favicon in the history.
Cc: sdefresne@chromium.org
Owner: sdefresne@chromium.org
Navigating from one YouTube video to another YouTube video is a same-document navigation (state or fragment change). It is WAI that WebStateObserver::FaviconUrlUpdated is not called for same-document navigations, because favicon did not actually change. Fetching favicon on every push state or hash change would be pretty bad for performance. 
Thank you Eugene. It looks like the component expects the callback to be called even for same-document navigation. I'll put some cache to keep the value and forward them to the component in the driver then.
Sylvain, by any chance do you know if //content calls WebContentsObserver::DidUpdateFaviconURL for same-document navigations? If it does then perhaps //ios/web layer should match //content and be responsible for caching?
//content sends the notification from RenderFrameImpl::DidStopLoading which appears to be called even for same-document navigation (and my breakpoint in ContentFaviconDriver::DidUpdateFaviconURL is triggered for same-document navigation) so I guess it would make sense to cache the data in //ios/web.

I can probably do it, but not really sure where I should cache the values. I'll put the cache in WebFaviconDriver first (as there are other fixes required to get it working first) and then we can discuss where the cache should go in //ios/web.
Thanks! After landing your CL, please flip this bug to me and I will look for a fix from ios/web side.
Owner: eugene...@chromium.org
CL sent to CQ, assigning bug to eugenebut@ as requested.
Labels: found-in-m61
I confirmed that the bug was present in M-61 too, so not a recent regression.
Project Member

Comment 14 by bugdroid1@chromium.org, Oct 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8db59b9705506d2b652830fed7e6a42acd25511f

commit 8db59b9705506d2b652830fed7e6a42acd25511f
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Tue Oct 03 08:21:58 2017

Fix favicon in case of same document navigation.

In case of same document navigation the FaviconUrlUpdated callback
is not invoked, so cache the value and re-use them when navigation
completes.

Remove spurious calls to FetchFavicon from WebFaviconDriver.

Bug:  769049 
Change-Id: I9f5f4382b42978123419f207c2906048228ff7f9
Reviewed-on: https://chromium-review.googlesource.com/695761
Reviewed-by: Eugene But <eugenebut@chromium.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505983}
[modify] https://crrev.com/8db59b9705506d2b652830fed7e6a42acd25511f/components/favicon/ios/web_favicon_driver.h
[modify] https://crrev.com/8db59b9705506d2b652830fed7e6a42acd25511f/components/favicon/ios/web_favicon_driver.mm

Project Member

Comment 15 by bugdroid1@chromium.org, Oct 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9ac01d1704800450c72a3dc1960be48748458cd2

commit 9ac01d1704800450c72a3dc1960be48748458cd2
Author: Olivier Robin <olivierrobin@chromium.org>
Date: Mon Oct 09 09:42:18 2017

Use GetVisibleItem in OnFaviconUpdated.

This was changed in
https://chromium-review.googlesource.com/c/chromium/src/+/695761

Bug: 771712,  769049 
Change-Id: I5a30619af53d4a5a103d560d640f17ec499978cf
Reviewed-on: https://chromium-review.googlesource.com/707003
Commit-Queue: Olivier Robin <olivierrobin@chromium.org>
Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507346}
[modify] https://crrev.com/9ac01d1704800450c72a3dc1960be48748458cd2/components/favicon/ios/web_favicon_driver.mm

Can this issue be marked Fixed? Faviocns for youtube.com is fixed, but I see faviocns are missing for many other websites in TabSwitcher view and Recent Tabs view. Please let me know If I need to report a new issue for that.
Status: Fixed (was: Assigned)
Filed 777869 to track //ios/web cleanup
Regarding #16, yes please report an other issues for favicons missing for other websites. 
Thanks for the clarification. Will report new bug.
Status: Verified (was: Fixed)
Favicons of video webpages of youtube.com show in recent tabs.
Verified in iPhone 6+ iOS 11.1 , iPad Pro 12'5 iOS 11.1 , iPhone7 + iOS 10.3.3 on build 
64.0.3248.0 Canary
Status: Assigned (was: Verified)
Labels: M-64
This bug does not exist in M64. The bug will not be fixed for M63.
Status: WontFix (was: Assigned)

Sign in to add a comment