diff options
Diffstat (limited to 'WebKit/mac/Storage/WebDatabaseManager.mm')
-rw-r--r-- | WebKit/mac/Storage/WebDatabaseManager.mm | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/WebKit/mac/Storage/WebDatabaseManager.mm b/WebKit/mac/Storage/WebDatabaseManager.mm deleted file mode 100644 index fa9eea6..0000000 --- a/WebKit/mac/Storage/WebDatabaseManager.mm +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import "WebDatabaseManagerPrivate.h" -#import "WebDatabaseManagerInternal.h" - -#import "WebDatabaseTrackerClient.h" -#import "WebSecurityOriginInternal.h" - -#import <WebCore/DatabaseTracker.h> -#import <WebCore/SecurityOrigin.h> - -using namespace WebCore; - -NSString *WebDatabaseDirectoryDefaultsKey = @"WebDatabaseDirectory"; - -NSString *WebDatabaseDisplayNameKey = @"WebDatabaseDisplayNameKey"; -NSString *WebDatabaseExpectedSizeKey = @"WebDatabaseExpectedSizeKey"; -NSString *WebDatabaseUsageKey = @"WebDatabaseUsageKey"; - -NSString *WebDatabaseDidModifyOriginNotification = @"WebDatabaseDidModifyOriginNotification"; -NSString *WebDatabaseDidModifyDatabaseNotification = @"WebDatabaseDidModifyDatabaseNotification"; -NSString *WebDatabaseIdentifierKey = @"WebDatabaseIdentifierKey"; - -@implementation WebDatabaseManager - -+ (WebDatabaseManager *) sharedWebDatabaseManager -{ - static WebDatabaseManager *sharedManager = [[WebDatabaseManager alloc] init]; - return sharedManager; -} - -- (NSArray *)origins -{ - Vector<RefPtr<SecurityOrigin> > coreOrigins; - DatabaseTracker::tracker().origins(coreOrigins); - NSMutableArray *webOrigins = [[NSMutableArray alloc] initWithCapacity:coreOrigins.size()]; - - for (unsigned i = 0; i < coreOrigins.size(); ++i) { - WebSecurityOrigin *webOrigin = [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:coreOrigins[i].get()]; - [webOrigins addObject:webOrigin]; - [webOrigin release]; - } - - return [webOrigins autorelease]; -} - -- (NSArray *)databasesWithOrigin:(WebSecurityOrigin *)origin -{ - Vector<String> nameVector; - if (!DatabaseTracker::tracker().databaseNamesForOrigin([origin _core], nameVector)) - return nil; - - NSMutableArray *names = [[NSMutableArray alloc] initWithCapacity:nameVector.size()]; - - for (unsigned i = 0; i < nameVector.size(); ++i) - [names addObject:(NSString *)nameVector[i]]; - - return [names autorelease]; -} - -- (NSDictionary *)detailsForDatabase:(NSString *)databaseIdentifier withOrigin:(WebSecurityOrigin *)origin -{ - static id keys[3] = {WebDatabaseDisplayNameKey, WebDatabaseExpectedSizeKey, WebDatabaseUsageKey}; - - DatabaseDetails details = DatabaseTracker::tracker().detailsForNameAndOrigin(databaseIdentifier, [origin _core]); - if (details.name().isNull()) - return nil; - - id objects[3]; - objects[0] = details.displayName().isEmpty() ? databaseIdentifier : (NSString *)details.displayName(); - objects[1] = [NSNumber numberWithUnsignedLongLong:details.expectedUsage()]; - objects[2] = [NSNumber numberWithUnsignedLongLong:details.currentUsage()]; - - return [[[NSDictionary alloc] initWithObjects:objects forKeys:keys count:3] autorelease]; -} - -- (void)deleteAllDatabases -{ - DatabaseTracker::tracker().deleteAllDatabases(); -} - -- (void)deleteOrigin:(WebSecurityOrigin *)origin -{ - DatabaseTracker::tracker().deleteOrigin([origin _core]); -} - -- (void)deleteDatabase:(NSString *)databaseIdentifier withOrigin:(WebSecurityOrigin *)origin -{ - DatabaseTracker::tracker().deleteDatabase([origin _core], databaseIdentifier); -} - -@end - -void WebKitInitializeDatabasesIfNecessary() -{ - static BOOL initialized = NO; - if (initialized) - return; - - // Set the database root path in WebCore - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - NSString *databasesDirectory = [defaults objectForKey:WebDatabaseDirectoryDefaultsKey]; - if (!databasesDirectory || ![databasesDirectory isKindOfClass:[NSString class]]) - databasesDirectory = @"~/Library/WebKit/Databases"; - - DatabaseTracker::tracker().setDatabaseDirectoryPath([databasesDirectory stringByStandardizingPath]); - - // Set the DatabaseTrackerClient - DatabaseTracker::tracker().setClient(WebDatabaseTrackerClient::sharedWebDatabaseTrackerClient()); - - initialized = YES; -} |