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...
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.