WebPluginSiteDataManager.h [plain text]
#ifndef WebPluginSiteDataManager_h
#define WebPluginSiteDataManager_h
#if ENABLE(NETSCAPE_PLUGIN_API)
#include "APIObject.h"
#include "Arguments.h"
#include "GenericCallback.h"
#include <memory>
#include <wtf/HashMap.h>
#include <wtf/PassRefPtr.h>
namespace WebKit {
class WebContext;
class WebProcessProxy;
typedef GenericCallback<API::Array*> ArrayCallback;
class WebPluginSiteDataManager : public API::ObjectImpl<API::Object::Type::PluginSiteDataManager> {
public:
static PassRefPtr<WebPluginSiteDataManager> create(WebContext*);
virtual ~WebPluginSiteDataManager();
void invalidate();
void clearContext() { m_webContext = 0; }
void getSitesWithData(std::function<void (API::Array*, CallbackBase::Error)>);
void didGetSitesWithData(const Vector<String>& sites, uint64_t callbackID);
void clearSiteData(API::Array* sites, uint64_t flags, uint64_t maxAgeInSeconds, std::function<void (CallbackBase::Error)>);
void didClearSiteData(uint64_t callbackID);
void didGetSitesWithDataForSinglePlugin(const Vector<String>& sites, uint64_t callbackID);
void didClearSiteDataForSinglePlugin(uint64_t callbackID);
private:
explicit WebPluginSiteDataManager(WebContext*);
WebContext* m_webContext;
HashMap<uint64_t, RefPtr<ArrayCallback>> m_arrayCallbacks;
HashMap<uint64_t, RefPtr<VoidCallback>> m_voidCallbacks;
void didGetSitesWithDataForAllPlugins(const Vector<String>& sites, uint64_t callbackID);
void didClearSiteDataForAllPlugins(uint64_t callbackID);
class GetSitesWithDataState;
HashMap<uint64_t, std::unique_ptr<GetSitesWithDataState>> m_pendingGetSitesWithData;
class ClearSiteDataState;
HashMap<uint64_t, std::unique_ptr<ClearSiteDataState>> m_pendingClearSiteData;
};
}
#endif // ENABLE(NETSCAPE_PLUGIN_API)
#endif // WebPluginSiteDataManager_h