Skip to content
  • mark.lam@apple.com's avatar
    Encapsulate externally used webdatabase APIs in DatabaseManager. · 45beb075
    mark.lam@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=104741.
    
    Reviewed by Sam Weinig.
    
    Use DatabaseManager instead of accessing DatabaseTracker, AbstractDatabase,
    and DatabaseContext directly. This is to prepare for upcoming webkit2
    refactoring.
    
    Source/WebCore: 
    
    No new tests.
    
    * CMakeLists.txt:
    * Modules/webdatabase/DatabaseManager.cpp: Added.
    (WebCore::DatabaseManager::manager):
    (WebCore::DatabaseManager::DatabaseManager):
    (WebCore::DatabaseManager::initialize):
    (WebCore::DatabaseManager::setClient):
    (WebCore::DatabaseManager::isAvailable):
    (WebCore::DatabaseManager::setIsAvailable):
    (WebCore::DatabaseManager::hasOpenDatabases):
    (WebCore::DatabaseManager::stopDatabases):
    (WebCore::DatabaseManager::fullPathForDatabase):
    (WebCore::DatabaseManager::databaseDirectoryPath):
    (WebCore::DatabaseManager::setDatabaseDirectoryPath):
    (WebCore::DatabaseManager::hasEntryForOrigin):
    (WebCore::DatabaseManager::origins):
    (WebCore::DatabaseManager::databaseNamesForOrigin):
    (WebCore::DatabaseManager::detailsForNameAndOrigin):
    (WebCore::DatabaseManager::usageForOrigin):
    (WebCore::DatabaseManager::quotaForOrigin):
    (WebCore::DatabaseManager::setQuota):
    (WebCore::DatabaseManager::deleteAllDatabases):
    (WebCore::DatabaseManager::deleteOrigin):
    (WebCore::DatabaseManager::deleteDatabase):
    (WebCore::DatabaseManager::closeDatabasesImmediately):
    (WebCore::DatabaseManager::interruptAllDatabasesForContext):
    * Modules/webdatabase/DatabaseManager.h: Added.
    (DatabaseManager):
    (WebCore::DatabaseManager::~DatabaseManager):
    * Modules/webdatabase/DatabaseManagerClient.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseTrackerClient.h.
    (WebCore::DatabaseManagerClient::~DatabaseManagerClient):
    * Modules/webdatabase/DatabaseTracker.cpp:
    (WebCore::DatabaseTracker::setClient):
    * Modules/webdatabase/DatabaseTracker.h:
    (DatabaseTracker):
    * Modules/webdatabase/DatabaseTrackerClient.h: Removed.
    * Target.pri:
    * WebCore.exp.in:
    * WebCore.gyp/WebCore.gyp:
    * WebCore.gypi:
    * WebCore.order:
    * WebCore.vcproj/WebCore.vcproj:
    * WebCore.xcodeproj/project.pbxproj:
    * bindings/generic/RuntimeEnabledFeatures.cpp:
    (WebCore::RuntimeEnabledFeatures::openDatabaseEnabled):
    (WebCore::RuntimeEnabledFeatures::openDatabaseSyncEnabled):
    * history/PageCache.cpp:
    (WebCore::logCanCacheFrameDecision):
    (WebCore::PageCache::canCachePageContainingThisFrame):
    * loader/FrameLoader.cpp:
    (WebCore::FrameLoader::stopLoading):
    * page/DOMWindow.cpp:
    * workers/WorkerThread.cpp:
    (WebCore::WorkerThreadShutdownStartTask::performTask):
    (WebCore::WorkerThread::stop):
    
    Source/WebKit: 
    
    * WebKit.xcodeproj/project.pbxproj:
    
    Source/WebKit/blackberry: 
    
    * Api/WebPage.cpp:
    (BlackBerry::WebKit::WebPagePrivate::didChangeSettings):
    * WebCoreSupport/ChromeClientBlackBerry.cpp:
    (WebCore::ChromeClientBlackBerry::exceededDatabaseQuota):
    
    Source/WebKit/chromium: 
    
    * src/ChromeClientImpl.cpp:
    * src/WebDatabase.cpp:
    (WebKit::WebDatabase::closeDatabaseImmediately):
    * src/WebRuntimeFeatures.cpp:
    (WebKit::WebRuntimeFeatures::enableDatabase):
    (WebKit::WebRuntimeFeatures::isDatabaseEnabled):
    
    Source/WebKit/efl: 
    
    * WebCoreSupport/ChromeClientEfl.cpp:
    (WebCore::ChromeClientEfl::exceededDatabaseQuota):
    * ewk/ewk_security_origin.cpp:
    (ewk_security_origin_web_database_usage_get):
    (ewk_security_origin_web_database_quota_get):
    (ewk_security_origin_web_database_quota_set):
    (ewk_security_origin_web_database_get_all):
    * ewk/ewk_settings.cpp:
    (ewk_settings_web_database_path_set):
    * ewk/ewk_web_database.cpp:
    (ewk_web_database_display_name_get):
    (ewk_web_database_expected_size_get):
    (ewk_web_database_filename_get):
    (ewk_web_database_size_get):
    (ewk_web_database_remove):
    (ewk_web_database_remove_all):
    
    Source/WebKit/gtk: 
    
    * WebCoreSupport/ChromeClientGtk.cpp:
    (WebKit::ChromeClient::exceededDatabaseQuota):
    * webkit/webkitfavicondatabase.cpp:
    * webkit/webkiticondatabase.cpp:
    * webkit/webkitsecurityorigin.cpp:
    (webkit_security_origin_get_web_database_usage):
    (webkit_security_origin_get_web_database_quota):
    (webkit_security_origin_set_web_database_quota):
    (webkit_security_origin_get_all_web_databases):
    * webkit/webkitwebdatabase.cpp:
    (webkit_web_database_get_display_name):
    (webkit_web_database_get_expected_size):
    (webkit_web_database_get_size):
    (webkit_web_database_get_filename):
    (webkit_web_database_remove):
    (webkit_remove_all_web_databases):
    (webkit_get_web_database_directory_path):
    (webkit_set_web_database_directory_path):
    * webkit/webkitwebview.cpp:
    (webkit_web_view_update_settings):
    (webkit_web_view_settings_notify):
    
    Source/WebKit/mac: 
    
    * Storage/WebDatabaseManager.mm:
    (-[WebDatabaseManager origins]):
    (-[WebDatabaseManager databasesWithOrigin:]):
    (-[WebDatabaseManager detailsForDatabase:withOrigin:]):
    (-[WebDatabaseManager deleteAllDatabases]):
    (-[WebDatabaseManager deleteOrigin:]):
    (-[WebDatabaseManager deleteDatabase:withOrigin:]):
    (WebKitInitializeDatabasesIfNecessary):
    * Storage/WebDatabaseManagerClient.h: Copied from Source/WebKit/mac/Storage/WebDatabaseTrackerClient.h.
    (WebDatabaseManagerClient):
    * Storage/WebDatabaseManagerClient.mm: Copied from Source/WebKit/mac/Storage/WebDatabaseTrackerClient.mm.
    (WebDatabaseManagerClient::sharedWebDatabaseManagerClient):
    (WebDatabaseManagerClient::WebDatabaseManagerClient):
    (WebDatabaseManagerClient::~WebDatabaseManagerClient):
    (DidModifyOriginData::dispatchToMainThread):
    (DidModifyOriginData::DidModifyOriginData):
    (DidModifyOriginData):
    (WebDatabaseManagerClient::dispatchDidModifyOrigin):
    (WebDatabaseManagerClient::dispatchDidModifyDatabase):
    * Storage/WebDatabaseQuotaManager.mm:
    (-[WebDatabaseQuotaManager usage]):
    (-[WebDatabaseQuotaManager quota]):
    (-[WebDatabaseQuotaManager setQuota:]):
    * Storage/WebDatabaseTrackerClient.h: Removed.
    * Storage/WebDatabaseTrackerClient.mm: Removed.
    * WebCoreSupport/WebSecurityOrigin.mm:
    (-[WebSecurityOrigin usage]):
    (-[WebSecurityOrigin quota]):
    (-[WebSecurityOrigin setQuota:]):
    * WebKit.order:
    * WebView/WebFrame.mm:
    (-[WebFrame _cacheabilityDictionary]):
    * WebView/WebView.mm:
    (-[WebView _preferencesChanged:]):
    
    Source/WebKit/qt: 
    
    * Api/qwebdatabase.cpp:
    (QWebDatabase::displayName):
    (QWebDatabase::expectedSize):
    (QWebDatabase::size):
    (QWebDatabase::fileName):
    (QWebDatabase::removeDatabase):
    (QWebDatabase::removeAllDatabases):
    * Api/qwebsecurityorigin.cpp:
    (QWebSecurityOrigin::databaseUsage):
    (QWebSecurityOrigin::databaseQuota):
    (QWebSecurityOrigin::setDatabaseQuota):
    (QWebSecurityOrigin::allOrigins):
    (QWebSecurityOrigin::databases):
    * Api/qwebsettings.cpp:
    (QWebSettingsPrivate::apply):
    (QWebSettings::setOfflineStoragePath):
    (QWebSettings::offlineStoragePath):
    * WebCoreSupport/ChromeClientQt.cpp:
    
    Source/WebKit/win: 
    
    * WebDatabaseManager.cpp:
    (WebDatabaseManager::sharedWebDatabaseManager):
    (WebDatabaseManager::origins):
    (WebDatabaseManager::databasesWithOrigin):
    (WebDatabaseManager::detailsForDatabase):
    (WebDatabaseManager::deleteAllDatabases):
    (WebDatabaseManager::deleteOrigin):
    (WebDatabaseManager::deleteDatabase):
    (WebDatabaseManager::setQuota):
    (WebKitInitializeWebDatabasesIfNecessary):
    * WebDatabaseManager.h:
    (WebDatabaseManager):
    * WebSecurityOrigin.cpp:
    (WebSecurityOrigin::usage):
    (WebSecurityOrigin::quota):
    (WebSecurityOrigin::setQuota):
    * WebView.cpp:
    (WebView::notifyPreferencesChanged):
    
    Source/WebKit/wx: 
    
    * WebKitSupport/ChromeClientWx.cpp:
    (WebCore::ChromeClientWx::exceededDatabaseQuota):
    * WebView.cpp:
    (WebKit::WebView::SetDatabaseDirectory):
    (WebKit::WebView::GetDatabaseDirectory):
    (WebKit::WebView::SetDatabasesEnabled):
    (WebKit::WebView::AreDatabasesEnabled):
    
    Source/WebKit2: 
    
    * WebProcess/WebCoreSupport/WebChromeClient.cpp:
    (WebKit::WebChromeClient::exceededDatabaseQuota):
    * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
    (WebKit::WebDatabaseManager::initialize):
    (WebKit::WebDatabaseManager::WebDatabaseManager):
    (WebKit::WebDatabaseManager::getDatabasesByOrigin):
    (WebKit::WebDatabaseManager::getDatabaseOrigins):
    (WebKit::WebDatabaseManager::deleteDatabaseWithNameForOrigin):
    (WebKit::WebDatabaseManager::deleteDatabasesForOrigin):
    (WebKit::WebDatabaseManager::deleteAllDatabases):
    (WebKit::WebDatabaseManager::setQuotaForOrigin):
    * WebProcess/WebCoreSupport/WebDatabaseManager.h:
    (WebDatabaseManager):
    * WebProcess/WebPage/WebPage.cpp:
    (WebKit::WebPage::updatePreferences):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137520 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    45beb075