Safari -> Reset Safari... Go to a site known to have a favicon (google.com, yahoo.com, ebay.com, etc). Notice there is no favicon until you refresh the site. I turned on logging and I think the issue is that the favicon data has not been committed to the database in dispatchDidReceiveIcon and dispatchDidAddIconForPageURL so that the Image stored in the IconRecord has m_data set to NULL.
<rdar://problem/6240826>
I have a local change that switches the order of readFromDatabase() and writeToDatabase() inside IconDatabase::syncThreadMainLoop() that appears to fix the issue. I haven't seen any adverse affects but I'm not sure what to look for.
See also Bug 12892.
I believe Attachment #25925 [details] from Bug 22795 contains a (webarchive) test case that reproduces this issue reliably on Mac OS X, which should make it easier to fix.
Could this be related to the "write before read" change in bug 22963?
(In reply to comment #5) > Could this be related to the "write before read" change in bug 22963? I don't believe that patch fixes the issue. See Bug 22963 Comment #3.
(In reply to comment #4) > I believe Attachment #25925 [details] [review] from Bug 22795 contains a (webarchive) test case > that reproduces this issue reliably on Mac OS X, which should make it easier to > fix. The fix for Bug 22795 landed, but the layout test fails in different ways on different buildbots (see Bug 23331), so it's currently disabled.
I think this may have been fixed with <http://trac.webkit.org/changeset/40335>. Patrick, could you verify this with a nightly build?
I think change 40335 and the fix for bug 22963 have resolved this issue.
(In reply to comment #9) > I think change 40335 and the fix for bug 22963 have resolved this issue. Resolving as fixed.