WebDatabaseManagerProxy.h [plain text]
#ifndef WebDatabaseManagerProxy_h
#define WebDatabaseManagerProxy_h
#include "APIObject.h"
#include "Arguments.h"
#include "GenericCallback.h"
#include "MessageReceiver.h"
#include "OriginAndDatabases.h"
#include "WebContextSupplement.h"
#include "WebDatabaseManagerProxyClient.h"
#include <wtf/HashMap.h>
#include <wtf/PassRefPtr.h>
namespace WebKit {
class WebProcessPool;
class WebProcessProxy;
typedef GenericCallback<API::Array*> ArrayCallback;
class WebDatabaseManagerProxy : public API::ObjectImpl<API::Object::Type::DatabaseManager>, public WebContextSupplement, private IPC::MessageReceiver {
public:
static const char* supplementName();
static PassRefPtr<WebDatabaseManagerProxy> create(WebProcessPool*);
virtual ~WebDatabaseManagerProxy();
void initializeClient(const WKDatabaseManagerClientBase*);
void getDatabasesByOrigin(std::function<void (API::Array*, CallbackBase::Error)>);
void getDatabaseOrigins(std::function<void (API::Array*, CallbackBase::Error)>);
void deleteDatabaseWithNameForOrigin(const String& databaseIdentifier, API::SecurityOrigin*);
void deleteDatabasesForOrigin(API::SecurityOrigin*);
void deleteAllDatabases();
void setQuotaForOrigin(API::SecurityOrigin*, uint64_t quota);
static String originKey();
static String originQuotaKey();
static String originUsageKey();
static String databaseDetailsKey();
static String databaseDetailsNameKey();
static String databaseDetailsDisplayNameKey();
static String databaseDetailsExpectedUsageKey();
static String databaseDetailsCurrentUsageKey();
static String databaseDetailsCreationTimeKey();
static String databaseDetailsModificationTimeKey();
using API::Object::ref;
using API::Object::deref;
private:
explicit WebDatabaseManagerProxy(WebProcessPool*);
virtual void processPoolDestroyed() override;
virtual void processDidClose(WebProcessProxy*) override;
virtual bool shouldTerminate(WebProcessProxy*) const override;
virtual void refWebContextSupplement() override;
virtual void derefWebContextSupplement() override;
virtual void didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&) override;
void didGetDatabasesByOrigin(const Vector<OriginAndDatabases>& originAndDatabases, uint64_t callbackID);
void didGetDatabaseOrigins(const Vector<String>& originIdentifiers, uint64_t callbackID);
void didModifyOrigin(const String& originIdentifier);
void didModifyDatabase(const String& originIdentifier, const String& databaseIdentifier);
HashMap<uint64_t, RefPtr<ArrayCallback>> m_arrayCallbacks;
WebDatabaseManagerProxyClient m_client;
};
}
#endif // DatabaseManagerProxy_h