WebsiteDataRecord.h [plain text]
#pragma once
#include "WebsiteDataType.h"
#include <WebCore/RegistrableDomain.h>
#include <WebCore/SecurityOriginData.h>
#include <WebCore/SecurityOriginHash.h>
#include <wtf/HashMap.h>
#include <wtf/HashSet.h>
#include <wtf/OptionSet.h>
#include <wtf/Optional.h>
#include <wtf/text/StringHash.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class SecurityOrigin;
}
namespace WebKit {
struct WebsiteDataRecord {
static String displayNameForCookieHostName(const String& hostName);
static String displayNameForHostName(const String& hostName);
static String displayNameForOrigin(const WebCore::SecurityOriginData&);
void add(WebsiteDataType, const WebCore::SecurityOriginData&);
void addCookieHostName(const String& hostName);
#if ENABLE(NETSCAPE_PLUGIN_API)
void addPluginDataHostName(const String& hostName);
#endif
void addHSTSCacheHostname(const String& hostName);
void addAlternativeServicesHostname(const String& hostName);
#if ENABLE(RESOURCE_LOAD_STATISTICS)
void addResourceLoadStatisticsRegistrableDomain(const WebCore::RegistrableDomain&);
#endif
String displayName;
OptionSet<WebsiteDataType> types;
struct Size {
uint64_t totalSize;
HashMap<unsigned, uint64_t> typeSizes;
};
Optional<Size> size;
HashSet<WebCore::SecurityOriginData> origins;
HashSet<String> cookieHostNames;
#if ENABLE(NETSCAPE_PLUGIN_API)
HashSet<String> pluginDataHostNames;
#endif
HashSet<String> HSTSCacheHostNames;
HashSet<String> alternativeServicesHostNames;
#if ENABLE(RESOURCE_LOAD_STATISTICS)
HashSet<WebCore::RegistrableDomain> resourceLoadStatisticsRegistrableDomains;
#endif
bool matches(const WebCore::RegistrableDomain&) const;
String topPrivatelyControlledDomain();
};
}