Modified: trunk/Source/WebCore/ChangeLog (187995 => 187996)
--- trunk/Source/WebCore/ChangeLog 2015-08-05 22:57:52 UTC (rev 187995)
+++ trunk/Source/WebCore/ChangeLog 2015-08-05 22:58:52 UTC (rev 187996)
@@ -1,3 +1,34 @@
+2015-08-05 Anders Carlsson <ander...@apple.com>
+
+ Move some more DatabaseBackendBase functions to Database
+ https://bugs.webkit.org/show_bug.cgi?id=147702
+
+ Reviewed by Tim Horton.
+
+ * Modules/webdatabase/Database.cpp:
+ (WebCore::formatErrorMessage):
+ (WebCore::Database::disableAuthorizer):
+ (WebCore::Database::enableAuthorizer):
+ (WebCore::Database::setAuthorizerPermissions):
+ (WebCore::Database::lastActionChangedDatabase):
+ (WebCore::Database::lastActionWasInsert):
+ (WebCore::Database::resetDeletes):
+ (WebCore::Database::hadDeletes):
+ (WebCore::Database::resetAuthorizer):
+ (WebCore::Database::incrementalVacuumIfNeeded):
+ * Modules/webdatabase/Database.h:
+ * Modules/webdatabase/DatabaseBackendBase.cpp:
+ (WebCore::DatabaseBackendBase::disableAuthorizer): Deleted.
+ (WebCore::DatabaseBackendBase::enableAuthorizer): Deleted.
+ (WebCore::DatabaseBackendBase::setAuthorizerPermissions): Deleted.
+ (WebCore::DatabaseBackendBase::lastActionChangedDatabase): Deleted.
+ (WebCore::DatabaseBackendBase::lastActionWasInsert): Deleted.
+ (WebCore::DatabaseBackendBase::resetDeletes): Deleted.
+ (WebCore::DatabaseBackendBase::hadDeletes): Deleted.
+ (WebCore::DatabaseBackendBase::resetAuthorizer): Deleted.
+ (WebCore::DatabaseBackendBase::incrementalVacuumIfNeeded): Deleted.
+ * Modules/webdatabase/DatabaseBackendBase.h:
+
2015-08-05 Zalan Bujtas <za...@apple.com>
[Frame flattening] Return early when child RenderView is not available.
Modified: trunk/Source/WebCore/Modules/webdatabase/Database.cpp (187995 => 187996)
--- trunk/Source/WebCore/Modules/webdatabase/Database.cpp 2015-08-05 22:57:52 UTC (rev 187995)
+++ trunk/Source/WebCore/Modules/webdatabase/Database.cpp 2015-08-05 22:58:52 UTC (rev 187996)
@@ -31,6 +31,7 @@
#include "ChangeVersionData.h"
#include "ChangeVersionWrapper.h"
+#include "DatabaseAuthorizer.h"
#include "DatabaseCallback.h"
#include "DatabaseContext.h"
#include "DatabaseManager.h"
@@ -45,6 +46,7 @@
#include "SQLTransaction.h"
#include "SQLTransactionCallback.h"
#include "SQLTransactionErrorCallback.h"
+#include "SQLiteDatabaseTracker.h"
#include "SQLiteStatement.h"
#include "ScriptExecutionContext.h"
#include "SecurityOrigin.h"
@@ -54,12 +56,13 @@
#include <wtf/StdLibExtras.h>
#include <wtf/text/CString.h>
-#if PLATFORM(IOS)
-#include "SQLiteDatabaseTracker.h"
-#endif
-
namespace WebCore {
+static String formatErrorMessage(const char* message, int sqliteErrorCode, const char* sqliteErrorMessage)
+{
+ return String::format("%s (%d %s)", message, sqliteErrorCode, sqliteErrorMessage);
+}
+
Database::Database(PassRefPtr<DatabaseContext> databaseContext, const String& name, const String& expectedVersion, const String& displayName, unsigned long estimatedSize)
: DatabaseBackendBase(databaseContext.get(), name, expectedVersion, displayName, estimatedSize)
, m_transactionInProgress(false)
@@ -260,6 +263,54 @@
runTransaction(callback, errorCallback, successCallback, true);
}
+void Database::disableAuthorizer()
+{
+ ASSERT(m_databaseAuthorizer);
+ m_databaseAuthorizer->disable();
+}
+
+void Database::enableAuthorizer()
+{
+ ASSERT(m_databaseAuthorizer);
+ m_databaseAuthorizer->enable();
+}
+
+void Database::setAuthorizerPermissions(int permissions)
+{
+ ASSERT(m_databaseAuthorizer);
+ m_databaseAuthorizer->setPermissions(permissions);
+}
+
+bool Database::lastActionChangedDatabase()
+{
+ ASSERT(m_databaseAuthorizer);
+ return m_databaseAuthorizer->lastActionChangedDatabase();
+}
+
+bool Database::lastActionWasInsert()
+{
+ ASSERT(m_databaseAuthorizer);
+ return m_databaseAuthorizer->lastActionWasInsert();
+}
+
+void Database::resetDeletes()
+{
+ ASSERT(m_databaseAuthorizer);
+ m_databaseAuthorizer->resetDeletes();
+}
+
+bool Database::hadDeletes()
+{
+ ASSERT(m_databaseAuthorizer);
+ return m_databaseAuthorizer->hadDeletes();
+}
+
+void Database::resetAuthorizer()
+{
+ if (m_databaseAuthorizer)
+ m_databaseAuthorizer->reset();
+}
+
void Database::runTransaction(RefPtr<SQLTransactionCallback>&& callback, RefPtr<SQLTransactionErrorCallback>&& errorCallback, RefPtr<VoidCallback>&& successCallback, bool readOnly, const ChangeVersionData* changeVersionData)
{
RefPtr<SQLTransaction> transaction = SQLTransaction::create(*this, WTF::move(callback), WTF::move(successCallback), errorCallback.copyRef(), readOnly);
@@ -310,6 +361,19 @@
return tableNames;
}
+void Database::incrementalVacuumIfNeeded()
+{
+ SQLiteTransactionInProgressAutoCounter transactionCounter;
+
+ int64_t freeSpaceSize = m_sqliteDatabase.freeSpaceSize();
+ int64_t totalSize = m_sqliteDatabase.totalSize();
+ if (totalSize <= 10 * freeSpaceSize) {
+ int result = m_sqliteDatabase.runIncrementalVacuumCommand();
+ if (result != SQLITE_OK)
+ logErrorMessage(formatErrorMessage("error vacuuming database", result, m_sqliteDatabase.lastErrorMsg()));
+ }
+}
+
void Database::logErrorMessage(const String& message)
{
m_scriptExecutionContext->addConsoleMessage(MessageSource::Storage, MessageLevel::Error, message);
Modified: trunk/Source/WebCore/Modules/webdatabase/Database.h (187995 => 187996)
--- trunk/Source/WebCore/Modules/webdatabase/Database.h 2015-08-05 22:57:52 UTC (rev 187995)
+++ trunk/Source/WebCore/Modules/webdatabase/Database.h 2015-08-05 22:58:52 UTC (rev 187996)
@@ -77,6 +77,15 @@
void readTransaction(PassRefPtr<SQLTransactionCallback>, PassRefPtr<SQLTransactionErrorCallback>, PassRefPtr<VoidCallback> successCallback);
// Internal engine support
+ void disableAuthorizer();
+ void enableAuthorizer();
+ void setAuthorizerPermissions(int);
+ bool lastActionChangedDatabase();
+ bool lastActionWasInsert();
+ void resetDeletes();
+ bool hadDeletes();
+ void resetAuthorizer();
+
DatabaseContext* databaseContext() const { return m_databaseContext.get(); }
ScriptExecutionContext* scriptExecutionContext() { return m_scriptExecutionContext.get(); }
@@ -94,6 +103,8 @@
virtual bool performOpenAndVerify(bool setVersionInNewDatabase, DatabaseError&, String& errorMessage);
Vector<String> performGetTableNames();
+ void incrementalVacuumIfNeeded();
+
private:
Database(PassRefPtr<DatabaseContext>, const String& name, const String& expectedVersion, const String& displayName, unsigned long estimatedSize);
Modified: trunk/Source/WebCore/Modules/webdatabase/DatabaseBackendBase.cpp (187995 => 187996)
--- trunk/Source/WebCore/Modules/webdatabase/DatabaseBackendBase.cpp 2015-08-05 22:57:52 UTC (rev 187995)
+++ trunk/Source/WebCore/Modules/webdatabase/DatabaseBackendBase.cpp 2015-08-05 22:58:52 UTC (rev 187996)
@@ -520,70 +520,9 @@
return getVersionFromDatabase(actualVersion, true);
}
-void DatabaseBackendBase::disableAuthorizer()
-{
- ASSERT(m_databaseAuthorizer);
- m_databaseAuthorizer->disable();
-}
-
-void DatabaseBackendBase::enableAuthorizer()
-{
- ASSERT(m_databaseAuthorizer);
- m_databaseAuthorizer->enable();
-}
-
-void DatabaseBackendBase::setAuthorizerPermissions(int permissions)
-{
- ASSERT(m_databaseAuthorizer);
- m_databaseAuthorizer->setPermissions(permissions);
-}
-
-bool DatabaseBackendBase::lastActionChangedDatabase()
-{
- ASSERT(m_databaseAuthorizer);
- return m_databaseAuthorizer->lastActionChangedDatabase();
-}
-
-bool DatabaseBackendBase::lastActionWasInsert()
-{
- ASSERT(m_databaseAuthorizer);
- return m_databaseAuthorizer->lastActionWasInsert();
-}
-
-void DatabaseBackendBase::resetDeletes()
-{
- ASSERT(m_databaseAuthorizer);
- m_databaseAuthorizer->resetDeletes();
-}
-
-bool DatabaseBackendBase::hadDeletes()
-{
- ASSERT(m_databaseAuthorizer);
- return m_databaseAuthorizer->hadDeletes();
-}
-
-void DatabaseBackendBase::resetAuthorizer()
-{
- if (m_databaseAuthorizer)
- m_databaseAuthorizer->reset();
-}
-
unsigned long long DatabaseBackendBase::maximumSize() const
{
return DatabaseTracker::tracker().getMaxSizeForDatabase(static_cast<const Database*>(this));
}
-void DatabaseBackendBase::incrementalVacuumIfNeeded()
-{
- SQLiteTransactionInProgressAutoCounter transactionCounter;
-
- int64_t freeSpaceSize = m_sqliteDatabase.freeSpaceSize();
- int64_t totalSize = m_sqliteDatabase.totalSize();
- if (totalSize <= 10 * freeSpaceSize) {
- int result = m_sqliteDatabase.runIncrementalVacuumCommand();
- if (result != SQLITE_OK)
- m_frontend->logErrorMessage(formatErrorMessage("error vacuuming database", result, m_sqliteDatabase.lastErrorMsg()));
- }
-}
-
} // namespace WebCore
Modified: trunk/Source/WebCore/Modules/webdatabase/DatabaseBackendBase.h (187995 => 187996)
--- trunk/Source/WebCore/Modules/webdatabase/DatabaseBackendBase.h 2015-08-05 22:57:52 UTC (rev 187995)
+++ trunk/Source/WebCore/Modules/webdatabase/DatabaseBackendBase.h 2015-08-05 22:58:52 UTC (rev 187996)
@@ -64,17 +64,7 @@
SQLiteDatabase& sqliteDatabase() { return m_sqliteDatabase; }
unsigned long long maximumSize() const;
- void incrementalVacuumIfNeeded();
- void disableAuthorizer();
- void enableAuthorizer();
- void setAuthorizerPermissions(int permissions);
- bool lastActionChangedDatabase();
- bool lastActionWasInsert();
- void resetDeletes();
- bool hadDeletes();
- void resetAuthorizer();
-
DatabaseContext* databaseContext() const { return m_databaseContext.get(); }
void setFrontend(Database* frontend) { m_frontend = frontend; }
@@ -116,7 +106,6 @@
Database* m_frontend;
-private:
DatabaseGuid m_guid;
bool m_opened;
bool m_new;