WebDatabaseManager.h [plain text]
#pragma once
#include "WebKit.h"
#include <WebCore/DatabaseManagerClient.h>
namespace WebCore {
struct SecurityOriginData;
}
class WebDatabaseManager final : public IWebDatabaseManager2, private WebCore::DatabaseManagerClient {
public:
static WebDatabaseManager* createInstance();
virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
virtual ULONG STDMETHODCALLTYPE AddRef();
virtual ULONG STDMETHODCALLTYPE Release();
virtual HRESULT STDMETHODCALLTYPE sharedWebDatabaseManager(_COM_Outptr_opt_ IWebDatabaseManager** result);
virtual HRESULT STDMETHODCALLTYPE origins(_COM_Outptr_opt_ IEnumVARIANT** result);
virtual HRESULT STDMETHODCALLTYPE databasesWithOrigin(_In_opt_ IWebSecurityOrigin*, _COM_Outptr_opt_ IEnumVARIANT** result);
virtual HRESULT STDMETHODCALLTYPE detailsForDatabase(_In_ BSTR databaseName, _In_opt_ IWebSecurityOrigin*, _COM_Outptr_opt_ IPropertyBag** result);
virtual HRESULT STDMETHODCALLTYPE deleteAllDatabases();
virtual HRESULT STDMETHODCALLTYPE deleteOrigin(_In_opt_ IWebSecurityOrigin*);
virtual HRESULT STDMETHODCALLTYPE deleteDatabase(_In_ BSTR databaseName, _In_opt_ IWebSecurityOrigin*);
virtual HRESULT STDMETHODCALLTYPE setQuota(_In_ BSTR origin, unsigned long long quota);
virtual HRESULT STDMETHODCALLTYPE deleteAllIndexedDatabases();
virtual void dispatchDidModifyOrigin(const WebCore::SecurityOriginData&);
virtual void dispatchDidModifyDatabase(const WebCore::SecurityOriginData&, const WTF::String& databaseName);
private:
WebDatabaseManager();
~WebDatabaseManager();
ULONG m_refCount { 0 };
};
void WebKitInitializeWebDatabasesIfNecessary();