Open Bug 685740 Opened 13 years ago Updated 2 years ago

2 requests for favicon.ico while getting 404 responses

Categories

(Firefox :: Tabbed Browser, defect)

All
Windows
defect

Tracking

()

People

(Reporter: mayhemer, Unassigned)

References

Details

A common page, running locally on my testing server, no favicon.ico file in the root, server IIS 7.5.

I can see 4 requests in the log for GET /favicon.ico with following Accept header values:
1. Accept: image/png,image/*;q=0.8,*/*;q=0.5
2. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
3. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Other common headers unmodified between requests.


All 3 responses are 404 Not Found with Cache-Control: private and the IIS "not found" error page text/html content.

Requests come from:


1.:

 	xul.dll!NewImageChannel(nsIChannel * * aResult=0x00339a84, nsIURI * aURI=0x04d36a80, nsIURI * aInitialDocumentURI=0x04f94280, nsIURI * aReferringURI=0x04f94280, nsILoadGroup * aLoadGroup=0x04f94dc8, const nsCString & aAcceptHeader={...}, unsigned int aLoadFlags=5120, nsIChannelPolicy * aPolicy=0x00000000)  Line 525 + 0x22 bytes	
 	xul.dll!imgLoader::LoadImage(nsIURI * aURI=0x04d36a80, nsIURI * aInitialDocumentURI=0x04f94280, nsIURI * aReferrerURI=0x04f94280, nsIPrincipal * aLoadingPrincipal=0x03816bb8, nsILoadGroup * aLoadGroup=0x04f94dc8, imgIDecoderObserver * aObserver=0x0667e0d0, nsISupports * aCX=0x050b6f28, unsigned int aLoadFlags=5120, nsISupports * aCacheKey=0x00000000, imgIRequest * aRequest=0x00000000, nsIChannelPolicy * aPolicy=0x00000000, imgIRequest * * _retval=0x06793dd8)  Line 1692 + 0x42 bytes	
 	xul.dll!nsContentUtils::LoadImage(nsIURI * aURI=0x04d36a80, nsIDocument * aLoadingDocument=0x050b6f28, nsIPrincipal * aLoadingPrincipal=0x03816bb8, nsIURI * aReferrer=0x04f94280, imgIDecoderObserver * aObserver=0x0667e0d0, int aLoadFlags=5120, imgIRequest * * aRequest=0x06793dd8)  Line 2352 + 0x44 bytes	
 	xul.dll!nsImageBoxFrame::UpdateImage()  Line 266 + 0x6d bytes	
 	xul.dll!nsImageBoxFrame::AttributeChanged(int aNameSpaceID=0, nsIAtom * aAttribute=0x0379e2e8, int aModType=2)  Line 170	
 	xul.dll!nsCSSFrameConstructor::AttributeChanged(mozilla::dom::Element * aElement=0x063dc9e8, int aNameSpaceID=0, nsIAtom * aAttribute=0x0379e2e8, int aModType=2)  Line 8225	
 	xul.dll!PresShell::AttributeChanged(nsIDocument * aDocument=0x050b6f28, mozilla::dom::Element * aElement=0x063dc9e8, int aNameSpaceID=0, nsIAtom * aAttribute=0x0379e2e8, int aModType=2)  Line 5002	
 	xul.dll!nsNodeUtils::AttributeChanged(mozilla::dom::Element * aElement=0x063dc9e8, int aNameSpaceID=0, nsIAtom * aAttribute=0x0379e2e8, int aModType=2)  Line 136 + 0xd0 bytes	
 	xul.dll!nsGenericElement::SetAttrAndNotify(int aNamespaceID=0, nsIAtom * aName=0x0379e2e8, nsIAtom * aPrefix=0x00000000, const nsAString_internal & aOldValue={...}, nsAttrValue & aParsedValue={...}, unsigned char aModType='', int aFireMutation=0, int aNotify=1, const nsAString_internal * aValueForAfterSetAttr=0x0033a088)  Line 4640 + 0x19 bytes	
 	xul.dll!nsGenericElement::SetAttr(int aNamespaceID=0, nsIAtom * aName=0x0379e2e8, nsIAtom * aPrefix=0x00000000, const nsAString_internal & aValue={...}, int aNotify=1)  Line 4547 + 0x39 bytes	
 	xul.dll!nsGenericElement::SetAttr(int aNameSpaceID=0, nsIAtom * aName=0x0379e2e8, const nsAString_internal & aValue={...}, int aNotify=1)  Line 282	
 	xul.dll!nsGenericElement::SetAttribute(const nsAString_internal & aName={...}, const nsAString_internal & aValue={...})  Line 2541 + 0x19 bytes	
 	xul.dll!nsXULElement::SetAttribute(const nsAString_internal & name={...}, const nsAString_internal & value={...})  Line 540 + 0x14 bytes	
 	xul.dll!nsIDOMElement_SetAttribute(JSContext * cx=0x04f987e8, unsigned int argc=2, jsval_layout * vp=0x04650318)  Line 5708 + 0x23 bytes	
0 PageProxySetIcon(aURL = "http://test.local.i7/favicon.ico") ["chrome://browser/content/browser.js":8384]
    this = [object ChromeWindow @ 0x4ea01e0 (native @ 0x4e86b90)]
1 anonymous(aIconURL = "http://test.local.i7/favicon.ico") ["chrome://browser/content/browser.js":10014]
    this = [object Object]
2 anonymous(p = [object Object], 0, [object Object]) ["chrome://browser/content/tabbrowser.xml":410]
    this = [object ChromeWindow @ 0x4ea01e0 (native @ 0x4e86b90)]
3 _callProgressListeners(aCallTabsListeners = undefined, aCallGlobalListeners = undefined, aArguments = http://test.local.i7/favicon.ico, aMethod = "onLink
IconAvailable", aBrowser = [object XULElement @ 0x845fdf8 (native @ 0x84376e8)]) ["chrome://browser/content/tabbrowser.xml":407]
    rv = true
    this = [object XULElement @ 0x602edc0 (native @ 0x5da0cf8)]
4 setIcon(aURI = [xpconnect wrapped nsIURI @ 0x8675d68 (native @ 0x8675bb4)], aTab = [object XULElement @ 0x5cd7298 (native @ 0x5d00420)]) ["chrome://brows
er/content/tabbrowser.xml":698]
    browser = [object XULElement @ 0x845fdf8 (native @ 0x84376e8)]
    this = [object XULElement @ 0x602edc0 (native @ 0x5da0cf8)]
5 useDefaultIcon(aTab = [object XULElement @ 0x5cd7298 (native @ 0x5d00420)]) ["chrome://browser/content/tabbrowser.xml":752]
    icon = "http://test.local.i7/favicon.ico"
    docURIObject = [xpconnect wrapped nsIURI @ 0x86755b8 (native @ 0x882e3ec)]
    browser = [object XULElement @ 0x845fdf8 (native @ 0x84376e8)]
    this = [object XULElement @ 0x602edc0 (native @ 0x5da0cf8)]
6 anonymous(aStatus = 0, aStateFlags = 786448, aRequest = [xpconnect wrapped (nsISupports, nsIRequest, nsIChannel) @ 0x4b82e38 (native @ 0x4b81a70)], aWebP
rogress = [xpconnect wrapped (nsISupports, nsIDocShell, nsIInterfaceRequestor, nsIWebProgress, nsIWebNavigation, nsIDocShellHistory, nsIDocumentLoader) @ 0
x84fd8d0 (native @ 0x8437bc4)]) ["chrome://browser/content/tabbrowser.xml":556]
    location = undefined
    NS_ERROR_UNKNOWN_HOST = 2152398878
    nsIChannel = nsIChannel
    nsIWebProgressListener = nsIWebProgressListener
    oldBlank = false
    this = [object Object]



2.:
 	xul.dll!mozilla::places::AsyncFetchAndSetIconFromNetwork::Run()  Line 602 + 0x35 bytes	



3.:
0 _imageFromURI(callback = [function], uri = [xpconnect wrapped nsIURI @ 0x8b60978 (native @ 0x853d22c)]) ["resource://gre/modules/WindowsPreviewPerTab.jsm
":109]
    channel = undefined
    this = [object BackstagePass @ 0x8b378a8 (native @ 0x3adeafc)]
1 getFaviconAsImage(callback = [function], iconurl = "http://test.local.i7/favicon.ico") ["resource://gre/modules/WindowsPreviewPerTab.jsm":130]
    this = [object BackstagePass @ 0x8b378a8 (native @ 0x3adeafc)]
2 anonymous(aIconURL = "http://test.local.i7/favicon.ico", aBrowser = [object XULElement @ 0x845fdf8 (native @ 0x84376e8)]) ["resource://gre/modules/Window
sPreviewPerTab.jsm":571]
    self = [object Object]
    this = [object Object]
3 anonymous(p = [object Object], 1, [object Object],[object Object]) ["chrome://browser/content/tabbrowser.xml":426]
    this = [object ChromeWindow @ 0x4ea01e0 (native @ 0x4e86b90)]
4 _callProgressListeners(aCallTabsListeners = undefined, aCallGlobalListeners = undefined, aArguments = [object XULElement @ 0x845fdf8 (native @ 0x84376e8)
],http://test.local.i7/favicon.ico, aMethod = "onLinkIconAvailable", aBrowser = [object XULElement @ 0x845fdf8 (native @ 0x84376e8)]) ["chrome://browser/co
ntent/tabbrowser.xml":423]
    rv = false
    this = [object XULElement @ 0x602edc0 (native @ 0x5da0cf8)]
5 setIcon(aURI = [xpconnect wrapped nsIURI @ 0x8675d68 (native @ 0x8675bb4)], aTab = [object XULElement @ 0x5cd7298 (native @ 0x5d00420)]) ["chrome://brows
er/content/tabbrowser.xml":698]
    browser = [object XULElement @ 0x845fdf8 (native @ 0x84376e8)]
    this = [object XULElement @ 0x602edc0 (native @ 0x5da0cf8)]
6 useDefaultIcon(aTab = [object XULElement @ 0x5cd7298 (native @ 0x5d00420)]) ["chrome://browser/content/tabbrowser.xml":752]
    icon = "http://test.local.i7/favicon.ico"
    docURIObject = [xpconnect wrapped nsIURI @ 0x86755b8 (native @ 0x882e3ec)]
    browser = [object XULElement @ 0x845fdf8 (native @ 0x84376e8)]
    this = [object XULElement @ 0x602edc0 (native @ 0x5da0cf8)]
7 anonymous(aStatus = 0, aStateFlags = 786448, aRequest = [xpconnect wrapped (nsISupports, nsIRequest, nsIChannel) @ 0x4b82e38 (native @ 0x4b81a70)], aWebP
rogress = [xpconnect wrapped (nsISupports, nsIDocShell, nsIInterfaceRequestor, nsIWebProgress, nsIWebNavigation, nsIDocShellHistory, nsIDocumentLoader) @ 0
x84fd8d0 (native @ 0x8437bc4)]) ["chrome://browser/content/tabbrowser.xml":556]
    location = undefined
    NS_ERROR_UNKNOWN_HOST = 2152398878
    nsIChannel = nsIChannel
    nsIWebProgressListener = nsIWebProgressListener
    oldBlank = false
    this = [object Object]



And during debugging I have found another one..

4.:
 	xul.dll!NewImageChannel(nsIChannel * * aResult=0x002bac38, nsIURI * aURI=0x03af8030, nsIURI * aInitialDocumentURI=0x04e782d8, nsIURI * aReferringURI=0x04e782d8, nsILoadGroup * aLoadGroup=0x04e78e20, const nsCString & aAcceptHeader={...}, unsigned int aLoadFlags=5120, nsIChannelPolicy * aPolicy=0x00000000)  Line 525 + 0x22 bytes	
 	xul.dll!imgLoader::LoadImage(nsIURI * aURI=0x03af8030, nsIURI * aInitialDocumentURI=0x04e782d8, nsIURI * aReferrerURI=0x04e782d8, nsIPrincipal * aLoadingPrincipal=0x03aa63c0, nsILoadGroup * aLoadGroup=0x04e78e20, imgIDecoderObserver * aObserver=0x087b59e8, nsISupports * aCX=0x058cc968, unsigned int aLoadFlags=5120, nsISupports * aCacheKey=0x00000000, imgIRequest * aRequest=0x00000000, nsIChannelPolicy * aPolicy=0x00000000, imgIRequest * * _retval=0x08874710)  Line 1692 + 0x42 bytes	
 	xul.dll!nsContentUtils::LoadImage(nsIURI * aURI=0x03af8030, nsIDocument * aLoadingDocument=0x058cc968, nsIPrincipal * aLoadingPrincipal=0x03aa63c0, nsIURI * aReferrer=0x04e782d8, imgIDecoderObserver * aObserver=0x087b59e8, int aLoadFlags=5120, imgIRequest * * aRequest=0x08874710)  Line 2352 + 0x44 bytes	
 	xul.dll!nsImageBoxFrame::UpdateImage()  Line 266 + 0x6d bytes	
 	xul.dll!nsImageBoxFrame::Init(nsIContent * aContent=0x06004230, nsIFrame * aParent=0x08486d68, nsIFrame * aPrevInFlow=0x00000000)  Line 234	
 	xul.dll!nsCSSFrameConstructor::InitAndRestoreFrame(const nsFrameConstructorState & aState={...}, nsIContent * aContent=0x06004230, nsIFrame * aParentFrame=0x08486d68, nsIFrame * aPrevInFlow=0x00000000, nsIFrame * aNewFrame=0x088746b8, int aAllowCounters=1)  Line 4499 + 0x1a bytes	
 	xul.dll!nsCSSFrameConstructor::ConstructFrameFromItemInternal(nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsFrameConstructorState & aState={...}, nsIFrame * aParentFrame=0x08486d68, nsFrameItems & aFrameItems={...})  Line 3716 + 0x1c bytes	
 	xul.dll!nsCSSFrameConstructor::ConstructFramesFromItem(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList::Iterator & aIter={...}, nsIFrame * aParentFrame=0x08486d68, nsFrameItems & aFrameItems={...})  Line 5445 + 0x18 bytes	
 	xul.dll!nsCSSFrameConstructor::ConstructFramesFromItemList(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList & aItems={...}, nsIFrame * aParentFrame=0x08486d68, nsFrameItems & aFrameItems={...})  Line 9456 + 0x18 bytes	
 	xul.dll!nsCSSFrameConstructor::ContentRangeInserted(nsIContent * aContainer=0x060040a0, nsIContent * aStartChild=0x06004230, nsIContent * aEndChild=0x060042c8, nsILayoutHistoryState * aFrameState=0x05b48440, int aAllowLazyConstruction=0)  Line 7147	
 	xul.dll!nsCSSFrameConstructor::ContentInserted(nsIContent * aContainer=0x060040a0, nsIContent * aChild=0x06004230, nsILayoutHistoryState * aFrameState=0x05b48440, int aAllowLazyConstruction=0)  Line 6768	
 	xul.dll!nsCSSFrameConstructor::RecreateFramesForContent(nsIContent * aContent=0x06004230, int aAsyncInsert=0)  Line 9101 + 0x23 bytes	
 	xul.dll!nsCSSFrameConstructor::ProcessRestyledFrames(nsStyleChangeList & aChangeList={...})  Line 7967	
 	xul.dll!nsCSSFrameConstructor::RestyleElement(mozilla::dom::Element * aElement=0x058f9ad0, nsIFrame * aPrimaryFrame=0x058dcff0, nsChangeHint aMinHint=0, mozilla::css::RestyleTracker & aRestyleTracker={...}, int aRestyleDescendants=1)  Line 8053	
 	xul.dll!mozilla::css::RestyleTracker::ProcessOneRestyle(mozilla::dom::Element * aElement=0x058f9ad0, nsRestyleHint aRestyleHint=eRestyle_Subtree, nsChangeHint aChangeHint=0)  Line 157	
 	xul.dll!mozilla::css::RestyleTracker::ProcessRestyles()  Line 241	
 	xul.dll!nsCSSFrameConstructor::ProcessPendingRestyles()  Line 11625	
 	xul.dll!PresShell::FlushPendingNotifications(mozFlushType aType=Flush_InterruptibleLayout)  Line 4821	
 	xul.dll!PresShell::WillPaint(int aWillSendDidPaint=1)  Line 7645	
 	xul.dll!nsViewManager::CallWillPaintOnObservers(int aWillSendDidPaint=1)  Line 1582	
 	xul.dll!nsViewManager::DispatchEvent(nsGUIEvent * aEvent=0x002bc048, nsIView * aView=0x058d9e40, nsEventStatus * aStatus=0x002bbd50)  Line 879	
 	xul.dll!AttachedHandleEvent(nsGUIEvent * aEvent=0x002bc048)  Line 192	
 	xul.dll!nsWindow::DispatchEvent(nsGUIEvent * event=0x002bc048, nsEventStatus & aStatus=nsEventStatus_eIgnore)  Line 3577 + 0xc bytes	
 	xul.dll!nsWindow::DispatchWindowEvent(nsGUIEvent * event=0x002bc048)  Line 3604	
 	xul.dll!nsWindow::OnPaint(HDC__ * aDC=0x00000000, unsigned int aNestingLevel=0)  Line 250	



I would suggest to coalesce the requests to a single one.  All of these are happening in parallel, mostly.  Maybe some special handling of cache entry for this request might be a solution.  Anyway, doing 4 requests for the same thing seems to be crazy.
Isn't the solution to cache error responses in the image cache?  We have an existing bug on that...
See Also: → 1247843
Blocks: CDP
Assignee: nobody → honzab.moz
Blocks: 1247843
Depends on: 1348035
1. is probably the tab icon
2. the mozilla::places load is to store the favicon in the favicons service cache, from there it will be reused for various UI pieces (history menu and views, bookmarks menu and views, newtab/AS, ...) and retained for 7 days before a new reload.
3. looks like Windows taskbar previews

The image cache should indeed serve the same image to all UI consumers, but some of these consumers are likely fetching the image url directly from the network and then the image cache doesn't help.

We could either pass an already loaded payload to the favicons service to save one load, or use the favicons service protocols (moz-anno:favicon: or page-icon:) more broadly (both for the tab and for Windows previews). The problem there is that the favicons service doesn't store icons in PB mode, so we would either need to create a temp store for PB mode, or make the above protocols fall-through to network when there's no locally cached icon, but that has security implications that go over my knowledge (I'd be happy to cooperate on figuring those out).

Also note it's likely in the future the favicons service will fetch more than a single icon per page, many pages are indeed providing multiple icons at different sizes, and we're working to support hi dpi and bigger favicons in the UI. So we could start fetching some more icons from each page (when they are not cached yet). I'm happy to hear suggestions on how we could make that less painful.
Priority: -- → P1
This has reduced to only 2 requests:

>	xul.dll!mozilla::net::nsHttpChannel::AsyncOpen(0x28467f80, 0x00000000) Line 5777	C++
 	xul.dll!mozilla::net::nsHttpChannel::AsyncOpen2(0x28467f80) Line 5971	C++
 	xul.dll!imgLoader::LoadImage(0x28248c80, 0x228e2a00, 0x228e2a00, RP_Unset, 0x285af6a0, 0x22b26ec0, 0x1e253160, 0x24ed39c0, 0x1d78d000, 5120, 0x00000000, 41, {...}, 0x282a2178) Line 2246	C++
 	xul.dll!nsContentUtils::LoadImage(0x28248c80, 0x24ed39c0, 0x1d78d000, 0x285af6a0, 0x228e2a00, RP_Unset, 0x1e253160, 5120, {...}, 0x282a2178, 41) Line 3435	C++
 	xul.dll!nsImageBoxFrame::UpdateImage() Line 247	C++
 	xul.dll!nsImageBoxFrame::Init(0x24ed39c0, 0x2511d738, 0x00000000) Line 211	C++
 	xul.dll!nsCSSFrameConstructor::InitAndRestoreFrame({...}, 0x24ed39c0, 0x2511d738, 0x282a2120, true) Line 5012	C++
 	xul.dll!nsCSSFrameConstructor::ConstructFrameFromItemInternal({...}, {...}, 0x2511d738, {...}) Line 3932	C++
 	xul.dll!nsCSSFrameConstructor::ConstructFramesFromItem({...}, {...}, 0x2511d738, {...}) Line 6265	C++
 	xul.dll!nsCSSFrameConstructor::ConstructFramesFromItemList({...}, {...}, 0x2511d738, {...}) Line 10843	C++
 	xul.dll!nsCSSFrameConstructor::ContentRangeInserted(0x24ed3920, 0x24ed39c0, 0x24ed3a10, 0x2286e6c0, false, 0x00000000) Line 8253	C++
 	xul.dll!nsCSSFrameConstructor::ContentInserted(0x24ed3920, 0x24ed39c0, 0x2286e6c0, false) Line 7799	C++
 	xul.dll!nsCSSFrameConstructor::RecreateFramesForContent(0x24ed39c0, false, REMOVE_FOR_RECONSTRUCTION, 0x00000000) Line 9913	C++
 	xul.dll!nsCSSFrameConstructor::MaybeRecreateFramesForElement(0x24ed39c0) Line 9519	C++
 	xul.dll!mozilla::GeckoRestyleManager::RestyleElement(0x24ed39c0, 0x00000000, nsChangeHint_Empty, {...}, 3, {...}) Line 164	C++
 	xul.dll!mozilla::RestyleTracker::ProcessOneRestyle(0x24ed39c0, 3, nsChangeHint_Empty, {...}) Line 95	C++
 	xul.dll!mozilla::RestyleTracker::DoProcessRestyles() Line 264	C++
 	xul.dll!mozilla::GeckoRestyleManager::ProcessRestyles({...}) Line 392	C++
 	xul.dll!mozilla::GeckoRestyleManager::ProcessPendingRestyles() Line 506	C++
 	xul.dll!mozilla::RestyleManager::ProcessPendingRestyles() Line 45	C++
 	xul.dll!mozilla::PresShell::DoFlushPendingNotifications({...}) Line 4210	C++
 	xul.dll!nsIPresShell::FlushPendingNotifications({...}) Line 609	C++
 	xul.dll!nsRefreshDriver::Tick(1491747297906295, {...}) Line 1776	C++
 	xul.dll!mozilla::RefreshDriverTimer::TickDriver(0x1ea2b8c0, 1491747297906295, {...}) Line 330	C++
 	xul.dll!mozilla::RefreshDriverTimer::TickRefreshDrivers(1491747297906295, {...}, {...}) Line 299	C++
 	xul.dll!mozilla::RefreshDriverTimer::Tick(1491747297906295, {...}) Line 323	C++
 	xul.dll!mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers({...}) Line 712	C++
 	xul.dll!mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver({...}) Line 627	C++
 	xul.dll!mozilla::detail::RunnableMethodArguments<mozilla::TimeStamp>::applyImpl<mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver,void (__thiscall mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::*)(mozilla::TimeStamp),StoreCopyPassByConstLRef<mozilla::TimeStamp>,0>(0x2232fa10, 0x10043389, {...}, {...}) Line 865	C++
 	xul.dll!mozilla::detail::RunnableMethodArguments<mozilla::TimeStamp>::apply<mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver,void (__thiscall mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::*)(mozilla::TimeStamp)>(0x2232fa10, 0x10043389) Line 870	C++
 	xul.dll!mozilla::detail::RunnableMethodImpl<mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver * const,void (__thiscall mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::*)(mozilla::TimeStamp),1,0,mozilla::TimeStamp>::Run() Line 901	C++
 	xul.dll!nsThread::ProcessNextEvent(false, 0x0077f4e1) Line 1270	C++
 	xul.dll!NS_ProcessNextEvent(0x0116b300, false) Line 389	C++
 	xul.dll!mozilla::ipc::MessagePump::Run(0x01125060) Line 96	C++
 	xul.dll!MessageLoop::RunInternal() Line 239	C++
 	xul.dll!MessageLoop::RunHandler() Line 232	C++
 	xul.dll!MessageLoop::Run() Line 212	C++
 	xul.dll!nsBaseAppShell::Run() Line 158	C++
 	xul.dll!nsAppShell::Run() Line 271	C++
 	xul.dll!nsAppStartup::Run() Line 283	C++
 	xul.dll!XREMain::XRE_mainRun() Line 4538	C++
 	xul.dll!XREMain::XRE_main(4, 0x01102040, {...}) Line 4718	C++
 	xul.dll!XRE_main(4, 0x01102040, {...}) Line 4811	C++

  
>	xul.dll!mozilla::net::nsHttpChannel::AsyncOpen(0x228e1ed4, 0x00000000) Line 5777	C++
 	xul.dll!mozilla::net::nsHttpChannel::AsyncOpen2(0x228e1ed4) Line 5971	C++
 	xul.dll!mozilla::places::AsyncFetchAndSetIconForPage::FetchFromNetwork() Line 444	C++
 	xul.dll!mozilla::detail::RunnableMethodArguments<>::applyImpl<mozilla::places::AsyncFetchAndSetIconForPage,enum nsresult (__thiscall mozilla::places::AsyncFetchAndSetIconForPage::*)(void)>(0x228e1ec0, 0x100b9c19, {...}, {...}) Line 865	C++
 	xul.dll!mozilla::detail::RunnableMethodArguments<>::apply<mozilla::places::AsyncFetchAndSetIconForPage,enum nsresult (__thiscall mozilla::places::AsyncFetchAndSetIconForPage::*)(void)>(0x228e1ec0, 0x100b9c19) Line 870	C++
 	xul.dll!mozilla::detail::RunnableMethodImpl<mozilla::places::AsyncFetchAndSetIconForPage * const,enum nsresult (__thiscall mozilla::places::AsyncFetchAndSetIconForPage::*)(void),1,0>::Run() Line 901	C++
 	xul.dll!nsThread::ProcessNextEvent(false, 0x0077f4e1) Line 1270	C++
 	xul.dll!NS_ProcessNextEvent(0x0116b300, false) Line 389	C++
 	xul.dll!mozilla::ipc::MessagePump::Run(0x01125060) Line 96	C++
 	xul.dll!MessageLoop::RunInternal() Line 239	C++
 	xul.dll!MessageLoop::RunHandler() Line 232	C++
 	xul.dll!MessageLoop::Run() Line 212	C++
 	xul.dll!nsBaseAppShell::Run() Line 158	C++
 	xul.dll!nsAppShell::Run() Line 271	C++
 	xul.dll!nsAppStartup::Run() Line 283	C++
 	xul.dll!XREMain::XRE_mainRun() Line 4538	C++
 	xul.dll!XREMain::XRE_main(4, 0x01102040, {...}) Line 4718	C++


Both fortunately happen later during the page load process, so they no longer block paint, I believe (no tool to check, tho....)  But still would be good to coalesce them.  One option is to make the response more cacheable, at least 404.

I don't believe this blocks CDP anymore and bug 1247843 will use a different solution.
No longer blocks: 1247843, CDP
Priority: P1 → --
Summary: 4 requests for favicon.ico while getting 404 responses → 2 requests for favicon.ico while getting 404 responses
The first load apparently comes from here:

https://dxr.mozilla.org/mozilla-central/rev/2a3ecdb7d1ea814708021fee6735b3aedcf03e48/browser/base/content/tabbrowser.xml#971

Which according comment 2 seems to be windows taskbar preview.  The priority of the channel is LOW, so it's not that bad.
Blocks: 1247843
No longer blocks: 1247843
I don't think this needs an urgent fix, releasing.
Assignee: honzab.moz → nobody
Component: General → Tabbed Browser
OS: Windows 7 → Windows

Mass-removing myself from cc; search for 12b9dfe4-ece3-40dc-8d23-60e179f64ac1 or any reasonable part thereof, to mass-delete these notifications (and sorry!)

Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.