WebIDBConnectionToServer.h [plain text]
#pragma once
#if ENABLE(INDEXED_DATABASE)
#include "MessageSender.h"
#include "SandboxExtension.h"
#include <WebCore/IDBConnectionToServer.h>
#include <WebCore/ProcessIdentifier.h>
namespace WebKit {
class WebIDBResult;
class WebIDBConnectionToServer final : private WebCore::IDBClient::IDBConnectionToServerDelegate, private IPC::MessageSender, public RefCounted<WebIDBConnectionToServer> {
public:
static Ref<WebIDBConnectionToServer> create();
virtual ~WebIDBConnectionToServer();
WebCore::IDBClient::IDBConnectionToServer& coreConnectionToServer();
WebCore::IDBConnectionIdentifier identifier() const final;
void didReceiveMessage(IPC::Connection&, IPC::Decoder&);
void connectionToServerLost();
private:
WebIDBConnectionToServer();
IPC::Connection* messageSenderConnection() const final;
uint64_t messageSenderDestinationID() const final { return 0; }
void deleteDatabase(const WebCore::IDBRequestData&) final;
void openDatabase(const WebCore::IDBRequestData&) final;
void abortTransaction(const WebCore::IDBResourceIdentifier&) final;
void commitTransaction(const WebCore::IDBResourceIdentifier&) final;
void didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const WebCore::IDBResourceIdentifier&) final;
void createObjectStore(const WebCore::IDBRequestData&, const WebCore::IDBObjectStoreInfo&) final;
void deleteObjectStore(const WebCore::IDBRequestData&, const String& objectStoreName) final;
void renameObjectStore(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier, const String& newName) final;
void clearObjectStore(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier) final;
void createIndex(const WebCore::IDBRequestData&, const WebCore::IDBIndexInfo&) final;
void deleteIndex(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier, const String& indexName) final;
void renameIndex(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) final;
void putOrAdd(const WebCore::IDBRequestData&, const WebCore::IDBKeyData&, const WebCore::IDBValue&, const WebCore::IndexedDB::ObjectStoreOverwriteMode) final;
void getRecord(const WebCore::IDBRequestData&, const WebCore::IDBGetRecordData&) final;
void getAllRecords(const WebCore::IDBRequestData&, const WebCore::IDBGetAllRecordsData&) final;
void getCount(const WebCore::IDBRequestData&, const WebCore::IDBKeyRangeData&) final;
void deleteRecord(const WebCore::IDBRequestData&, const WebCore::IDBKeyRangeData&) final;
void openCursor(const WebCore::IDBRequestData&, const WebCore::IDBCursorInfo&) final;
void iterateCursor(const WebCore::IDBRequestData&, const WebCore::IDBIterateCursorData&) final;
void establishTransaction(uint64_t databaseConnectionIdentifier, const WebCore::IDBTransactionInfo&) final;
void databaseConnectionPendingClose(uint64_t databaseConnectionIdentifier) final;
void databaseConnectionClosed(uint64_t databaseConnectionIdentifier) final;
void abortOpenAndUpgradeNeeded(uint64_t databaseConnectionIdentifier, const WebCore::IDBResourceIdentifier& transactionIdentifier) final;
void didFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, const WebCore::IDBResourceIdentifier& requestIdentifier, const WebCore::IndexedDB::ConnectionClosedOnBehalfOfServer) final;
void openDBRequestCancelled(const WebCore::IDBRequestData&) final;
void getAllDatabaseNamesAndVersions(const WebCore::IDBResourceIdentifier&, const WebCore::ClientOrigin&) final;
void didDeleteDatabase(const WebCore::IDBResultData&);
void didOpenDatabase(const WebCore::IDBResultData&);
void didAbortTransaction(const WebCore::IDBResourceIdentifier& transactionIdentifier, const WebCore::IDBError&);
void didCommitTransaction(const WebCore::IDBResourceIdentifier& transactionIdentifier, const WebCore::IDBError&);
void didCreateObjectStore(const WebCore::IDBResultData&);
void didDeleteObjectStore(const WebCore::IDBResultData&);
void didRenameObjectStore(const WebCore::IDBResultData&);
void didClearObjectStore(const WebCore::IDBResultData&);
void didCreateIndex(const WebCore::IDBResultData&);
void didDeleteIndex(const WebCore::IDBResultData&);
void didRenameIndex(const WebCore::IDBResultData&);
void didPutOrAdd(const WebCore::IDBResultData&);
void didGetRecord(const WebIDBResult&);
void didGetAllRecords(const WebIDBResult&);
void didGetCount(const WebCore::IDBResultData&);
void didDeleteRecord(const WebCore::IDBResultData&);
void didOpenCursor(const WebIDBResult&);
void didIterateCursor(const WebIDBResult&);
void fireVersionChangeEvent(uint64_t uniqueDatabaseConnectionIdentifier, const WebCore::IDBResourceIdentifier& requestIdentifier, uint64_t requestedVersion);
void didStartTransaction(const WebCore::IDBResourceIdentifier& transactionIdentifier, const WebCore::IDBError&);
void didCloseFromServer(uint64_t databaseConnectionIdentifier, const WebCore::IDBError&);
void notifyOpenDBRequestBlocked(const WebCore::IDBResourceIdentifier& requestIdentifier, uint64_t oldVersion, uint64_t newVersion);
void didGetAllDatabaseNamesAndVersions(const WebCore::IDBResourceIdentifier&, Vector<WebCore::IDBDatabaseNameAndVersion>&&);
Ref<WebCore::IDBClient::IDBConnectionToServer> m_connectionToServer;
};
}
#endif // ENABLE(INDEXED_DATABASE)