diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-04-10 09:28:39 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-04-10 09:28:39 +0000 |
commit | 32761a6cee1d0dee366b885b7b9c777e67885688 (patch) | |
tree | d6bec92bebfb216f4126356e55518842c2f476a1 /Source/WebCore/Modules/webdatabase/DatabaseTask.cpp | |
parent | a4e969f4965059196ca948db781e52f7cfebf19e (diff) | |
download | WebKitGtk-tarball-32761a6cee1d0dee366b885b7b9c777e67885688.tar.gz |
webkitgtk-2.4.11webkitgtk-2.4.11
Diffstat (limited to 'Source/WebCore/Modules/webdatabase/DatabaseTask.cpp')
-rw-r--r-- | Source/WebCore/Modules/webdatabase/DatabaseTask.cpp | 69 |
1 files changed, 44 insertions, 25 deletions
diff --git a/Source/WebCore/Modules/webdatabase/DatabaseTask.cpp b/Source/WebCore/Modules/webdatabase/DatabaseTask.cpp index 53fd8ded4..8cf8ea21a 100644 --- a/Source/WebCore/Modules/webdatabase/DatabaseTask.cpp +++ b/Source/WebCore/Modules/webdatabase/DatabaseTask.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007, 2008, 2013, 2015 Apple Inc. All rights reserved. + * Copyright (C) 2007, 2008, 2013 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -10,7 +10,7 @@ * 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 Inc. ("Apple") nor the names of + * 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. * @@ -28,7 +28,10 @@ #include "config.h" #include "DatabaseTask.h" +#if ENABLE(SQL_DATABASE) + #include "Database.h" +#include "DatabaseBackend.h" #include "Logging.h" namespace WebCore { @@ -53,11 +56,11 @@ void DatabaseTaskSynchronizer::taskCompleted() { m_synchronousMutex.lock(); m_taskCompleted = true; - m_synchronousCondition.notifyOne(); + m_synchronousCondition.signal(); m_synchronousMutex.unlock(); } -DatabaseTask::DatabaseTask(Database& database, DatabaseTaskSynchronizer* synchronizer) +DatabaseTask::DatabaseTask(DatabaseBackend* database, DatabaseTaskSynchronizer* synchronizer) : m_database(database) , m_synchronizer(synchronizer) #if !LOG_DISABLED @@ -82,7 +85,12 @@ void DatabaseTask::performTask() LOG(StorageAPI, "Performing %s %p\n", debugTaskName(), this); - m_database.resetAuthorizer(); +#if !PLATFORM(IOS) + m_database->resetAuthorizer(); +#else + if (m_database) + m_database->resetAuthorizer(); +#endif doPerformTask(); @@ -97,25 +105,26 @@ void DatabaseTask::performTask() // *** DatabaseOpenTask *** // Opens the database file and verifies the version matches the expected version. -DatabaseOpenTask::DatabaseOpenTask(Database& database, bool setVersionInNewDatabase, DatabaseTaskSynchronizer& synchronizer, DatabaseError& error, String& errorMessage, bool& success) - : DatabaseTask(database, &synchronizer) +DatabaseBackend::DatabaseOpenTask::DatabaseOpenTask(DatabaseBackend* database, bool setVersionInNewDatabase, DatabaseTaskSynchronizer* synchronizer, DatabaseError& error, String& errorMessage, bool& success) + : DatabaseTask(database, synchronizer) , m_setVersionInNewDatabase(setVersionInNewDatabase) , m_error(error) , m_errorMessage(errorMessage) , m_success(success) { + ASSERT(synchronizer); // A task with output parameters is supposed to be synchronous. } -void DatabaseOpenTask::doPerformTask() +void DatabaseBackend::DatabaseOpenTask::doPerformTask() { String errorMessage; - m_success = database().performOpenAndVerify(m_setVersionInNewDatabase, m_error, errorMessage); + m_success = database()->performOpenAndVerify(m_setVersionInNewDatabase, m_error, errorMessage); if (!m_success) m_errorMessage = errorMessage.isolatedCopy(); } #if !LOG_DISABLED -const char* DatabaseOpenTask::debugTaskName() const +const char* DatabaseBackend::DatabaseOpenTask::debugTaskName() const { return "DatabaseOpenTask"; } @@ -124,18 +133,18 @@ const char* DatabaseOpenTask::debugTaskName() const // *** DatabaseCloseTask *** // Closes the database. -DatabaseCloseTask::DatabaseCloseTask(Database& database, DatabaseTaskSynchronizer& synchronizer) - : DatabaseTask(database, &synchronizer) +DatabaseBackend::DatabaseCloseTask::DatabaseCloseTask(DatabaseBackend* database, DatabaseTaskSynchronizer* synchronizer) + : DatabaseTask(database, synchronizer) { } -void DatabaseCloseTask::doPerformTask() +void DatabaseBackend::DatabaseCloseTask::doPerformTask() { - database().close(); + Database::from(database())->close(); } #if !LOG_DISABLED -const char* DatabaseCloseTask::debugTaskName() const +const char* DatabaseBackend::DatabaseCloseTask::debugTaskName() const { return "DatabaseCloseTask"; } @@ -144,14 +153,14 @@ const char* DatabaseCloseTask::debugTaskName() const // *** DatabaseTransactionTask *** // Starts a transaction that will report its results via a callback. -DatabaseTransactionTask::DatabaseTransactionTask(PassRefPtr<SQLTransactionBackend> transaction) - : DatabaseTask(*transaction->database(), 0) +DatabaseBackend::DatabaseTransactionTask::DatabaseTransactionTask(PassRefPtr<SQLTransactionBackend> transaction) + : DatabaseTask(Database::from(transaction->database()), 0) , m_transaction(transaction) , m_didPerformTask(false) { } -DatabaseTransactionTask::~DatabaseTransactionTask() +DatabaseBackend::DatabaseTransactionTask::~DatabaseTransactionTask() { // If the task is being destructed without the transaction ever being run, // then we must either have an error or an interruption. Give the @@ -165,14 +174,21 @@ DatabaseTransactionTask::~DatabaseTransactionTask() m_transaction->notifyDatabaseThreadIsShuttingDown(); } -void DatabaseTransactionTask::doPerformTask() +#if PLATFORM(IOS) +bool Database::DatabaseTransactionTask::shouldPerformWhilePaused() const +{ + return m_transaction->shouldPerformWhilePaused(); +} +#endif + +void DatabaseBackend::DatabaseTransactionTask::doPerformTask() { m_transaction->performNextStep(); m_didPerformTask = true; } #if !LOG_DISABLED -const char* DatabaseTransactionTask::debugTaskName() const +const char* DatabaseBackend::DatabaseTransactionTask::debugTaskName() const { return "DatabaseTransactionTask"; } @@ -181,22 +197,25 @@ const char* DatabaseTransactionTask::debugTaskName() const // *** DatabaseTableNamesTask *** // Retrieves a list of all tables in the database - for WebInspector support. -DatabaseTableNamesTask::DatabaseTableNamesTask(Database& database, DatabaseTaskSynchronizer& synchronizer, Vector<String>& names) - : DatabaseTask(database, &synchronizer) +DatabaseBackend::DatabaseTableNamesTask::DatabaseTableNamesTask(DatabaseBackend* database, DatabaseTaskSynchronizer* synchronizer, Vector<String>& names) + : DatabaseTask(database, synchronizer) , m_tableNames(names) { + ASSERT(synchronizer); // A task with output parameters is supposed to be synchronous. } -void DatabaseTableNamesTask::doPerformTask() +void DatabaseBackend::DatabaseTableNamesTask::doPerformTask() { - m_tableNames = database().performGetTableNames(); + m_tableNames = Database::from(database())->performGetTableNames(); } #if !LOG_DISABLED -const char* DatabaseTableNamesTask::debugTaskName() const +const char* DatabaseBackend::DatabaseTableNamesTask::debugTaskName() const { return "DatabaseTableNamesTask"; } #endif } // namespace WebCore + +#endif |