@disrupted
Sorry for posting before thinking.
I'll edit this post, while work is in progress.
--
Update1:
1) K-Meleon opens url successful (Title is 'Page Load Error').
2) K-Meleon doesn't ask XUL for cert-errors!
3) K-Meleon looks for
https://www.mrtech.com/favicon.ico
although a cert error occurred.
4) XUL opens chrome-window with 2'nd title 'Page Load Error'
This is a test fix, where step 3 and 4 are skipped.
All other pages can load their site-icons.
(Filename is BrowserImpl.cpp, my changes are red.)
if (type.Equals(NS_LITERAL_STRING('DOMContentLoaded')))
{
// DOMContentLoaded is not send if the page is reloaded from cache
// Nevertheless I'm using it to get the IE favicon without waiting
// for all images of the page to be loaded
NS_ENSURE_TRUE(m_pBrowserFrameGlue, NS_ERROR_FAILURE);
CString title;
m_pBrowserFrameGlue->GetBrowserTitle(title);
if(_tcsncmp(_T('Page Load Error'),title,15)==0)
{
return NS_ERROR_FILE_ACCESS_DENIED;
}
m_pBrowserFrameGlue->SetFavIcon(nsnull);
return NS_OK;
}
Update2:
Found out what filters warning icon:
'chrome://global/skin/icons/warning-16.png'
CBrowoserImpl.cpp -> HandleEvent 'DOMLinkAdded'
rv = secMan->CheckLoadURI(docUri, favUri,
nsIScriptSecurityManager:
TANDARD);
/* failure means it didn't pass the security check */
if (NS_FAILED (rv)) return NS_OK;
No Chrome icons pass the lines above.
GRE 1.9.1 nsIScriptSecurityManager killed Console2 too.
Update3:
rv = secMan->CheckLoadURI(docUri, favUri,
nsIScriptSecurityManager:
TANDARD
| nsIScriptSecurityManager::ALLOW_CHROME);
/* failure means it didn't pass the security check */
if (NS_FAILED (rv)) return NS_OK;
This change allows loading chrome icons.
The yellow warning is in Caption and URLBar again.
Update4:
Tried to list all involved preferences:
(For title, urlbar, tabs and plugins.)
kmeleon.favicons.show
(To disable titleBar icons if show enabled.)
kmeleon.favicons.titleBar
(To disable bookmarks icons if show enabled.)
kmeleon.plugins.bookmarks.displaySiteicon
(Does it cache chrome, and what happens if not?)
kmeleon.favicons.cached
Chrome usage:
(for title, urlbar, tabs and plugins)
browser.chrome.favicons
if (!theApp.preferences.GetBool('browser.chrome.favicons', TRUE))
{
rv = secMan->CheckLoadURI(docUri, favUri,
nsIScriptSecurityManager:
TANDARD);
}
else
{
rv = secMan->CheckLoadURI(docUri, favUri,
nsIScriptSecurityManager:TANDARD
| nsIScriptSecurityManager::ALLOW_CHROME);
}
Update5:
Problem solved: (no 2'nd popup and working favicon refresh)
1) Allow load of chrome images on netError.
2) Block favicon if invalid cert for URI. (warning-16.png is not blocked, it uses siteicon code.)
3) Enable show favicon if matching overwrite cert rule exists.
4) Force refresh favicon at end of overwrite button code.
todo: Test HTTPS site with siteicon and without favicon.
Found several http sites with siteicons and favicons.
Last loaded icon is displayed. Any ideas?
Micro$oft favicons are:
<server>/favicon.ico
Siteicons are:
rel='icon' or rel='shortcut icon' src='picture'
--
Next I would try to fix this (or later):
- chrome-windows with parameters
- remove all size to content changes that where added
- remove display problems if 'size to content' is used.
(update: fixed by minimize + moving up 2000 pixels on create and moving back on resize.)
Edited 8 time(s). Last edit at 06/22/2011 06:46PM by deadlock.