<rdar://problem/5436617> Favicons sometimes don't show up even when they are
authoradachan <adachan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Oct 2007 16:52:03 +0000 (16:52 +0000)
committeradachan <adachan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Oct 2007 16:52:03 +0000 (16:52 +0000)
        in the database
        - A client can try to retain an icon for a page before the database is actually
        opened.  Since isOpened() is not a requirement to retain an icon, remove the check
        for that.  Instead, we'll check to make sure whether this database is enabled
        before proceeding.

        Reviewed by Brady.

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::retainIconForPageURL):
        (WebCore::IconDatabase::releaseIconForPageURL): only check isOpen() before we
        schedule for a sync.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@26068 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/loader/icon/IconDatabase.cpp

index 19ec69fabdb0852edbfc5a23b81d8d4bc064be56..8d1e65610771b71d3a908904ba2ed4351655948c 100644 (file)
@@ -1,3 +1,19 @@
+2007-10-05  Ada Chan  <adachan@apple.com>
+
+        <rdar://problem/5436617> Favicons sometimes don't show up even when they are
+        in the database
+        - A client can try to retain an icon for a page before the database is actually
+        opened.  Since isOpened() is not a requirement to retain an icon, remove the check
+        for that.  Instead, we'll check to make sure whether this database is enabled
+        before proceeding.
+
+        Reviewed by Brady.
+
+        * loader/icon/IconDatabase.cpp:
+        (WebCore::IconDatabase::retainIconForPageURL):
+        (WebCore::IconDatabase::releaseIconForPageURL): only check isOpen() before we
+        schedule for a sync.
+
 2007-10-05  Lars Knoll  <lars@trolltech.com>
 
         Reviewed by olliej.
index c918e684d100fb5b3c88adc05bcad64c6d85bf94..d3d58816cfc97c4dccdc20bfc4c4d6449802779d 100644 (file)
@@ -430,7 +430,7 @@ void IconDatabase::retainIconForPageURL(const String& pageURLOriginal)
     
     // Cannot do anything with pageURLOriginal that would end up storing it without deep copying first
     
-    if (!isOpen() || pageURLOriginal.isEmpty())
+    if (!isEnabled() || pageURLOriginal.isEmpty())
         return;
        
     MutexLocker locker(m_urlAndIconLock);
@@ -474,7 +474,7 @@ void IconDatabase::releaseIconForPageURL(const String& pageURLOriginal)
         
     // Cannot do anything with pageURLOriginal that would end up storing it without deep copying first
     
-    if (!isOpen() || pageURLOriginal.isEmpty())
+    if (!isEnabled() || pageURLOriginal.isEmpty())
         return;
     
     MutexLocker locker(m_urlAndIconLock);
@@ -533,7 +533,8 @@ void IconDatabase::releaseIconForPageURL(const String& pageURLOriginal)
     
     delete pageRecord;
 
-    scheduleOrDeferSyncTimer();
+    if (isOpen())
+        scheduleOrDeferSyncTimer();
 }
 
 void IconDatabase::setIconDataForIconURL(PassRefPtr<SharedBuffer> dataOriginal, const String& iconURLOriginal)