summaryrefslogtreecommitdiff
path: root/Source/WebKit/qt/Api/qwebsettings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/qt/Api/qwebsettings.cpp')
-rw-r--r--Source/WebKit/qt/Api/qwebsettings.cpp36
1 files changed, 24 insertions, 12 deletions
diff --git a/Source/WebKit/qt/Api/qwebsettings.cpp b/Source/WebKit/qt/Api/qwebsettings.cpp
index 242404055..f8e4d42ed 100644
--- a/Source/WebKit/qt/Api/qwebsettings.cpp
+++ b/Source/WebKit/qt/Api/qwebsettings.cpp
@@ -28,6 +28,7 @@
#include "FileSystem.h"
#include "FontCache.h"
#include "GCController.h"
+#include "GroupSettings.h"
#include "IconDatabase.h"
#include "Image.h"
#if ENABLE(ICONDATABASE)
@@ -67,8 +68,10 @@ QWEBKIT_EXPORT void qt_networkAccessAllowed(bool isAllowed)
class QWebSettingsPrivate {
public:
- QWebSettingsPrivate(WebCore::Settings* wcSettings = 0)
- : settings(wcSettings)
+ QWebSettingsPrivate(WebCore::Settings* wcSettings = 0, WebCore::GroupSettings* wcGroupSettings = 0)
+ : offlineStorageDefaultQuota(0)
+ , settings(wcSettings)
+ , groupSettings(wcGroupSettings)
{
}
@@ -79,11 +82,13 @@ public:
QString defaultTextEncoding;
QString localStoragePath;
QString offlineWebApplicationCachePath;
+ QString offlineDatabasePath;
QString mediaType;
qint64 offlineStorageDefaultQuota;
QWebSettings::ThirdPartyCookiePolicy thirdPartyCookiePolicy;
void apply();
WebCore::Settings* settings;
+ WebCore::GroupSettings* groupSettings;
};
Q_GLOBAL_STATIC(QList<QWebSettingsPrivate*>, allSettings);
@@ -237,12 +242,23 @@ void QWebSettingsPrivate::apply()
global->attributes.value(QWebSettings::PrintElementBackgrounds));
settings->setShouldPrintBackgrounds(value);
-#if ENABLE(SQL_DATABASE)
value = attributes.value(QWebSettings::OfflineStorageDatabaseEnabled,
global->attributes.value(QWebSettings::OfflineStorageDatabaseEnabled));
+#if ENABLE(SQL_DATABASE)
WebCore::DatabaseManager::manager().setIsAvailable(value);
#endif
+#if ENABLE(INDEXED_DATABASE)
+ QString path = !offlineDatabasePath.isEmpty() ? offlineDatabasePath : global->offlineDatabasePath;
+ Q_ASSERT(groupSettings);
+ // Setting the path to empty string disables persistent storage of the indexed database.
+ if (!value)
+ path = QString();
+ groupSettings->setIndexedDBDatabasePath(path);
+ qint64 quota = offlineStorageDefaultQuota ? offlineStorageDefaultQuota : global->offlineStorageDefaultQuota;
+ groupSettings->setIndexedDBQuotaBytes(quota);
+#endif
+
value = attributes.value(QWebSettings::OfflineWebApplicationCacheEnabled,
global->attributes.value(QWebSettings::OfflineWebApplicationCacheEnabled));
settings->setOfflineWebApplicationCacheEnabled(value);
@@ -564,10 +580,9 @@ QWebSettings::QWebSettings()
/*!
\internal
*/
-QWebSettings::QWebSettings(WebCore::Settings* settings)
- : d(new QWebSettingsPrivate(settings))
+QWebSettings::QWebSettings(WebCore::Settings* settings, WebCore::GroupSettings* groupSettings)
+ : d(new QWebSettingsPrivate(settings, groupSettings))
{
- d->settings = settings;
d->apply();
allSettings()->append(d);
}
@@ -1050,6 +1065,7 @@ void QWebSettings::resetAttribute(WebAttribute attr)
void QWebSettings::setOfflineStoragePath(const QString& path)
{
WebCore::initializeWebCoreQt();
+ QWebSettings::globalSettings()->d->offlineDatabasePath = path;
#if ENABLE(SQL_DATABASE)
WebCore::DatabaseManager::manager().setDatabaseDirectoryPath(path);
#endif
@@ -1066,11 +1082,7 @@ void QWebSettings::setOfflineStoragePath(const QString& path)
QString QWebSettings::offlineStoragePath()
{
WebCore::initializeWebCoreQt();
-#if ENABLE(SQL_DATABASE)
- return WebCore::DatabaseManager::manager().databaseDirectoryPath();
-#else
- return QString();
-#endif
+ return QWebSettings::globalSettings()->d->offlineDatabasePath;
}
/*!
@@ -1184,7 +1196,7 @@ void QWebSettings::setLocalStoragePath(const QString& path)
\since 4.6
Returns the path for HTML5 local storage.
-
+
\sa setLocalStoragePath()
*/
QString QWebSettings::localStoragePath() const