Remove the Safari 2 -> Safari 3 icon database import code.
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 2 Oct 2012 07:05:17 +0000 (07:05 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 2 Oct 2012 07:05:17 +0000 (07:05 +0000)
https://bugs.webkit.org/show_bug.cgi?id=98113

Reviewed by Maciej Stachowiak.

Source/WebCore:

Remove notions of "importing an old database format" from the IconDatabase.

No new tests - Feature removed, and no previous tests covered it.

* loader/icon/IconDatabase.cpp:
(DefaultIconDatabaseClient):
(WebCore::IconDatabase::IconDatabase):
(WebCore):
(WebCore::IconDatabase::iconDatabaseSyncThread):
* loader/icon/IconDatabase.h:
(IconDatabase):
* loader/icon/IconDatabaseBase.h:
* loader/icon/IconDatabaseClient.h:
* WebCore.exp.in:

Source/WebKit/blackberry:

Nuke the performImport() IconDatabaseClient method.

* WebCoreSupport/IconDatabaseClientBlackBerry.cpp:
* WebCoreSupport/IconDatabaseClientBlackBerry.h:
(IconDatabaseClientBlackBerry):

Source/WebKit/efl:

Nuke the performImport() IconDatabaseClient method.

* WebCoreSupport/IconDatabaseClientEfl.cpp:
* WebCoreSupport/IconDatabaseClientEfl.h:

Source/WebKit/gtk:

Nuke the performImport() IconDatabaseClient method.

* webkit/webkitfavicondatabase.cpp:
(IconDatabaseClientGtk):

Source/WebKit/mac:

Nuke the performImport() IconDatabaseClient method, as well as the supporting methods.

* Misc/WebIconDatabase.mm:
* Misc/WebIconDatabaseInternal.h:
* Misc/WebIconDatabasePrivate.h:
* WebCoreSupport/WebIconDatabaseClient.h:
* WebCoreSupport/WebIconDatabaseClient.mm:
* WebKit.exp:

Source/WebKit/qt:

Nuke the performImport() IconDatabaseClient method.

* WebCoreSupport/IconDatabaseClientQt.cpp:
* WebCoreSupport/IconDatabaseClientQt.h:
(IconDatabaseClientQt):

Source/WebKit/win:

Nuke the performImport() IconDatabaseClient method.

* WebIconDatabase.cpp:
* WebIconDatabase.h:
(WebIconDatabase):

Source/WebKit2:

Nuke the performImport() IconDatabaseClient method.

* UIProcess/WebIconDatabase.cpp:
(WebKit):
* UIProcess/WebIconDatabase.h:
(WebIconDatabase):

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

30 files changed:
Source/WebCore/ChangeLog
Source/WebCore/WebCore.exp.in
Source/WebCore/loader/icon/IconDatabase.cpp
Source/WebCore/loader/icon/IconDatabase.h
Source/WebCore/loader/icon/IconDatabaseBase.h
Source/WebCore/loader/icon/IconDatabaseClient.h
Source/WebKit/blackberry/ChangeLog
Source/WebKit/blackberry/WebCoreSupport/IconDatabaseClientBlackBerry.cpp
Source/WebKit/blackberry/WebCoreSupport/IconDatabaseClientBlackBerry.h
Source/WebKit/efl/ChangeLog
Source/WebKit/efl/WebCoreSupport/IconDatabaseClientEfl.cpp
Source/WebKit/efl/WebCoreSupport/IconDatabaseClientEfl.h
Source/WebKit/gtk/ChangeLog
Source/WebKit/gtk/webkit/webkitfavicondatabase.cpp
Source/WebKit/mac/ChangeLog
Source/WebKit/mac/Misc/WebIconDatabase.mm
Source/WebKit/mac/Misc/WebIconDatabaseInternal.h
Source/WebKit/mac/Misc/WebIconDatabasePrivate.h
Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h
Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm
Source/WebKit/mac/WebKit.exp
Source/WebKit/qt/ChangeLog
Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.cpp
Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.h
Source/WebKit/win/ChangeLog
Source/WebKit/win/WebIconDatabase.cpp
Source/WebKit/win/WebIconDatabase.h
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/WebIconDatabase.cpp
Source/WebKit2/UIProcess/WebIconDatabase.h

index 02db03a..c547e4e 100644 (file)
@@ -1,3 +1,25 @@
+2012-10-01  Brady Eidson  <beidson@apple.com>
+
+        Remove the Safari 2 -> Safari 3 icon database import code.
+        https://bugs.webkit.org/show_bug.cgi?id=98113
+
+        Reviewed by Maciej Stachowiak.
+
+        Remove notions of "importing an old database format" from the IconDatabase.
+
+        No new tests - Feature removed, and no previous tests covered it.
+
+        * loader/icon/IconDatabase.cpp:
+        (DefaultIconDatabaseClient):
+        (WebCore::IconDatabase::IconDatabase):
+        (WebCore):
+        (WebCore::IconDatabase::iconDatabaseSyncThread):
+        * loader/icon/IconDatabase.h:
+        (IconDatabase):
+        * loader/icon/IconDatabaseBase.h:
+        * loader/icon/IconDatabaseClient.h:
+        * WebCore.exp.in:
+
 2012-10-01  Yoshifumi Inoue  <yosin@chromium.org>
 
         Adding Localizer::dateFormat() for multiple fields date/datetime input UI
index 5bbf8f2..c3426f7 100644 (file)
@@ -2219,8 +2219,6 @@ __ZN7WebCore12IconDatabase20retainedPageURLCountEv
 __ZN7WebCore12IconDatabase21releaseIconForPageURLERKN3WTF6StringE
 __ZN7WebCore12IconDatabase23defaultDatabaseFilenameEv
 __ZN7WebCore12IconDatabase23iconRecordCountWithDataEv
-__ZN7WebCore12IconDatabase23importIconURLForPageURLERKN3WTF6StringES4_
-__ZN7WebCore12IconDatabase24importIconDataForIconURLEN3WTF10PassRefPtrINS_12SharedBufferEEERKNS1_6StringE
 __ZN7WebCore12IconDatabase25setPrivateBrowsingEnabledEb
 __ZN7WebCore12IconDatabase27checkIntegrityBeforeOpeningEv
 __ZN7WebCore12IconDatabase5closeEv
index d70ecb5..94a4b90 100644 (file)
@@ -93,7 +93,6 @@ static String urlForLogging(const String& url)
 class DefaultIconDatabaseClient : public IconDatabaseClient {
     WTF_MAKE_FAST_ALLOCATED;
 public:
-    virtual bool performImport() { return true; }
     virtual void didImportIconURLForPageURL(const String&) { } 
     virtual void didImportIconDataForPageURL(const String&) { }
     virtual void didChangeIconForPageURL(const String&) { }
@@ -805,8 +804,6 @@ IconDatabase::IconDatabase()
     , m_retainOrReleaseIconRequested(false)
     , m_initialPruningComplete(false)
     , m_client(defaultClient())
-    , m_imported(false)
-    , m_isImportedSet(false)
 {
     LOG(IconDatabase, "Creating IconDatabase %p", this);
     ASSERT(isMainThread());
@@ -968,27 +965,6 @@ PageURLRecord* IconDatabase::getOrCreatePageURLRecord(const String& pageURL)
 // *** Sync Thread Only ***
 // ************************
 
-void IconDatabase::importIconURLForPageURL(const String& iconURL, const String& pageURL)
-{
-    ASSERT_ICON_SYNC_THREAD();
-    
-    // This function is only for setting actual existing url mappings so assert that neither of these URLs are empty
-    ASSERT(!iconURL.isEmpty());
-    ASSERT(!pageURL.isEmpty());
-    ASSERT(documentCanHaveIcon(pageURL));
-    
-    setIconURLForPageURLInSQLDatabase(iconURL, pageURL);    
-}
-
-void IconDatabase::importIconDataForIconURL(PassRefPtr<SharedBuffer> data, const String& iconURL)
-{
-    ASSERT_ICON_SYNC_THREAD();
-    
-    ASSERT(!iconURL.isEmpty());
-
-    writeIconSnapshotToSQLDatabase(IconSnapshot(iconURL, (int)currentTime(), data.get()));
-}
-
 bool IconDatabase::shouldStopThreadActivity() const
 {
     ASSERT_ICON_SYNC_THREAD();
@@ -1060,32 +1036,6 @@ void IconDatabase::iconDatabaseSyncThread()
     LOG(IconDatabase, "(THREAD) performOpenInitialization() took %.4f seconds, now %.4f seconds from thread start", newStamp - timeStamp, newStamp - startTime);
     timeStamp = newStamp;
 #endif 
-
-    if (!imported()) {
-        LOG(IconDatabase, "(THREAD) Performing Safari2 import procedure");
-        SQLiteTransaction importTransaction(m_syncDB);
-        importTransaction.begin();
-        
-        // Commit the transaction only if the import completes (the import should be atomic)
-        if (m_client->performImport()) {
-            setImported(true);
-            importTransaction.commit();
-        } else {
-            LOG(IconDatabase, "(THREAD) Safari 2 import was cancelled");
-            importTransaction.rollback();
-        }
-        
-        if (shouldStopThreadActivity()) {
-            syncThreadMainLoop();
-            return;
-        }
-            
-#if !LOG_DISABLED
-        newStamp = currentTime();
-        LOG(IconDatabase, "(THREAD) performImport() took %.4f seconds, now %.4f seconds from thread start", newStamp - timeStamp, newStamp - startTime);
-        timeStamp = newStamp;
-#endif 
-    }
         
     // Uncomment the following line to simulate a long lasting URL import (*HUGE* icon databases, or network home directories)
     // while (currentTime() - timeStamp < 10);
@@ -1914,54 +1864,6 @@ void* IconDatabase::cleanupSyncThread()
     return 0;
 }
 
-bool IconDatabase::imported()
-{
-    ASSERT_ICON_SYNC_THREAD();
-    
-    if (m_isImportedSet)
-        return m_imported;
-        
-    SQLiteStatement query(m_syncDB, "SELECT IconDatabaseInfo.value FROM IconDatabaseInfo WHERE IconDatabaseInfo.key = \"ImportedSafari2Icons\";");
-    if (query.prepare() != SQLResultOk) {
-        LOG_ERROR("Unable to prepare imported statement");
-        return false;
-    }
-    
-    int result = query.step();
-    if (result == SQLResultRow)
-        result = query.getColumnInt(0);
-    else {
-        if (result != SQLResultDone)
-            LOG_ERROR("imported statement failed");
-        result = 0;
-    }
-    
-    m_isImportedSet = true;
-    return m_imported = result;
-}
-
-void IconDatabase::setImported(bool import)
-{
-    ASSERT_ICON_SYNC_THREAD();
-
-    m_imported = import;
-    m_isImportedSet = true;
-    
-    String queryString = import ?
-        "INSERT INTO IconDatabaseInfo (key, value) VALUES (\"ImportedSafari2Icons\", 1);" :
-        "INSERT INTO IconDatabaseInfo (key, value) VALUES (\"ImportedSafari2Icons\", 0);";
-        
-    SQLiteStatement query(m_syncDB, queryString);
-    
-    if (query.prepare() != SQLResultOk) {
-        LOG_ERROR("Unable to prepare set imported statement");
-        return;
-    }    
-    
-    if (query.step() != SQLResultDone)
-        LOG_ERROR("set imported statement failed");
-}
-
 // readySQLiteStatement() handles two things
 // 1 - If the SQLDatabase& argument is different, the statement must be destroyed and remade.  This happens when the user
 //     switches to and from private browsing
index df440b7..0a72422 100644 (file)
@@ -192,10 +192,6 @@ private:
 
 // *** Sync Thread Only ***
 public:
-    // Should be used only on the sync thread and only by the Safari 2 Icons import procedure
-    virtual void importIconURLForPageURL(const String& iconURL, const String& pageURL);
-    virtual void importIconDataForIconURL(PassRefPtr<SharedBuffer> data, const String& iconURL);
-    
     virtual bool shouldStopThreadActivity() const;
 
 private:    
@@ -217,10 +213,6 @@ private:
     void* cleanupSyncThread();
     void performRetainIconForPageURL(const String&, int retainCount);
     void performReleaseIconForPageURL(const String&, int releaseCount);
-
-    // Record (on disk) whether or not Safari 2-style icons were imported (once per dataabse)
-    bool imported();
-    void setImported(bool);
     
     bool wasExcludedFromBackup();
     void setWasExcludedFromBackup();
@@ -249,10 +241,6 @@ private:
     
     SQLiteDatabase m_syncDB;
     
-    // Track whether the "Safari 2" import is complete and/or set in the database
-    bool m_imported;
-    bool m_isImportedSet;
-    
     OwnPtr<SQLiteStatement> m_setIconIDForPageURLStatement;
     OwnPtr<SQLiteStatement> m_removePageURLStatement;
     OwnPtr<SQLiteStatement> m_getIconIDForIconURLStatement;
index 56cb03c..040fc47 100644 (file)
@@ -198,8 +198,6 @@ public:
     virtual size_t iconRecordCount() { return 0; }
     virtual size_t iconRecordCountWithData() { return 0; }
 
-    virtual void importIconURLForPageURL(const String&, const String&) { }
-    virtual void importIconDataForIconURL(PassRefPtr<SharedBuffer>, const String&) { }
     virtual bool shouldStopThreadActivity() const { return true; }
 
     virtual bool open(const String& directory, const String& filename);
index 3d5f349..70494ec 100644 (file)
@@ -37,7 +37,6 @@ class IconDatabaseClient {
 public:
     virtual ~IconDatabaseClient() { }
 
-    virtual bool performImport() = 0;
     virtual void didImportIconURLForPageURL(const String&) = 0;
     virtual void didImportIconDataForPageURL(const String&) = 0;
     virtual void didChangeIconForPageURL(const String&) = 0;
index bbfc484..217c7da 100644 (file)
@@ -1,3 +1,16 @@
+2012-10-01  Brady Eidson  <beidson@apple.com>
+
+        Remove the Safari 2 -> Safari 3 icon database import code.
+        https://bugs.webkit.org/show_bug.cgi?id=98113
+
+        Reviewed by Maciej Stachowiak.
+
+        Nuke the performImport() IconDatabaseClient method.
+
+        * WebCoreSupport/IconDatabaseClientBlackBerry.cpp:
+        * WebCoreSupport/IconDatabaseClientBlackBerry.h:
+        (IconDatabaseClientBlackBerry):
+
 2012-10-01  Jakob Petsovits  <jpetsovits@rim.com>
 
         [BlackBerry] Remove unused hasPendingScrollOrZoomEvent() interface.
index 4728146..da95cb0 100644 (file)
@@ -57,11 +57,6 @@ bool IconDatabaseClientBlackBerry::initIconDatabase(const BlackBerry::WebKit::We
     return m_initState == InitializeSucceeded;
 }
 
-bool IconDatabaseClientBlackBerry::performImport()
-{
-    return true;
-}
-
 void IconDatabaseClientBlackBerry::didRemoveAllIcons()
 {
 }
index c72a450..dc6d02d 100644 (file)
@@ -34,7 +34,6 @@ public:
     static IconDatabaseClientBlackBerry* getInstance();
     bool initIconDatabase(const BlackBerry::WebKit::WebSettings*);
 
-    virtual bool performImport();
     virtual void didRemoveAllIcons();
     virtual void didImportIconURLForPageURL(const String&);
     virtual void didImportIconDataForPageURL(const String&);
index 4163773..d62b8ef 100644 (file)
@@ -1,3 +1,15 @@
+2012-10-01  Brady Eidson  <beidson@apple.com>
+
+        Remove the Safari 2 -> Safari 3 icon database import code.
+        https://bugs.webkit.org/show_bug.cgi?id=98113
+
+        Reviewed by Maciej Stachowiak.
+
+        Nuke the performImport() IconDatabaseClient method.
+
+        * WebCoreSupport/IconDatabaseClientEfl.cpp:
+        * WebCoreSupport/IconDatabaseClientEfl.h:
+
 2012-09-28  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
 
         Code inside FrameLoaderClient::canShowMIMEType() implementations can be shared among different WK ports
index c9e4328..4e35137 100644 (file)
 
 namespace WebCore {
 
-bool IconDatabaseClientEfl::performImport()
-{
-    notImplemented();
-    return true;
-}
-
 void IconDatabaseClientEfl::didRemoveAllIcons()
 {
     notImplemented();
index 5157614..c14cdba 100644 (file)
@@ -28,7 +28,6 @@ namespace WebCore {
 
 class IconDatabaseClientEfl : public IconDatabaseClient {
 public:
-    virtual bool performImport();
     virtual void didRemoveAllIcons();
     virtual void didImportIconURLForPageURL(const String&);
     virtual void didImportIconDataForPageURL(const String&);
index 6ea54a0..7f73b3c 100644 (file)
@@ -1,3 +1,15 @@
+2012-10-01  Brady Eidson  <beidson@apple.com>
+
+        Remove the Safari 2 -> Safari 3 icon database import code.
+        https://bugs.webkit.org/show_bug.cgi?id=98113
+
+        Reviewed by Maciej Stachowiak.
+
+        Nuke the performImport() IconDatabaseClient method.
+
+        * webkit/webkitfavicondatabase.cpp:
+        (IconDatabaseClientGtk):
+
 2012-10-01  Arnaud Renevier  <a.renevier@sisa.samsung.com>
 
         [Gtk] crash when accelerated composition is turned off
index 6babfe4..c62ab37 100644 (file)
@@ -80,7 +80,6 @@ static void webkitFaviconDatabaseClose(WebKitFaviconDatabase* database);
 class IconDatabaseClientGtk : public IconDatabaseClient {
 public:
     // IconDatabaseClient interface
-    virtual bool performImport() { return true; }
     virtual void didRemoveAllIcons() { };
 
     // Called when an icon is requested while the initial import is
index 66e29c9..46fc90d 100644 (file)
@@ -1,3 +1,19 @@
+2012-10-01  Brady Eidson  <beidson@apple.com>
+
+        Remove the Safari 2 -> Safari 3 icon database import code.
+        https://bugs.webkit.org/show_bug.cgi?id=98113
+
+        Reviewed by Maciej Stachowiak.
+
+        Nuke the performImport() IconDatabaseClient method, as well as the supporting methods.
+
+        * Misc/WebIconDatabase.mm:
+        * Misc/WebIconDatabaseInternal.h:
+        * Misc/WebIconDatabasePrivate.h:
+        * WebCoreSupport/WebIconDatabaseClient.h:
+        * WebCoreSupport/WebIconDatabaseClient.mm:
+        * WebKit.exp:
+
 2012-09-28  Anders Carlsson  <andersca@apple.com>
 
         Remove support for method overloading from bridge code
index fee30f7..bbf6ec3 100644 (file)
@@ -56,7 +56,6 @@ NSString *WebIconNotificationUserInfoURLKey =              @"WebIconNotification
 NSString *WebIconDatabaseDidRemoveAllIconsNotification =   @"WebIconDatabaseDidRemoveAllIconsNotification";
 
 NSString *WebIconDatabaseDirectoryDefaultsKey = @"WebIconDatabaseDirectoryDefaultsKey";
-NSString *WebIconDatabaseImportDirectoryDefaultsKey = @"WebIconDatabaseImportDirectoryDefaultsKey";
 NSString *WebIconDatabaseEnabledDefaultsKey =   @"WebIconDatabaseEnabled";
 
 NSString *WebIconDatabasePath = @"~/Library/Icons";
@@ -454,96 +453,6 @@ static WebIconDatabaseClient* defaultClient()
 #endif
 }
 
-// This hashing String->filename algorithm came from WebFileDatabase.m and is what was used in the 
-// WebKit Icon Database
-static void legacyIconDatabaseFilePathForKey(id key, char *buffer)
-{
-    const char *s;
-    UInt32 hash1;
-    UInt32 hash2;
-    CFIndex len;
-    CFIndex cnt;
-    
-    s = [[[[key description] lowercaseString] stringByStandardizingPath] UTF8String];
-    len = strlen(s);
-
-    // compute first hash    
-    hash1 = len;
-    for (cnt = 0; cnt < len; cnt++) {
-        hash1 += (hash1 << 8) + s[cnt];
-    }
-    hash1 += (hash1 << (len & 31));
-
-    // compute second hash    
-    hash2 = len;
-    for (cnt = 0; cnt < len; cnt++) {
-        hash2 = (37 * hash2) ^ s[cnt];
-    }
-
-#ifdef __LP64__
-    snprintf(buffer, UniqueFilePathSize, "%.2u/%.2u/%.10u-%.10u.cache", ((hash1 & 0xff) >> 4), ((hash2 & 0xff) >> 4), hash1, hash2);
-#else
-    snprintf(buffer, UniqueFilePathSize, "%.2lu/%.2lu/%.10lu-%.10lu.cache", ((hash1 & 0xff) >> 4), ((hash2 & 0xff) >> 4), hash1, hash2);
-#endif
-}
-
-// This method of getting an object from the filesystem is taken from the old 
-// WebKit Icon Database
-static id objectFromPathForKey(NSString *databasePath, id key)
-{
-    ASSERT(key);
-    id result = nil;
-
-    // Use the key->filename hashing the old WebKit IconDatabase used
-    char uniqueKey[UniqueFilePathSize];    
-    legacyIconDatabaseFilePathForKey(key, uniqueKey);
-    
-    // Get the data from this file and setup for the un-archiving
-    NSString *filePath = [[NSString alloc] initWithFormat:@"%@/%s", databasePath, uniqueKey];
-    NSData *data = [[NSData alloc] initWithContentsOfFile:filePath];
-    NSUnarchiver *unarchiver = nil;
-    
-    @try {
-        if (data) {
-            unarchiver = [[NSUnarchiver alloc] initForReadingWithData:data];
-            if (unarchiver) {
-                id fileKey = [unarchiver decodeObject];
-                if ([fileKey isEqual:key]) {
-                    id object = [unarchiver decodeObject];
-                    if (object) {
-                        // Decoded objects go away when the unarchiver does, so we need to
-                        // retain this so we can return it to our caller.
-                        result = [[object retain] autorelease];
-                        LOG(IconDatabase, "read disk cache file - %@", key);
-                    }
-                }
-            }
-        }
-    } @catch (NSException *localException) {
-        LOG(IconDatabase, "cannot unarchive cache file - %@", key);
-        result = nil;
-    }
-
-    [unarchiver release];
-    [data release];
-    [filePath release];
-    
-    return result;
-}
-
-static NSData* iconDataFromPathForIconURL(NSString *databasePath, NSString *iconURLString)
-{
-    ASSERT(iconURLString);
-    ASSERT(databasePath);
-    
-    NSData *iconData = objectFromPathForKey(databasePath, iconURLString);
-    
-    if ((id)iconData == (id)[NSNull null]) 
-        return nil;
-        
-    return iconData;
-}
-
 - (NSString *)_databaseDirectory
 {
     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
@@ -563,124 +472,6 @@ static NSData* iconDataFromPathForIconURL(NSString *databasePath, NSString *icon
 @implementation WebIconDatabasePrivate
 @end
 
-@interface WebCocoaThreadingEnabler : NSObject {
-}
-+ (void)enableThreading;
-
-- (void)threadEnablingSelector:(id)arg;
-@end
-
-@implementation WebCocoaThreadingEnabler
-
-- (void)threadEnablingSelector:(id)arg
-{
-    return;
-}
-
-+ (void)enableThreading
-{
-    WebCocoaThreadingEnabler *enabler = [[WebCocoaThreadingEnabler alloc] init];
-    [NSThread detachNewThreadSelector:@selector(threadEnablingSelector:) toTarget:enabler withObject:nil];
-    [enabler release];
-}
-
-@end
-
-bool importToWebCoreFormat()
-{
-    // Since this is running on a secondary POSIX thread and Cocoa cannot be used multithreaded unless an NSThread has been detached,
-    // make sure that happens here for all WebKit clients
-    if (![NSThread isMultiThreaded])
-        [WebCocoaThreadingEnabler enableThreading];
-    ASSERT([NSThread isMultiThreaded]);    
-    
-    // Get the directory the old icon database *should* be in
-    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
-    NSString *databaseDirectory = [defaults objectForKey:WebIconDatabaseImportDirectoryDefaultsKey];
-    
-    if (!databaseDirectory)
-        databaseDirectory = [defaults objectForKey:WebIconDatabaseDirectoryDefaultsKey];
-        
-    if (!databaseDirectory) {
-        databaseDirectory = WebIconDatabasePath;
-        [defaults setObject:databaseDirectory forKey:WebIconDatabaseDirectoryDefaultsKey];
-    }
-    databaseDirectory = [databaseDirectory stringByExpandingTildeInPath];
-
-    // With this directory, get the PageURLToIconURL map that was saved to disk
-    NSMutableDictionary *pageURLToIconURL = objectFromPathForKey(databaseDirectory, WebURLToIconURLKey);
-
-    // If the retrieved object was not a valid NSMutableDictionary, then we have no valid
-    // icons to import
-    if (![pageURLToIconURL isKindOfClass:[NSMutableDictionary class]])
-        pageURLToIconURL = nil;
-    
-    if (!pageURLToIconURL) {
-        // We found no Safari-2-style icon database. Bail out immediately and do not delete everything
-        // in whatever directory we ended up looking in! Return true so we won't bother to check again.
-        // FIXME: We can probably delete all of the code to convert Safari-2-style icon databases now.
-        return true;
-    }
-    
-    NSEnumerator *enumerator = [pageURLToIconURL keyEnumerator];
-    NSString *url, *iconURL;
-    
-    // First, we'll iterate through the PageURL->IconURL map
-    while ((url = [enumerator nextObject]) != nil) {
-        iconURL = [pageURLToIconURL objectForKey:url];
-        if (!iconURL)
-            continue;
-        iconDatabase().importIconURLForPageURL(iconURL, url);
-        if (iconDatabase().shouldStopThreadActivity())
-            return false;
-    }    
-
-    // Second, we'll get a list of the unique IconURLs we have
-    NSMutableSet *iconsOnDiskWithURLs = [NSMutableSet setWithArray:[pageURLToIconURL allValues]];
-    enumerator = [iconsOnDiskWithURLs objectEnumerator];
-    NSData *iconData;
-    
-    // And iterate through them, adding the icon data to the new icon database
-    while ((url = [enumerator nextObject]) != nil) {
-        iconData = iconDataFromPathForIconURL(databaseDirectory, url);
-        if (iconData)
-            iconDatabase().importIconDataForIconURL(SharedBuffer::wrapNSData(iconData), url);
-        else {
-            // This really *shouldn't* happen, so it'd be good to track down why it might happen in a debug build
-            // however, we do know how to handle it gracefully in release
-            LOG_ERROR("%@ is marked as having an icon on disk, but we couldn't get the data for it", url);
-            iconDatabase().importIconDataForIconURL(0, url);
-        }
-        if (iconDatabase().shouldStopThreadActivity())
-            return false;
-    }
-    
-    // After we're done importing old style icons over to webcore icons, we delete the entire directory hierarchy 
-    // for the old icon DB (skipping the new iconDB if it is in the same directory)
-    NSFileManager *fileManager = [NSFileManager defaultManager];
-    enumerator = [[fileManager contentsOfDirectoryAtPath:databaseDirectory error:NULL] objectEnumerator];
-
-    NSString *databaseFilename = IconDatabase::defaultDatabaseFilename();
-
-    BOOL foundIconDB = NO;
-    NSString *file;
-    while ((file = [enumerator nextObject]) != nil) {
-        if ([file caseInsensitiveCompare:databaseFilename] == NSOrderedSame) {
-            foundIconDB = YES;
-            continue;
-        }
-        NSString *filePath = [databaseDirectory stringByAppendingPathComponent:file];
-        if (![fileManager removeItemAtPath:filePath error:NULL])
-            LOG_ERROR("Failed to delete %@ from old icon directory", filePath);
-    }
-    
-    // If the new iconDB wasn't in that directory, we can delete the directory itself
-    if (!foundIconDB)
-        rmdir([databaseDirectory fileSystemRepresentation]);
-    
-    return true;
-}
-
 NSImage *webGetNSImage(Image* image, NSSize size)
 {
     ASSERT_MAIN_THREAD();
index 6c0ae50..498fa75 100644 (file)
@@ -47,5 +47,4 @@ namespace WebCore {
 - (void)_startUpIconDatabase;
 @end
 
-extern bool importToWebCoreFormat();
 NSImage *webGetNSImage(WebCore::Image*, NSSize);
index 8fba88b..e7bdadb 100644 (file)
@@ -37,9 +37,6 @@
 // releaseIconForURL: in response to this notification.
 extern NSString *WebIconDatabaseDidRemoveAllIconsNotification;
 
-// Key to store the path to look for old style icons in to convert to the new icon db
-extern NSString *WebIconDatabaseImportDirectoryDefaultsKey;
-
 @interface WebIconDatabase (WebPendingPublic)
 
 /*!
index 1705b1a..97b1763 100644 (file)
@@ -31,7 +31,6 @@
 
 class WebIconDatabaseClient : public WebCore::IconDatabaseClient {
 public:
-    virtual bool performImport() OVERRIDE;
     virtual void didRemoveAllIcons() OVERRIDE;
     virtual void didImportIconURLForPageURL(const String&) OVERRIDE;
     virtual void didImportIconDataForPageURL(const String&) OVERRIDE;
index db0c77e..85ec2ab 100644 (file)
 
 #if ENABLE(ICONDATABASE)
 
-bool WebIconDatabaseClient::performImport()
-{
-    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-    bool result = importToWebCoreFormat();
-    [pool drain];
-    return result;
-}
-
 void WebIconDatabaseClient::didRemoveAllIcons()
 {
     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
index 0490080..05cb327 100644 (file)
@@ -90,7 +90,6 @@ _WebHistorySavedNotification
 _WebIconDatabaseDidAddIconNotification
 _WebIconDatabaseDidRemoveAllIconsNotification
 _WebIconDatabaseDirectoryDefaultsKey
-_WebIconDatabaseImportDirectoryDefaultsKey
 _WebIconLargeSize
 _WebIconMediumSize
 _WebIconNotificationUserInfoURLKey
index 7ade4ad..e531f2a 100644 (file)
@@ -1,3 +1,16 @@
+2012-10-01  Brady Eidson  <beidson@apple.com>
+
+        Remove the Safari 2 -> Safari 3 icon database import code.
+        https://bugs.webkit.org/show_bug.cgi?id=98113
+
+        Reviewed by Maciej Stachowiak.
+
+        Nuke the performImport() IconDatabaseClient method.
+
+        * WebCoreSupport/IconDatabaseClientQt.cpp:
+        * WebCoreSupport/IconDatabaseClientQt.h:
+        (IconDatabaseClientQt):
+
 2012-09-28  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
 
         Code inside FrameLoaderClient::canShowMIMEType() implementations can be shared among different WK ports
index baaecae..01d9faa 100644 (file)
@@ -53,11 +53,6 @@ IconDatabaseClientQt::~IconDatabaseClientQt()
 {
 }
 
-bool IconDatabaseClientQt::performImport()
-{
-    return true;
-}
-
 void IconDatabaseClientQt::didRemoveAllIcons()
 {
 }
index 59e9839..6ac2119 100644 (file)
@@ -38,7 +38,6 @@ class IconDatabaseClientQt : public QObject, public IconDatabaseClient {
 public:
     static IconDatabaseClientQt* instance();
 
-    virtual bool performImport();
     virtual void didRemoveAllIcons();
     virtual void didImportIconURLForPageURL(const String&);
     virtual void didImportIconDataForPageURL(const String&);
index ba6a5b5..68e885a 100644 (file)
@@ -1,3 +1,16 @@
+2012-10-01  Brady Eidson  <beidson@apple.com>
+
+        Remove the Safari 2 -> Safari 3 icon database import code.
+        https://bugs.webkit.org/show_bug.cgi?id=98113
+
+        Reviewed by Maciej Stachowiak.
+
+        Nuke the performImport() IconDatabaseClient method.
+
+        * WebIconDatabase.cpp:
+        * WebIconDatabase.h:
+        (WebIconDatabase):
+
 2012-09-25  Beth Dakin  <bdakin@apple.com>
 
         https://bugs.webkit.org/show_bug.cgi?id=95397
index cddc40d..25d7ec0 100644 (file)
@@ -316,12 +316,6 @@ HBITMAP WebIconDatabase::getOrCreateDefaultIconBitmap(LPSIZE size)
 
 // IconDatabaseClient
 
-bool WebIconDatabase::performImport()
-{
-    // Windows doesn't do any old-style database importing.
-    return true;
-}
-
 void WebIconDatabase::didRemoveAllIcons()
 {
     // Queueing the empty string is a special way of saying "this queued notification is the didRemoveAllIcons notification"
index a895b81..0fdab77 100644 (file)
@@ -104,7 +104,6 @@ public:
         /* [retval][out] */ BOOL* result);
 
     // IconDatabaseClient
-    virtual bool performImport();
     virtual void didRemoveAllIcons();
     virtual void didImportIconURLForPageURL(const WTF::String&);
     virtual void didImportIconDataForPageURL(const WTF::String&);
index b9efd2a..cb7378a 100644 (file)
@@ -1,3 +1,17 @@
+2012-10-01  Brady Eidson  <beidson@apple.com>
+
+        Remove the Safari 2 -> Safari 3 icon database import code.
+        https://bugs.webkit.org/show_bug.cgi?id=98113
+
+        Reviewed by Maciej Stachowiak.
+
+        Nuke the performImport() IconDatabaseClient method.
+
+        * UIProcess/WebIconDatabase.cpp:
+        (WebKit):
+        * UIProcess/WebIconDatabase.h:
+        (WebIconDatabase):
+
 2012-10-01  Christophe Dumez  <christophe.dumez@intel.com>
 
         Fix compilation warnings
index 0fe6369..ed480e7 100644 (file)
@@ -234,11 +234,6 @@ void WebIconDatabase::initializeIconDatabaseClient(const WKIconDatabaseClient* c
 }
 
 // WebCore::IconDatabaseClient
-bool WebIconDatabase::performImport()
-{
-    // WebKit2 icon database doesn't currently support importing any old icon database formats.
-    return true;
-}
 
 void WebIconDatabase::didImportIconURLForPageURL(const String& pageURL)
 {
index b725405..b07a7db 100644 (file)
@@ -91,7 +91,6 @@ public:
     void initializeIconDatabaseClient(const WKIconDatabaseClient*);
 
     // WebCore::IconDatabaseClient
-    virtual bool performImport();
     virtual void didImportIconURLForPageURL(const String&);
     virtual void didImportIconDataForPageURL(const String&);
     virtual void didChangeIconForPageURL(const String&);