<?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>301624</bug_id>
          
          <creation_ts>2025-10-29 04:38:34 -0700</creation_ts>
          <short_desc>Page icon load decisions should be queried all at once</short_desc>
          <delta_ts>2026-03-31 15:33:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>301086</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>301088</dependson>
          <blocked>301086</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2154955</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2025-10-29 04:38:34 -0700</bug_when>
    <thetext>While working on bug #301088, I noticed that in the WebProcess we know all
the icons for a page, but then querying whether they are to be loaded is done
one at a time: 

void WebLocalFrameLoaderClient::getLoadDecisionForIcons(const Vector&lt;std::pair&lt;WebCore::LinkIcon&amp;, uint64_t&gt;&gt;&amp; icons)
{
    RefPtr webPage = m_frame-&gt;page();
    if (!webPage)
        return;

    for (auto&amp; icon : icons)
        webPage-&gt;send(Messages::WebPageProxy::GetLoadDecisionForIcon(icon.first, CallbackID::fromInteger(icon.second)));
}

It would be desirable to pass all icons at once for the following reasons:

- Currently the UIProcess cannot not know how many icons will be loaded,
  and therefore cannot know when the job is done for a given page. Passing
  all the candidate icons we can know for which set of loads to complete.
  We would like to do this for the GTK and WPE ports (see bug #301086)

- The IconLoadingClient in the UIProcess can make a better decision about
  which icons to load if it knows about all of them.

- Sending a single message should be fine, they won&apos;t typically be a huge
  amount of them, and not very long.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2156553</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-11-05 03:39:10 -0800</bug_when>
    <thetext>&lt;rdar://problem/164079873&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2195699</commentid>
    <comment_count>2</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2026-03-31 15:33:50 -0700</bug_when>
    <thetext>Implemented this as part of bug #301086 and landed in 310308@main

*** This bug has been marked as a duplicate of bug 301086 ***</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>