<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>301088</bug_id>
          
          <creation_ts>2025-10-20 05:32:29 -0700</creation_ts>
          <short_desc>[GLib] Make IconDatabase handle multiple per-page icons</short_desc>
          <delta_ts>2025-11-02 03:31:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=301822</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>301359</dependson>
          <blocked>301086</blocked>
    
    <blocked>301624</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>bugs-noreply</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2152552</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2025-10-20 05:32:29 -0700</bug_when>
    <thetext>In Source/WebKit/UIProcess/API/glib/IconDatabase.{h,cpp} we would need to:

- Store multiple entries per page in IconDatabase::m_pageURLToIconURLMap
- IconDatabase::iconURLForPageURL() method may return multiple URLs.
- IconDatabase::loadIconsForPageURL() may load and pass multiple items to the completion handler.
- IconDatabase::setIconForPageURL() ideally would update all page icons in a single shot, instead of one-by-one incrementally.
- IconDatabase::checkIconURLAndSetPageURLIfNeeded(): Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2154945</commentid>
    <comment_count>1</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2025-10-29 02:58:41 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/53135</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2154947</commentid>
    <comment_count>2</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2025-10-29 03:15:04 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #1)
&gt; Pull request: https://github.com/WebKit/WebKit/pull/53135

This patch tackles items 1-2-3 above, updating all the icons in one-shot, to avoid
setting the WebKitWebView::favicon property multiple time IMO it will be better
done in a separate patch because it needs to touch IPC code and add a mechanism
in the IconDatabase (or WebKitFaviconDatabase, not sure yet what&apos;s the best place)
to track a set of icons to load and setting properties only once all of them have been
provided, either by the FrameLoader, or lifting them from the cached versions (from
the database, or the in-memory cache).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2155060</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-10-29 13:05:05 -0700</bug_when>
    <thetext>Committed 302307@main (a388e15a5725): &lt;https://commits.webkit.org/302307@main&gt;

Reviewed commits have been landed. Closing PR #53135 and removing active labels.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>