diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-09-13 12:51:20 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-19 20:50:05 +0200 |
commit | d441d6f39bb846989d95bcf5caf387b42414718d (patch) | |
tree | e367e64a75991c554930278175d403c072de6bb8 /Source/WebKit/win/WebDatabaseManager.cpp | |
parent | 0060b2994c07842f4c59de64b5e3e430525c4b90 (diff) | |
download | qtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz |
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit.
Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebKit/win/WebDatabaseManager.cpp')
-rw-r--r-- | Source/WebKit/win/WebDatabaseManager.cpp | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/Source/WebKit/win/WebDatabaseManager.cpp b/Source/WebKit/win/WebDatabaseManager.cpp index 15872e34f..c22ab0f65 100644 --- a/Source/WebKit/win/WebDatabaseManager.cpp +++ b/Source/WebKit/win/WebDatabaseManager.cpp @@ -32,21 +32,23 @@ #if ENABLE(SQL_DATABASE) -#include "CFDictionaryPropertyBag.h" #include "COMEnumVariant.h" +#include "COMPropertyBag.h" #include "MarshallingHelpers.h" #include "WebNotificationCenter.h" #include "WebSecurityOrigin.h" #include <WebCore/BString.h> #include <WebCore/COMPtr.h> -#include <WebCore/DatabaseTracker.h> +#include <WebCore/DatabaseManager.h> #include <WebCore/FileSystem.h> #include <WebCore/SecurityOrigin.h> #include <wtf/MainThread.h> using namespace WebCore; +static CFStringRef WebDatabaseDirectoryDefaultsKey = CFSTR("WebDatabaseDirectory"); + static inline bool isEqual(LPCWSTR s1, LPCWSTR s2) { return !wcscmp(s1, s2); @@ -202,7 +204,7 @@ HRESULT STDMETHODCALLTYPE WebDatabaseManager::sharedWebDatabaseManager( { if (!s_sharedWebDatabaseManager) { s_sharedWebDatabaseManager.adoptRef(WebDatabaseManager::createInstance()); - DatabaseTracker::tracker().setClient(s_sharedWebDatabaseManager.get()); + DatabaseManager::manager().setClient(s_sharedWebDatabaseManager.get()); } return s_sharedWebDatabaseManager.copyRefTo(result); @@ -220,7 +222,7 @@ HRESULT STDMETHODCALLTYPE WebDatabaseManager::origins( return E_FAIL; Vector<RefPtr<SecurityOrigin> > origins; - DatabaseTracker::tracker().origins(origins); + DatabaseManager::manager().origins(origins); COMPtr<COMEnumVariant<Vector<RefPtr<SecurityOrigin> > > > enumVariant(AdoptCOM, COMEnumVariant<Vector<RefPtr<SecurityOrigin> > >::adopt(origins)); *result = enumVariant.leakRef(); @@ -244,7 +246,7 @@ HRESULT STDMETHODCALLTYPE WebDatabaseManager::databasesWithOrigin( return E_FAIL; Vector<String> databaseNames; - DatabaseTracker::tracker().databaseNamesForOrigin(webSecurityOrigin->securityOrigin(), databaseNames); + DatabaseManager::manager().databaseNamesForOrigin(webSecurityOrigin->securityOrigin(), databaseNames); COMPtr<COMEnumVariant<Vector<String> > > enumVariant(AdoptCOM, COMEnumVariant<Vector<String> >::adopt(databaseNames)); @@ -269,7 +271,7 @@ HRESULT STDMETHODCALLTYPE WebDatabaseManager::detailsForDatabase( if (!webSecurityOrigin) return E_FAIL; - DatabaseDetails details = DatabaseTracker::tracker().detailsForNameAndOrigin(String(databaseName, SysStringLen(databaseName)), + DatabaseDetails details = DatabaseManager::manager().detailsForNameAndOrigin(String(databaseName, SysStringLen(databaseName)), webSecurityOrigin->securityOrigin()); if (details.name().isNull()) @@ -284,7 +286,7 @@ HRESULT STDMETHODCALLTYPE WebDatabaseManager::deleteAllDatabases() if (this != s_sharedWebDatabaseManager) return E_FAIL; - DatabaseTracker::tracker().deleteAllDatabases(); + DatabaseManager::manager().deleteAllDatabases(); return S_OK; } @@ -302,7 +304,7 @@ HRESULT STDMETHODCALLTYPE WebDatabaseManager::deleteOrigin( if (!webSecurityOrigin) return E_FAIL; - DatabaseTracker::tracker().deleteOrigin(webSecurityOrigin->securityOrigin()); + DatabaseManager::manager().deleteOrigin(webSecurityOrigin->securityOrigin()); return S_OK; } @@ -324,7 +326,7 @@ HRESULT STDMETHODCALLTYPE WebDatabaseManager::deleteDatabase( if (!webSecurityOrigin) return E_FAIL; - DatabaseTracker::tracker().deleteDatabase(webSecurityOrigin->securityOrigin(), String(databaseName, SysStringLen(databaseName))); + DatabaseManager::manager().deleteDatabase(webSecurityOrigin->securityOrigin(), String(databaseName, SysStringLen(databaseName))); return S_OK; } @@ -381,7 +383,7 @@ HRESULT STDMETHODCALLTYPE WebDatabaseManager::setQuota( if (this != s_sharedWebDatabaseManager) return E_FAIL; - DatabaseTracker::tracker().setQuota(SecurityOrigin::createFromString(origin).get(), quota); + DatabaseManager::manager().setQuota(SecurityOrigin::createFromString(origin).get(), quota); return S_OK; } @@ -398,15 +400,22 @@ void WebDatabaseManager::dispatchDidModifyDatabase(SecurityOrigin* origin, const COMPtr<WebSecurityOrigin> securityOrigin(AdoptCOM, WebSecurityOrigin::createInstance(origin)); - RetainPtr<CFMutableDictionaryRef> userInfo(AdoptCF, CFDictionaryCreateMutable(0, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)); + HashMap<String, String> userInfo; + userInfo.set(WebDatabaseNameKey, databaseName); + COMPtr<IPropertyBag> userInfoBag(AdoptCOM, COMPropertyBag<String>::adopt(userInfo)); - static CFStringRef databaseNameKey = MarshallingHelpers::LPCOLESTRToCFStringRef(WebDatabaseNameKey); - CFDictionarySetValue(userInfo.get(), databaseNameKey, databaseName.createCFString().get()); + notifyCenter->postNotificationName(databaseDidModifyOriginName, securityOrigin.get(), userInfoBag.get()); +} - COMPtr<CFDictionaryPropertyBag> userInfoBag = CFDictionaryPropertyBag::createInstance(); - userInfoBag->setDictionary(userInfo.get()); +static WTF::String databasesDirectory() +{ +#if USE(CF) + RetainPtr<CFPropertyListRef> directoryPref = adoptCF(CFPreferencesCopyAppValue(WebDatabaseDirectoryDefaultsKey, kCFPreferencesCurrentApplication)); + if (directoryPref && (CFStringGetTypeID() == CFGetTypeID(directoryPref.get()))) + return static_cast<CFStringRef>(directoryPref.get()); +#endif - notifyCenter->postNotificationName(databaseDidModifyOriginName, securityOrigin.get(), userInfoBag.get()); + return WebCore::pathByAppendingComponent(WebCore::localUserSpecificStorageDirectory(), "Databases"); } void WebKitInitializeWebDatabasesIfNecessary() @@ -415,8 +424,7 @@ void WebKitInitializeWebDatabasesIfNecessary() if (initialized) return; - WTF::String databasesDirectory = WebCore::pathByAppendingComponent(WebCore::localUserSpecificStorageDirectory(), "Databases"); - WebCore::DatabaseTracker::initializeTracker(databasesDirectory); + WebCore::DatabaseManager::manager().initialize(databasesDirectory()); initialized = true; } |