| Index: components/favicon/core/favicon_driver_impl.cc
|
| diff --git a/components/favicon/core/favicon_driver_impl.cc b/components/favicon/core/favicon_driver_impl.cc
|
| index 2c0bfa4bda70281f1a3136934d4975b25b93ce31..545def8f27886a2ff8997d8acd3f54d2f0b2953f 100644
|
| --- a/components/favicon/core/favicon_driver_impl.cc
|
| +++ b/components/favicon/core/favicon_driver_impl.cc
|
| @@ -98,11 +98,18 @@ void FaviconDriverImpl::SetFaviconOutOfDateForPage(const GURL& url,
|
|
|
| void FaviconDriverImpl::OnUpdateCandidates(
|
| const GURL& page_url,
|
| - const std::vector<FaviconURL>& candidates) {
|
| - DCHECK(!candidates.empty());
|
| + const std::vector<FaviconURL>& candidates,
|
| + const GURL& manifest_url) {
|
| RecordCandidateMetrics(candidates);
|
| - for (const std::unique_ptr<FaviconHandler>& handler : handlers_)
|
| - handler->OnUpdateCandidates(page_url, candidates);
|
| + for (const std::unique_ptr<FaviconHandler>& handler : handlers_) {
|
| + // We feed in the Web Manifest URL (if any) to the instance handling type
|
| + // FAVICON, because those compete which each other (i.e. manifest icons
|
| + // override inline favicons).
|
| + handler->OnUpdateCandidates(page_url, candidates,
|
| + handler->icon_types() & favicon_base::FAVICON
|
| + ? manifest_url
|
| + : GURL::EmptyGURL());
|
| + }
|
| }
|
|
|
| } // namespace favicon
|
|
|