PlugInAutoStartProvider.h [plain text]
#ifndef PlugInAutoStartProvider_h
#define PlugInAutoStartProvider_h
#include <WebCore/SessionID.h>
#include <functional>
#include <wtf/HashMap.h>
#include <wtf/HashSet.h>
#include <wtf/Noncopyable.h>
#include <wtf/Vector.h>
#include <wtf/text/StringHash.h>
#include <wtf/text/WTFString.h>
namespace API {
class Array;
class Dictionary;
}
namespace WebKit {
class WebProcessPool;
typedef HashMap<unsigned, double> PlugInAutoStartOriginMap;
typedef HashMap<WebCore::SessionID, PlugInAutoStartOriginMap> SessionPlugInAutoStartOriginMap;
typedef Vector<String> PlugInAutoStartOrigins;
class PlugInAutoStartProvider {
WTF_MAKE_NONCOPYABLE(PlugInAutoStartProvider);
public:
explicit PlugInAutoStartProvider(WebProcessPool*);
void addAutoStartOriginHash(const String& pageOrigin, unsigned plugInOriginHash, WebCore::SessionID);
void didReceiveUserInteraction(unsigned plugInOriginHash, WebCore::SessionID);
Ref<API::Dictionary> autoStartOriginsTableCopy() const;
void setAutoStartOriginsTable(API::Dictionary&);
void setAutoStartOriginsFilteringOutEntriesAddedAfterTime(API::Dictionary&, double time);
void setAutoStartOriginsArray(API::Array&);
SessionPlugInAutoStartOriginMap autoStartOriginHashesCopy() const;
const PlugInAutoStartOrigins& autoStartOrigins() const { return m_autoStartOrigins; }
private:
WebProcessPool* m_processPool;
void setAutoStartOriginsTableWithItemsPassingTest(API::Dictionary&, std::function<bool(double expirationTimestamp)>);
typedef HashMap<String, PlugInAutoStartOriginMap, ASCIICaseInsensitiveHash> AutoStartTable;
typedef HashMap<WebCore::SessionID, AutoStartTable> SessionAutoStartTable;
SessionAutoStartTable m_autoStartTable;
HashMap<WebCore::SessionID, HashMap<unsigned, String>> m_hashToOriginMap;
PlugInAutoStartOrigins m_autoStartOrigins;
};
}
#endif