WebsiteDataRecord.cpp [plain text]
#include "config.h"
#include "WebsiteDataRecord.h"
#include <WebCore/LocalizedStrings.h>
#include <WebCore/PublicSuffix.h>
#include <WebCore/SecurityOrigin.h>
#if PLATFORM(COCOA)
#import <WebCore/CFNetworkSPI.h>
#endif
static String displayNameForLocalFiles()
{
return WEB_UI_STRING("Local documents on your computer", "'Website' name displayed when local documents have stored local data");
}
namespace WebKit {
String WebsiteDataRecord::displayNameForCookieHostName(const String& hostName)
{
#if PLATFORM(COCOA)
if (hostName == String(kCFHTTPCookieLocalFileDomain))
return displayNameForLocalFiles();
#endif
#if ENABLE(PUBLIC_SUFFIX_LIST)
return WebCore::topPrivatelyControlledDomain(hostName.startsWith('.') ? hostName.substring(1) : hostName);
#endif
return String();
}
#if ENABLE(NETSCAPE_PLUGIN_API)
String WebsiteDataRecord::displayNameForPluginDataHostName(const String& hostName)
{
#if ENABLE(PUBLIC_SUFFIX_LIST)
return WebCore::topPrivatelyControlledDomain(hostName);
#endif
return String();
}
#endif
String WebsiteDataRecord::displayNameForOrigin(const WebCore::SecurityOrigin& securityOrigin)
{
const auto& protocol = securityOrigin.protocol();
if (protocol == "file")
return displayNameForLocalFiles();
#if ENABLE(PUBLIC_SUFFIX_LIST)
if (protocol == "http" || protocol == "https")
return WebCore::topPrivatelyControlledDomain(securityOrigin.host());
#endif
return String();
}
void WebsiteDataRecord::add(WebsiteDataTypes type, RefPtr<WebCore::SecurityOrigin>&& origin)
{
types |= type;
origins.add(WTF::move(origin));
}
void WebsiteDataRecord::addCookieHostName(const String& hostName)
{
types |= WebsiteDataTypeCookies;
cookieHostNames.add(hostName);
}
#if ENABLE(NETSCAPE_PLUGIN_API)
void WebsiteDataRecord::addPluginDataHostName(const String& hostName)
{
types |= WebsiteDataTypePlugInData;
pluginDataHostNames.add(hostName);
}
#endif
}