Diff
Modified: trunk/Source/WebCore/ChangeLog (157650 => 157651)
--- trunk/Source/WebCore/ChangeLog 2013-10-18 22:57:15 UTC (rev 157650)
+++ trunk/Source/WebCore/ChangeLog 2013-10-18 23:23:53 UTC (rev 157651)
@@ -1,3 +1,51 @@
+2013-10-18 Brady Eidson <beid...@apple.com>
+
+ Get rid of IDBFactoryBackendLevelDB and IDBTransactionBackendLevelDB in IDBDatabaseBackendLevelDB.
+ https://bugs.webkit.org/show_bug.cgi?id=123039
+
+ Reviewed by Anders Carlsson.
+
+ Add a few concepts to the interfaces to make this work:
+ * Modules/indexeddb/IDBFactoryBackendInterface.h:
+ * Modules/indexeddb/IDBTransactionBackendInterface.h:
+ (WebCore::IDBTransactionBackendInterface::id):
+ (WebCore::IDBTransactionBackendInterface::IDBTransactionBackendInterface):
+
+ Adapt to using Interface ptr’s instead of LevelDB ptr’s:
+ * Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
+ (WebCore::IDBDatabaseBackendLevelDB::create):
+ (WebCore::IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB):
+ (WebCore::IDBDatabaseBackendLevelDB::createObjectStore):
+ (WebCore::IDBDatabaseBackendLevelDB::deleteObjectStore):
+ (WebCore::IDBDatabaseBackendLevelDB::createIndex):
+ (WebCore::IDBDatabaseBackendLevelDB::deleteIndex):
+ (WebCore::IDBDatabaseBackendLevelDB::get):
+ (WebCore::IDBDatabaseBackendLevelDB::put):
+ (WebCore::IDBDatabaseBackendLevelDB::setIndexKeys):
+ (WebCore::IDBDatabaseBackendLevelDB::setIndexesReady):
+ (WebCore::IDBDatabaseBackendLevelDB::openCursor):
+ (WebCore::IDBDatabaseBackendLevelDB::count):
+ (WebCore::IDBDatabaseBackendLevelDB::deleteRange):
+ (WebCore::IDBDatabaseBackendLevelDB::clear):
+ (WebCore::IDBDatabaseBackendLevelDB::transactionStarted):
+ (WebCore::IDBDatabaseBackendLevelDB::transactionFinished):
+ (WebCore::IDBDatabaseBackendLevelDB::transactionFinishedAndAbortFired):
+ (WebCore::IDBDatabaseBackendLevelDB::transactionFinishedAndCompleteFired):
+ (WebCore::IDBDatabaseBackendLevelDB::runIntVersionChangeTransaction):
+ * Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
+
+ * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
+
+ * Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
+ (WebCore::IDBObjectStoreBackendLevelDB::makeIndexWriters):
+ * Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
+
+ * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
+ (WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
+ (WebCore::IDBTransactionBackendLevelDB::abort):
+ (WebCore::IDBTransactionBackendLevelDB::commit):
+ * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
+
2013-10-18 Dean Jackson <d...@apple.com>
Unable to upload <img src="" as WebGL texture
Modified: trunk/Source/WebCore/Modules/indexeddb/IDBFactoryBackendInterface.h (157650 => 157651)
--- trunk/Source/WebCore/Modules/indexeddb/IDBFactoryBackendInterface.h 2013-10-18 22:57:15 UTC (rev 157650)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBFactoryBackendInterface.h 2013-10-18 23:23:53 UTC (rev 157651)
@@ -56,6 +56,8 @@
virtual void getDatabaseNames(PassRefPtr<IDBCallbacks>, PassRefPtr<SecurityOrigin>, ScriptExecutionContext*, const String& dataDir) = 0;
virtual void open(const String& name, int64_t version, int64_t transactionId, PassRefPtr<IDBCallbacks>, PassRefPtr<IDBDatabaseCallbacks>, PassRefPtr<SecurityOrigin>, ScriptExecutionContext*, const String& dataDir) = 0;
virtual void deleteDatabase(const String& name, PassRefPtr<IDBCallbacks>, PassRefPtr<SecurityOrigin>, ScriptExecutionContext*, const String& dataDir) = 0;
+
+ virtual void removeIDBDatabaseBackend(const String& uniqueIdentifier) = 0;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendInterface.h (157650 => 157651)
--- trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendInterface.h 2013-10-18 22:57:15 UTC (rev 157650)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendInterface.h 2013-10-18 23:23:53 UTC (rev 157651)
@@ -35,8 +35,10 @@
namespace WebCore {
+class IDBBackingStore; // FIXME: IDBBackingStore is actually a LevelDB type doesn't belong in the cross-platform directory.
class IDBCallbacks;
class IDBDatabaseCallbacks;
+class IDBDatabaseError;
class IDBKey;
class IDBKeyRange;
@@ -47,7 +49,13 @@
class IDBTransactionBackendInterface : public RefCounted<IDBTransactionBackendInterface> {
public:
virtual ~IDBTransactionBackendInterface() { }
-
+
+ virtual IndexedDB::TransactionMode mode() const = 0;
+
+ virtual void commit() = 0;
+ virtual void abort() = 0;
+ virtual void abort(PassRefPtr<IDBDatabaseError>) = 0;
+
virtual void scheduleCreateObjectStoreOperation(const IDBObjectStoreMetadata&) = 0;
virtual void scheduleDeleteObjectStoreOperation(const IDBObjectStoreMetadata&) = 0;
virtual void scheduleVersionChangeOperation(int64_t transactionId, int64_t requestedVersion, PassRefPtr<IDBCallbacks>, PassRefPtr<IDBDatabaseCallbacks>, const IDBDatabaseMetadata&) = 0;
@@ -60,6 +68,21 @@
virtual void scheduleCountOperation(int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange>, PassRefPtr<IDBCallbacks>) = 0;
virtual void scheduleDeleteRangeOperation(int64_t objectStoreId, PassRefPtr<IDBKeyRange>, PassRefPtr<IDBCallbacks>) = 0;
virtual void scheduleClearOperation(int64_t objectStoreId, PassRefPtr<IDBCallbacks>) = 0;
+
+ // FIXME: IDBBackingStore is actually a LevelDB type, but probably doesn't warrant abstraction.
+ // This is to keep the build working until this requirement can be removed.
+ virtual IDBBackingStore::Transaction* backingStoreTransaction() = 0;
+
+ int64_t id() const { return m_id; }
+
+protected:
+ IDBTransactionBackendInterface(int64_t id)
+ : m_id(id)
+ {
+ }
+
+private:
+ int64_t m_id;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp (157650 => 157651)
--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp 2013-10-18 22:57:15 UTC (rev 157650)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp 2013-10-18 23:23:53 UTC (rev 157651)
@@ -42,7 +42,7 @@
namespace WebCore {
-PassRefPtr<IDBDatabaseBackendLevelDB> IDBDatabaseBackendLevelDB::create(const String& name, IDBBackingStore* database, IDBFactoryBackendLevelDB* factory, const String& uniqueIdentifier)
+PassRefPtr<IDBDatabaseBackendLevelDB> IDBDatabaseBackendLevelDB::create(const String& name, IDBBackingStore* database, IDBFactoryBackendInterface* factory, const String& uniqueIdentifier)
{
RefPtr<IDBDatabaseBackendLevelDB> backend = adoptRef(new IDBDatabaseBackendLevelDB(name, database, factory, uniqueIdentifier));
if (!backend->openInternal())
@@ -50,7 +50,7 @@
return backend.release();
}
-IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB(const String& name, IDBBackingStore* backingStore, IDBFactoryBackendLevelDB* factory, const String& uniqueIdentifier)
+IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB(const String& name, IDBBackingStore* backingStore, IDBFactoryBackendInterface* factory, const String& uniqueIdentifier)
: m_backingStore(backingStore)
, m_metadata(name, InvalidId, 0, InvalidId)
, m_identifier(uniqueIdentifier)
@@ -126,7 +126,7 @@
void IDBDatabaseBackendLevelDB::createObjectStore(int64_t transactionId, int64_t objectStoreId, const String& name, const IDBKeyPath& keyPath, bool autoIncrement)
{
LOG(StorageAPI, "IDBDatabaseBackendLevelDB::createObjectStore");
- IDBTransactionBackendLevelDB* transaction = m_transactions.get(transactionId);
+ IDBTransactionBackendInterface* transaction = m_transactions.get(transactionId);
if (!transaction)
return;
ASSERT(transaction->mode() == IndexedDB::TransactionVersionChange);
@@ -141,7 +141,7 @@
void IDBDatabaseBackendLevelDB::deleteObjectStore(int64_t transactionId, int64_t objectStoreId)
{
LOG(StorageAPI, "IDBDatabaseBackendLevelDB::deleteObjectStore");
- IDBTransactionBackendLevelDB* transaction = m_transactions.get(transactionId);
+ IDBTransactionBackendInterface* transaction = m_transactions.get(transactionId);
if (!transaction)
return;
ASSERT(transaction->mode() == IndexedDB::TransactionVersionChange);
@@ -156,7 +156,7 @@
void IDBDatabaseBackendLevelDB::createIndex(int64_t transactionId, int64_t objectStoreId, int64_t indexId, const String& name, const IDBKeyPath& keyPath, bool unique, bool multiEntry)
{
LOG(StorageAPI, "IDBDatabaseBackendLevelDB::createIndex");
- IDBTransactionBackendLevelDB* transaction = m_transactions.get(transactionId);
+ IDBTransactionBackendInterface* transaction = m_transactions.get(transactionId);
if (!transaction)
return;
ASSERT(transaction->mode() == IndexedDB::TransactionVersionChange);
@@ -175,7 +175,7 @@
void IDBDatabaseBackendLevelDB::deleteIndex(int64_t transactionId, int64_t objectStoreId, int64_t indexId)
{
LOG(StorageAPI, "IDBDatabaseBackendLevelDB::deleteIndex");
- IDBTransactionBackendLevelDB* transaction = m_transactions.get(transactionId);
+ IDBTransactionBackendInterface* transaction = m_transactions.get(transactionId);
if (!transaction)
return;
ASSERT(transaction->mode() == IndexedDB::TransactionVersionChange);
@@ -215,7 +215,7 @@
void IDBDatabaseBackendLevelDB::get(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, bool keyOnly, PassRefPtr<IDBCallbacks> callbacks)
{
LOG(StorageAPI, "IDBDatabaseBackendLevelDB::get");
- IDBTransactionBackendLevelDB* transaction = m_transactions.get(transactionId);
+ IDBTransactionBackendInterface* transaction = m_transactions.get(transactionId);
if (!transaction)
return;
@@ -225,7 +225,7 @@
void IDBDatabaseBackendLevelDB::put(int64_t transactionId, int64_t objectStoreId, PassRefPtr<SharedBuffer> value, PassRefPtr<IDBKey> key, PutMode putMode, PassRefPtr<IDBCallbacks> callbacks, const Vector<int64_t>& indexIds, const Vector<IndexKeys>& indexKeys)
{
LOG(StorageAPI, "IDBDatabaseBackendLevelDB::put");
- IDBTransactionBackendLevelDB* transaction = m_transactions.get(transactionId);
+ IDBTransactionBackendInterface* transaction = m_transactions.get(transactionId);
if (!transaction)
return;
ASSERT(transaction->mode() != IndexedDB::TransactionReadOnly);
@@ -240,7 +240,7 @@
void IDBDatabaseBackendLevelDB::setIndexKeys(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBKey> prpPrimaryKey, const Vector<int64_t>& indexIds, const Vector<IndexKeys>& indexKeys)
{
LOG(StorageAPI, "IDBDatabaseBackendLevelDB::setIndexKeys");
- IDBTransactionBackendLevelDB* transaction = m_transactions.get(transactionId);
+ IDBTransactionBackendInterface* transaction = m_transactions.get(transactionId);
if (!transaction)
return;
ASSERT(transaction->mode() == IndexedDB::TransactionVersionChange);
@@ -286,7 +286,7 @@
{
LOG(StorageAPI, "IDBObjectStoreBackendLevelDB::setIndexesReady");
- IDBTransactionBackendLevelDB* transaction = m_transactions.get(transactionId);
+ IDBTransactionBackendInterface* transaction = m_transactions.get(transactionId);
if (!transaction)
return;
@@ -296,7 +296,7 @@
void IDBDatabaseBackendLevelDB::openCursor(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorDirection direction, bool keyOnly, TaskType taskType, PassRefPtr<IDBCallbacks> callbacks)
{
LOG(StorageAPI, "IDBDatabaseBackendLevelDB::openCursor");
- IDBTransactionBackendLevelDB* transaction = m_transactions.get(transactionId);
+ IDBTransactionBackendInterface* transaction = m_transactions.get(transactionId);
if (!transaction)
return;
@@ -306,7 +306,7 @@
void IDBDatabaseBackendLevelDB::count(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, PassRefPtr<IDBCallbacks> callbacks)
{
LOG(StorageAPI, "IDBDatabaseBackendLevelDB::count");
- IDBTransactionBackendLevelDB* transaction = m_transactions.get(transactionId);
+ IDBTransactionBackendInterface* transaction = m_transactions.get(transactionId);
if (!transaction)
return;
@@ -318,7 +318,7 @@
void IDBDatabaseBackendLevelDB::deleteRange(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBKeyRange> keyRange, PassRefPtr<IDBCallbacks> callbacks)
{
LOG(StorageAPI, "IDBDatabaseBackendLevelDB::deleteRange");
- IDBTransactionBackendLevelDB* transaction = m_transactions.get(transactionId);
+ IDBTransactionBackendInterface* transaction = m_transactions.get(transactionId);
if (!transaction)
return;
ASSERT(transaction->mode() != IndexedDB::TransactionReadOnly);
@@ -329,7 +329,7 @@
void IDBDatabaseBackendLevelDB::clear(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBCallbacks> callbacks)
{
LOG(StorageAPI, "IDBDatabaseBackendLevelDB::clear");
- IDBTransactionBackendLevelDB* transaction = m_transactions.get(transactionId);
+ IDBTransactionBackendInterface* transaction = m_transactions.get(transactionId);
if (!transaction)
return;
ASSERT(transaction->mode() != IndexedDB::TransactionReadOnly);
@@ -337,18 +337,17 @@
transaction->scheduleClearOperation(objectStoreId, callbacks);
}
-void IDBDatabaseBackendLevelDB::transactionStarted(PassRefPtr<IDBTransactionBackendLevelDB> prpTransaction)
+void IDBDatabaseBackendLevelDB::transactionStarted(IDBTransactionBackendInterface* transaction)
{
- RefPtr<IDBTransactionBackendLevelDB> transaction = prpTransaction;
if (transaction->mode() == IndexedDB::TransactionVersionChange) {
ASSERT(!m_runningVersionChangeTransaction);
m_runningVersionChangeTransaction = transaction;
}
}
-void IDBDatabaseBackendLevelDB::transactionFinished(PassRefPtr<IDBTransactionBackendLevelDB> prpTransaction)
+void IDBDatabaseBackendLevelDB::transactionFinished(IDBTransactionBackendInterface* rawTransaction)
{
- RefPtr<IDBTransactionBackendLevelDB> transaction = prpTransaction;
+ RefPtr<IDBTransactionBackendInterface> transaction = rawTransaction;
ASSERT(m_transactions.contains(transaction->id()));
ASSERT(m_transactions.get(transaction->id()) == transaction.get());
m_transactions.remove(transaction->id());
@@ -358,9 +357,9 @@
}
}
-void IDBDatabaseBackendLevelDB::transactionFinishedAndAbortFired(PassRefPtr<IDBTransactionBackendLevelDB> prpTransaction)
+void IDBDatabaseBackendLevelDB::transactionFinishedAndAbortFired(IDBTransactionBackendInterface* rawTransaction)
{
- RefPtr<IDBTransactionBackendLevelDB> transaction = prpTransaction;
+ RefPtr<IDBTransactionBackendInterface> transaction = rawTransaction;
if (transaction->mode() == IndexedDB::TransactionVersionChange) {
// If this was an open-with-version call, there will be a "second
// half" open call waiting for us in processPendingCalls.
@@ -373,9 +372,9 @@
}
}
-void IDBDatabaseBackendLevelDB::transactionFinishedAndCompleteFired(PassRefPtr<IDBTransactionBackendLevelDB> prpTransaction)
+void IDBDatabaseBackendLevelDB::transactionFinishedAndCompleteFired(IDBTransactionBackendInterface* rawTransaction)
{
- RefPtr<IDBTransactionBackendLevelDB> transaction = prpTransaction;
+ RefPtr<IDBTransactionBackendInterface> transaction = rawTransaction;
if (transaction->mode() == IndexedDB::TransactionVersionChange)
processPendingCalls();
}
@@ -526,7 +525,7 @@
Vector<int64_t> objectStoreIds;
createTransaction(transactionId, databaseCallbacks, objectStoreIds, IndexedDB::TransactionVersionChange);
- RefPtr<IDBTransactionBackendLevelDB> transaction = m_transactions.get(transactionId);
+ RefPtr<IDBTransactionBackendInterface> transaction = m_transactions.get(transactionId);
transaction->scheduleVersionChangeOperation(transactionId, requestedVersion, callbacks, databaseCallbacks, m_metadata);
Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h (157650 => 157651)
--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h 2013-10-18 22:57:15 UTC (rev 157650)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h 2013-10-18 23:23:53 UTC (rev 157651)
@@ -39,13 +39,13 @@
class IDBBackingStore;
class IDBDatabase;
-class IDBFactoryBackendLevelDB;
-class IDBTransactionBackendLevelDB;
+class IDBFactoryBackendInterface;
+class IDBTransactionBackendInterface;
class IDBTransactionCoordinatorLevelDB;
class IDBDatabaseBackendLevelDB : public IDBDatabaseBackendInterface {
public:
- static PassRefPtr<IDBDatabaseBackendLevelDB> create(const String& name, IDBBackingStore* database, IDBFactoryBackendLevelDB*, const String& uniqueIdentifier);
+ static PassRefPtr<IDBDatabaseBackendLevelDB> create(const String& name, IDBBackingStore* database, IDBFactoryBackendInterface*, const String& uniqueIdentifier);
virtual ~IDBDatabaseBackendLevelDB();
PassRefPtr<IDBBackingStore> backingStore() const;
@@ -75,10 +75,10 @@
virtual void deleteIndex(int64_t transactionId, int64_t objectStoreId, int64_t indexId);
IDBTransactionCoordinatorLevelDB* transactionCoordinator() const { return m_transactionCoordinator.get(); }
- void transactionStarted(PassRefPtr<IDBTransactionBackendLevelDB>);
- void transactionFinished(PassRefPtr<IDBTransactionBackendLevelDB>);
- void transactionFinishedAndCompleteFired(PassRefPtr<IDBTransactionBackendLevelDB>);
- void transactionFinishedAndAbortFired(PassRefPtr<IDBTransactionBackendLevelDB>);
+ void transactionStarted(IDBTransactionBackendInterface*);
+ void transactionFinished(IDBTransactionBackendInterface*);
+ void transactionFinishedAndCompleteFired(IDBTransactionBackendInterface*);
+ void transactionFinishedAndAbortFired(IDBTransactionBackendInterface*);
virtual void get(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange>, bool keyOnly, PassRefPtr<IDBCallbacks>) OVERRIDE;
virtual void put(int64_t transactionId, int64_t objectStoreId, PassRefPtr<SharedBuffer> value, PassRefPtr<IDBKey>, PutMode, PassRefPtr<IDBCallbacks>, const Vector<int64_t>& indexIds, const Vector<IndexKeys>&) OVERRIDE;
@@ -93,7 +93,7 @@
class VersionChangeAbortOperation;
private:
- IDBDatabaseBackendLevelDB(const String& name, IDBBackingStore* database, IDBFactoryBackendLevelDB*, const String& uniqueIdentifier);
+ IDBDatabaseBackendLevelDB(const String& name, IDBBackingStore* database, IDBFactoryBackendInterface*, const String& uniqueIdentifier);
bool openInternal();
void runIntVersionChangeTransaction(PassRefPtr<IDBCallbacks>, PassRefPtr<IDBDatabaseCallbacks>, int64_t transactionId, int64_t requestedVersion);
@@ -108,12 +108,12 @@
String m_identifier;
// This might not need to be a RefPtr since the factory's lifetime is that of the page group, but it's better to be conservitive than sorry.
- RefPtr<IDBFactoryBackendLevelDB> m_factory;
+ RefPtr<IDBFactoryBackendInterface> m_factory;
OwnPtr<IDBTransactionCoordinatorLevelDB> m_transactionCoordinator;
- RefPtr<IDBTransactionBackendLevelDB> m_runningVersionChangeTransaction;
+ RefPtr<IDBTransactionBackendInterface> m_runningVersionChangeTransaction;
- typedef HashMap<int64_t, IDBTransactionBackendLevelDB*> TransactionMap;
+ typedef HashMap<int64_t, IDBTransactionBackendInterface*> TransactionMap;
TransactionMap m_transactions;
class PendingOpenCall {
Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h (157650 => 157651)
--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h 2013-10-18 22:57:15 UTC (rev 157650)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h 2013-10-18 23:23:53 UTC (rev 157651)
@@ -56,7 +56,7 @@
virtual ~IDBFactoryBackendLevelDB();
// Notifications from weak pointers.
- virtual void removeIDBDatabaseBackend(const String& uniqueIdentifier);
+ virtual void removeIDBDatabaseBackend(const String& uniqueIdentifier) OVERRIDE FINAL;
virtual void getDatabaseNames(PassRefPtr<IDBCallbacks>, PassRefPtr<SecurityOrigin>, ScriptExecutionContext*, const String& dataDir);
virtual void open(const String& name, int64_t version, int64_t transactionId, PassRefPtr<IDBCallbacks>, PassRefPtr<IDBDatabaseCallbacks>, PassRefPtr<SecurityOrigin>, ScriptExecutionContext*, const String& dataDir);
Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp (157650 => 157651)
--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp 2013-10-18 22:57:15 UTC (rev 157650)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp 2013-10-18 23:23:53 UTC (rev 157651)
@@ -89,7 +89,7 @@
return true;
}
-bool IDBObjectStoreBackendLevelDB::makeIndexWriters(PassRefPtr<IDBTransactionBackendLevelDB> transaction, IDBBackingStore* backingStore, int64_t databaseId, const IDBObjectStoreMetadata& objectStore, PassRefPtr<IDBKey> primaryKey, bool keyWasGenerated, const Vector<int64_t>& indexIds, const Vector<IDBDatabaseBackendInterface::IndexKeys>& indexKeys, Vector<OwnPtr<IndexWriter> >* indexWriters, String* errorMessage, bool& completed)
+bool IDBObjectStoreBackendLevelDB::makeIndexWriters(PassRefPtr<IDBTransactionBackendInterface> transaction, IDBBackingStore* backingStore, int64_t databaseId, const IDBObjectStoreMetadata& objectStore, PassRefPtr<IDBKey> primaryKey, bool keyWasGenerated, const Vector<int64_t>& indexIds, const Vector<IDBDatabaseBackendInterface::IndexKeys>& indexKeys, Vector<OwnPtr<IndexWriter>>* indexWriters, String* errorMessage, bool& completed)
{
ASSERT(indexIds.size() == indexKeys.size());
completed = false;
Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h (157650 => 157651)
--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h 2013-10-18 22:57:15 UTC (rev 157650)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h 2013-10-18 23:23:53 UTC (rev 157651)
@@ -66,7 +66,7 @@
IDBDatabaseBackendInterface::IndexKeys m_indexKeys;
};
- bool makeIndexWriters(PassRefPtr<IDBTransactionBackendLevelDB>, IDBBackingStore*, int64_t databaseId, const IDBObjectStoreMetadata&, PassRefPtr<IDBKey> primaryKey, bool keyWasGenerated, const Vector<int64_t>& indexIds, const Vector<IDBDatabaseBackendInterface::IndexKeys>&, Vector<OwnPtr<IndexWriter> >* indexWriters, String* errorMessage, bool& completed) WARN_UNUSED_RETURN;
+ bool makeIndexWriters(PassRefPtr<IDBTransactionBackendInterface>, IDBBackingStore*, int64_t databaseId, const IDBObjectStoreMetadata&, PassRefPtr<IDBKey> primaryKey, bool keyWasGenerated, const Vector<int64_t>& indexIds, const Vector<IDBDatabaseBackendInterface::IndexKeys>&, Vector<OwnPtr<IndexWriter>>* indexWriters, String* errorMessage, bool& completed) WARN_UNUSED_RETURN;
PassRefPtr<IDBKey> generateKey(PassRefPtr<IDBBackingStore>, PassRefPtr<IDBTransactionBackendLevelDB>, int64_t databaseId, int64_t objectStoreId);
bool updateKeyGenerator(PassRefPtr<IDBBackingStore>, PassRefPtr<IDBTransactionBackendLevelDB>, int64_t databaseId, int64_t objectStoreId, const IDBKey*, bool checkCurrent);
Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp (157650 => 157651)
--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp 2013-10-18 22:57:15 UTC (rev 157650)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp 2013-10-18 23:23:53 UTC (rev 157651)
@@ -50,7 +50,7 @@
}
IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB(IDBBackingStore* backingStore, int64_t id, PassRefPtr<IDBDatabaseCallbacks> callbacks, const HashSet<int64_t>& objectStoreIds, IndexedDB::TransactionMode mode, IDBDatabaseBackendLevelDB* database)
- : m_id(id)
+ : IDBTransactionBackendInterface(id)
, m_objectStoreIds(objectStoreIds)
, m_mode(mode)
, m_state(Unused)
@@ -136,7 +136,7 @@
m_database->transactionFinished(this);
if (m_callbacks)
- m_callbacks->onAbort(m_id, error);
+ m_callbacks->onAbort(id(), error);
m_database->transactionFinishedAndAbortFired(this);
@@ -222,10 +222,10 @@
m_database->transactionFinished(this);
if (committed) {
- m_callbacks->onComplete(m_id);
+ m_callbacks->onComplete(id());
m_database->transactionFinishedAndCompleteFired(this);
} else {
- m_callbacks->onAbort(m_id, IDBDatabaseError::create(IDBDatabaseException::UnknownError, "Internal error committing transaction."));
+ m_callbacks->onAbort(id(), IDBDatabaseError::create(IDBDatabaseException::UnknownError, "Internal error committing transaction."));
m_database->transactionFinishedAndAbortFired(this);
}
Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h (157650 => 157651)
--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h 2013-10-18 22:57:15 UTC (rev 157650)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h 2013-10-18 23:23:53 UTC (rev 157651)
@@ -49,8 +49,9 @@
static PassRefPtr<IDBTransactionBackendLevelDB> create(IDBBackingStore*, int64_t transactionId, PassRefPtr<IDBDatabaseCallbacks>, const Vector<int64_t>&, IndexedDB::TransactionMode, IDBDatabaseBackendLevelDB*);
virtual ~IDBTransactionBackendLevelDB();
- virtual void abort();
- void commit();
+ virtual void commit() OVERRIDE FINAL;
+ virtual void abort() OVERRIDE FINAL;
+ virtual void abort(PassRefPtr<IDBDatabaseError>) OVERRIDE FINAL;
class Operation {
public:
@@ -58,9 +59,8 @@
virtual void perform() = 0;
};
- void abort(PassRefPtr<IDBDatabaseError>);
void run();
- IndexedDB::TransactionMode mode() const { return m_mode; }
+ virtual IndexedDB::TransactionMode mode() const OVERRIDE FINAL { return m_mode; }
const HashSet<int64_t>& scope() const { return m_objectStoreIds; }
void scheduleTask(PassOwnPtr<Operation> task, PassOwnPtr<Operation> abortTask = nullptr) { scheduleTask(IDBDatabaseBackendInterface::NormalTask, task, abortTask); }
void scheduleTask(IDBDatabaseBackendInterface::TaskType, PassOwnPtr<Operation>, PassOwnPtr<Operation> abortTask = nullptr);
@@ -68,8 +68,7 @@
void unregisterOpenCursor(IDBCursorBackendLevelDB*);
void addPreemptiveEvent() { m_pendingPreemptiveEvents++; }
void didCompletePreemptiveEvent() { m_pendingPreemptiveEvents--; ASSERT(m_pendingPreemptiveEvents >= 0); }
- IDBBackingStore::Transaction* backingStoreTransaction() { return &m_transaction; }
- int64_t id() const { return m_id; }
+ virtual IDBBackingStore::Transaction* backingStoreTransaction() OVERRIDE FINAL { return &m_transaction; }
IDBDatabaseBackendLevelDB* database() const { return m_database.get(); }
@@ -104,7 +103,6 @@
void taskTimerFired(Timer<IDBTransactionBackendLevelDB>*);
void closeOpenCursors();
- const int64_t m_id;
const HashSet<int64_t> m_objectStoreIds;
const IndexedDB::TransactionMode m_mode;
Modified: trunk/Source/WebKit2/ChangeLog (157650 => 157651)
--- trunk/Source/WebKit2/ChangeLog 2013-10-18 22:57:15 UTC (rev 157650)
+++ trunk/Source/WebKit2/ChangeLog 2013-10-18 23:23:53 UTC (rev 157651)
@@ -1,3 +1,14 @@
+2013-10-18 Brady Eidson <beid...@apple.com>
+
+ Get rid of IDBFactoryBackendLevelDB and IDBTransactionBackendLevelDB in IDBDatabaseBackendLevelDB.
+ https://bugs.webkit.org/show_bug.cgi?id=123039
+
+ Reviewed by Anders Carlsson.
+
+ * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
+ (WebKit::WebIDBFactoryBackend::removeIDBDatabaseBackend): Stub out this new interface method.
+ * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
+
2013-10-18 Dan Bernstein <m...@apple.com>
[Cocoa] WKBrowsingController accessors crash instead of returning nil
Modified: trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp (157650 => 157651)
--- trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp 2013-10-18 22:57:15 UTC (rev 157650)
+++ trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp 2013-10-18 23:23:53 UTC (rev 157651)
@@ -94,6 +94,11 @@
notImplemented();
}
+void WebIDBFactoryBackend::removeIDBDatabaseBackend(const String&)
+{
+ notImplemented();
+}
+
} // namespace WebKit
#endif // ENABLE(DATABASE_PROCESS)
Modified: trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h (157650 => 157651)
--- trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h 2013-10-18 22:57:15 UTC (rev 157650)
+++ trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h 2013-10-18 23:23:53 UTC (rev 157651)
@@ -39,10 +39,12 @@
virtual ~WebIDBFactoryBackend();
- virtual void getDatabaseNames(PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir);
- virtual void open(const String& name, int64_t version, int64_t transactionId, PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::IDBDatabaseCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir);
- virtual void deleteDatabase(const String& name, PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir);
+ virtual void getDatabaseNames(PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir) OVERRIDE FINAL;
+ virtual void open(const String& name, int64_t version, int64_t transactionId, PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::IDBDatabaseCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir) OVERRIDE FINAL;
+ virtual void deleteDatabase(const String& name, PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir) OVERRIDE FINAL;
+ virtual void removeIDBDatabaseBackend(const String& uniqueIdentifier) OVERRIDE FINAL;
+
private:
WebIDBFactoryBackend();
};