WebsiteDataRecord.h [plain text]
#pragma once
#include "WebsiteDataType.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);
#if ENABLE(NETSCAPE_PLUGIN_API)
static String displayNameForPluginDataHostName(const String& hostName);
#endif
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 addOriginWithCredential(const String&);
String displayName;
OptionSet<WebsiteDataType> types;
struct Size {
uint64_t totalSize;
HashMap<unsigned, uint64_t> typeSizes;
};
std::optional<Size> size;
HashSet<WebCore::SecurityOriginData> origins;
HashSet<String> cookieHostNames;
#if ENABLE(NETSCAPE_PLUGIN_API)
HashSet<String> pluginDataHostNames;
#endif
HashSet<String> originsWithCredentials;
bool matchesTopPrivatelyControlledDomain(const String&) const;
String topPrivatelyControlledDomain();
};
}