Reviewed by Tim Omernick.
authorsullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 11 Apr 2006 04:17:43 +0000 (04:17 +0000)
committersullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 11 Apr 2006 04:17:43 +0000 (04:17 +0000)
commit6bcea06b72632f24547ed0d05a3f5a556acdc0a4
treef31ad50079db3702bf08127437458aea33bf5750
parent0c5920f45aae1d260f6a5c34ad49b056d170e2ca
    Reviewed by Tim Omernick.

        - fixed <rdar://problem/4139799> Seed: Safari: Private Browsing leaves traces in Icon Cache

        * Misc/WebIconDatabasePrivate.h:
        new ivars: pageURLsBoundDuringPrivateBrowsing, iconURLsBoundDuringPrivateBrowsing, and privateBrowsingEnabled

        * Misc/WebIconDatabase.m:
        (-[NSMutableDictionary init]):
        initialize new ivars, and listen for notifications that WebPreferences changed so we can react to changes
        to private browsing.
        (-[NSMutableDictionary iconForURL:withSize:cache:]):
        Don't remove icon URL from extraRetain dictionary; that's now done in _forgetIconForIconURLString. (I left a
        comment here earlier about why I was worried about this change, but I convinced myself that it's fine.)
        (-[WebIconDatabase removeAllIcons]):
        Removed no-longer-true (and never very clear) comment, and braces. Also remove all objects from the two
        private-browsing-related dictionaries.
        (-[WebIconDatabase _setIcon:forIconURL:]):
        remember icon URL if private browsing is enabled
        (-[WebIconDatabase _setHaveNoIconForIconURL:]):
        remember icon URL if private browsing is enabled
        (-[WebIconDatabase _setIconURL:forURL:]):
        added an assert that helped me out at one point
        (-[WebIconDatabase _clearDictionaries]):
        clear the two new dictionaries too
        (-[WebIconDatabase _loadIconDictionaries]):
        made an existing ERROR not fire in the expected case where there are no icons at all on disk
        (-[WebIconDatabase _updateFileDatabase]):
        when saving the pageURLToIconURL dictionary to disk, first remove any values that were created during
        private browsing
        (-[WebIconDatabase _retainIconForIconURLString:]):
        skip the code that deals with saving changes to disk if private browsing is enabled
        (-[WebIconDatabase _forgetIconForIconURLString:]):
        Remove the icon URL from extraRetain dictionary here. We're forgetting everything about this icon URL
        so we should forget its former extraRetain count too.
        (-[WebIconDatabase _resetCachedWebPreferences:]):
        Cache the new value of private browsing. If it has now been turned off, forget everything we learned
        while it was on. This causes (e.g.) icons for bookmarks or pre-existing history items to be forgotten
        if the icon was only learned during private browsing.

        * History/WebHistoryItem.m:
        removed an unnecessary #import I happened to notice

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@13817 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebKit/ChangeLog
WebKit/History/WebHistoryItem.m
WebKit/Misc/WebIconDatabase.m
WebKit/Misc/WebIconDatabasePrivate.h