Diff
Modified: trunk/Source/WTF/ChangeLog (248955 => 248956)
--- trunk/Source/WTF/ChangeLog 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WTF/ChangeLog 2019-08-21 19:24:34 UTC (rev 248956)
@@ -1,3 +1,14 @@
+2019-08-21 Chris Dumez <cdu...@apple.com>
+
+ registrableDomainsToRemoveWebsiteDataFor() does not need to return a HashMap
+ https://bugs.webkit.org/show_bug.cgi?id=200985
+
+ Reviewed by John Wilander.
+
+ Allow calling crossThreadCopy() on a std::pair<>.
+
+ * wtf/CrossThreadCopier.h:
+
2019-08-21 Keith Rollin <krol...@apple.com>
Remove support for watchOS < 6.0
Modified: trunk/Source/WTF/wtf/CrossThreadCopier.h (248955 => 248956)
--- trunk/Source/WTF/wtf/CrossThreadCopier.h 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WTF/wtf/CrossThreadCopier.h 2019-08-21 19:24:34 UTC (rev 248956)
@@ -145,6 +145,15 @@
}
};
+// Default specialization for pairs of CrossThreadCopyable classes
+template<typename F, typename S> struct CrossThreadCopierBase<false, false, std::pair<F, S> > {
+ typedef std::pair<F, S> Type;
+ static Type copy(const Type& source)
+ {
+ return std::make_pair(CrossThreadCopier<F>::copy(source.first), CrossThreadCopier<S>::copy(source.second));
+ }
+};
+
// Default specialization for Optional of CrossThreadCopyable class.
template<typename T> struct CrossThreadCopierBase<false, false, Optional<T>> {
template<typename U> static Optional<T> copy(U&& source)
Modified: trunk/Source/WebKit/ChangeLog (248955 => 248956)
--- trunk/Source/WebKit/ChangeLog 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WebKit/ChangeLog 2019-08-21 19:24:34 UTC (rev 248956)
@@ -1,3 +1,33 @@
+2019-08-21 Chris Dumez <cdu...@apple.com>
+
+ registrableDomainsToRemoveWebsiteDataFor() does not need to return a HashMap
+ https://bugs.webkit.org/show_bug.cgi?id=200985
+
+ Reviewed by John Wilander.
+
+ registrableDomainsToRemoveWebsiteDataFor() does not need to return a HashMap. It is more
+ efficient to simply return a Vector since we never need to look up keys.
+
+ * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
+ (WebKit::ResourceLoadStatisticsDatabaseStore::registrableDomainsToRemoveWebsiteDataFor):
+ * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
+ * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
+ (WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor):
+ * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
+ * NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
+ (WebKit::domainsToString):
+ * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
+ * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
+ (WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains):
+ * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
+ (WebKit::NetworkProcess::deleteCookiesForTesting):
+ * NetworkProcess/NetworkProcess.h:
+ * NetworkProcess/NetworkSession.cpp:
+ (WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomains):
+ * NetworkProcess/NetworkSession.h:
+
2019-08-21 Russell Epstein <repst...@apple.com>
Unreviewed, rolling out r248942.
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp (248955 => 248956)
--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp 2019-08-21 19:24:34 UTC (rev 248956)
@@ -1511,7 +1511,7 @@
return false;
}
-HashMap<RegistrableDomain, WebsiteDataToRemove> ResourceLoadStatisticsDatabaseStore::registrableDomainsToRemoveWebsiteDataFor()
+Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> ResourceLoadStatisticsDatabaseStore::registrableDomainsToRemoveWebsiteDataFor()
{
ASSERT(!RunLoop::isMain());
@@ -1523,15 +1523,15 @@
clearExpiredUserInteractions();
- HashMap<RegistrableDomain, WebsiteDataToRemove> domainsToRemoveWebsiteDataFor;
+ Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> domainsToRemoveWebsiteDataFor;
Vector<PrevalentDomainData> prevalentDomains = this->prevalentDomains();
Vector<unsigned> domainIDsToClearGrandfathering;
for (auto& statistic : prevalentDomains) {
if (shouldRemoveAllWebsiteDataFor(statistic, shouldCheckForGrandfathering))
- domainsToRemoveWebsiteDataFor.add(statistic.registerableDomain, WebsiteDataToRemove::All);
+ domainsToRemoveWebsiteDataFor.append(std::make_pair(statistic.registerableDomain, WebsiteDataToRemove::All));
else if (shouldRemoveAllButCookiesFor(statistic, shouldCheckForGrandfathering))
- domainsToRemoveWebsiteDataFor.add(statistic.registerableDomain, WebsiteDataToRemove::AllButCookies);
+ domainsToRemoveWebsiteDataFor.append(std::make_pair(statistic.registerableDomain, WebsiteDataToRemove::AllButCookies));
if (shouldClearGrandfathering && statistic.grandfathered)
domainIDsToClearGrandfathering.append(statistic.domainID);
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h (248955 => 248956)
--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h 2019-08-21 19:24:34 UTC (rev 248956)
@@ -162,7 +162,7 @@
std::pair<AddedRecord, unsigned> ensureResourceStatisticsForRegistrableDomain(const RegistrableDomain&);
bool shouldRemoveAllWebsiteDataFor(const PrevalentDomainData&, bool shouldCheckForGrandfathering) const;
bool shouldRemoveAllButCookiesFor(const PrevalentDomainData&, bool shouldCheckForGrandfathering) const;
- HashMap<RegistrableDomain, WebsiteDataToRemove> registrableDomainsToRemoveWebsiteDataFor() override;
+ Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> registrableDomainsToRemoveWebsiteDataFor() override;
bool isDatabaseStore() const final { return true; }
bool createSchema();
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp (248955 => 248956)
--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp 2019-08-21 19:24:34 UTC (rev 248956)
@@ -829,7 +829,7 @@
return resourceStatistic.gotLinkDecorationFromPrevalentResource && !hasHadUnexpiredRecentUserInteraction(resourceStatistic, OperatingDatesWindow::Short) && (!shouldCheckForGrandfathering || !resourceStatistic.grandfathered);
}
-HashMap<RegistrableDomain, WebsiteDataToRemove> ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor()
+Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor()
{
ASSERT(!RunLoop::isMain());
@@ -839,12 +839,12 @@
if (shouldClearGrandfathering)
clearEndOfGrandfatheringTimeStamp();
- HashMap<RegistrableDomain, WebsiteDataToRemove> domainsToRemoveWebsiteDataFor;
+ Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> domainsToRemoveWebsiteDataFor;
for (auto& statistic : m_resourceStatisticsMap.values()) {
if (shouldRemoveAllWebsiteDataFor(statistic, shouldCheckForGrandfathering))
- domainsToRemoveWebsiteDataFor.add(statistic.registrableDomain, WebsiteDataToRemove::All);
+ domainsToRemoveWebsiteDataFor.append(std::make_pair(statistic.registrableDomain, WebsiteDataToRemove::All));
else if (shouldRemoveAllButCookiesFor(statistic, shouldCheckForGrandfathering)) {
- domainsToRemoveWebsiteDataFor.add(statistic.registrableDomain, WebsiteDataToRemove::AllButCookies);
+ domainsToRemoveWebsiteDataFor.append(std::make_pair(statistic.registrableDomain, WebsiteDataToRemove::AllButCookies));
statistic.gotLinkDecorationFromPrevalentResource = false;
}
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h (248955 => 248956)
--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h 2019-08-21 19:24:34 UTC (rev 248956)
@@ -130,7 +130,7 @@
void removeDataRecords(CompletionHandler<void()>&&);
void pruneStatisticsIfNeeded() override;
ResourceLoadStatistics& ensureResourceStatisticsForRegistrableDomain(const RegistrableDomain&);
- HashMap<RegistrableDomain, WebsiteDataToRemove> registrableDomainsToRemoveWebsiteDataFor() override;
+ Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> registrableDomainsToRemoveWebsiteDataFor() override;
bool isMemoryStore() const final { return true; }
WeakPtr<ResourceLoadStatisticsPersistentStorage> m_persistentStorage;
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp (248955 => 248956)
--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp 2019-08-21 19:24:34 UTC (rev 248956)
@@ -65,14 +65,16 @@
return builder.toString();
}
-static String domainsToString(const HashMap<RegistrableDomain, WebsiteDataToRemove>& domainsToRemoveWebsiteDataFor)
+static String domainsToString(const Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>>& domainsToRemoveWebsiteDataFor)
{
StringBuilder builder;
- for (auto& domain : domainsToRemoveWebsiteDataFor.keys()) {
+ for (auto& pair : domainsToRemoveWebsiteDataFor) {
+ auto& domain = pair.first;
+ auto& dataToRemove = pair.second;
if (!builder.isEmpty())
builder.appendLiteral(", ");
builder.append(domain.string());
- switch (domainsToRemoveWebsiteDataFor.get(domain)) {
+ switch (dataToRemove) {
case WebsiteDataToRemove::All:
builder.appendLiteral("(all data)");
break;
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h (248955 => 248956)
--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h 2019-08-21 19:24:34 UTC (rev 248956)
@@ -198,7 +198,7 @@
void scheduleStatisticsProcessingRequestIfNecessary();
void mergeOperatingDates(Vector<OperatingDate>&&);
virtual Vector<RegistrableDomain> ensurePrevalentResourcesForDebugMode() = 0;
- virtual HashMap<RegistrableDomain, WebsiteDataToRemove> registrableDomainsToRemoveWebsiteDataFor() = 0;
+ virtual Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> registrableDomainsToRemoveWebsiteDataFor() = 0;
virtual void pruneStatisticsIfNeeded() = 0;
WebResourceLoadStatisticsStore& store() { return m_store; }
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp (248955 => 248956)
--- trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp 2019-08-21 19:24:34 UTC (rev 248956)
@@ -1018,7 +1018,7 @@
m_networkSession = nullptr;
}
-void WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains(OptionSet<WebsiteDataType> dataTypes, HashMap<RegistrableDomain, WebsiteDataToRemove>&& domainsToRemoveWebsiteDataFor, bool shouldNotifyPage, CompletionHandler<void(const HashSet<RegistrableDomain>&)>&& completionHandler)
+void WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains(OptionSet<WebsiteDataType> dataTypes, Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>>&& domainsToRemoveWebsiteDataFor, bool shouldNotifyPage, CompletionHandler<void(const HashSet<RegistrableDomain>&)>&& completionHandler)
{
ASSERT(RunLoop::isMain());
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h (248955 => 248956)
--- trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h 2019-08-21 19:24:34 UTC (rev 248956)
@@ -123,7 +123,7 @@
void logSubresourceRedirect(const RedirectedFromDomain&, const RedirectedToDomain&, CompletionHandler<void()>&&);
void logCrossSiteLoadWithLinkDecoration(const NavigatedFromDomain&, const NavigatedToDomain&, CompletionHandler<void()>&&);
void clearUserInteraction(const TopFrameDomain&, CompletionHandler<void()>&&);
- void deleteWebsiteDataForRegistrableDomains(OptionSet<WebsiteDataType>, HashMap<RegistrableDomain, WebsiteDataToRemove>&&, bool shouldNotifyPage, CompletionHandler<void(const HashSet<RegistrableDomain>&)>&&);
+ void deleteWebsiteDataForRegistrableDomains(OptionSet<WebsiteDataType>, Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>>&&, bool shouldNotifyPage, CompletionHandler<void(const HashSet<RegistrableDomain>&)>&&);
void registrableDomainsWithWebsiteData(OptionSet<WebsiteDataType>, bool shouldNotifyPage, CompletionHandler<void(HashSet<RegistrableDomain>&&)>&&);
StorageAccessWasGranted grantStorageAccess(const SubFrameDomain&, const TopFrameDomain&, Optional<WebCore::FrameIdentifier>, WebCore::PageIdentifier);
void hasHadUserInteraction(const RegistrableDomain&, CompletionHandler<void(bool)>&&);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (248955 => 248956)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-08-21 19:24:34 UTC (rev 248956)
@@ -1597,7 +1597,7 @@
return originsDeleted;
}
-void NetworkProcess::deleteWebsiteDataForRegistrableDomains(PAL::SessionID sessionID, OptionSet<WebsiteDataType> websiteDataTypes, HashMap<RegistrableDomain, WebsiteDataToRemove>&& domains, bool shouldNotifyPage, CompletionHandler<void(const HashSet<RegistrableDomain>&)>&& completionHandler)
+void NetworkProcess::deleteWebsiteDataForRegistrableDomains(PAL::SessionID sessionID, OptionSet<WebsiteDataType> websiteDataTypes, Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>>&& domains, bool shouldNotifyPage, CompletionHandler<void(const HashSet<RegistrableDomain>&)>&& completionHandler)
{
OptionSet<WebsiteDataFetchOption> fetchOptions = WebsiteDataFetchOption::DoNotCreateProcesses;
@@ -1635,9 +1635,11 @@
Vector<RegistrableDomain> domainsToDeleteAllButCookiesFor;
Vector<String> hostnamesWithCookiesToDelete;
if (websiteDataTypes.contains(WebsiteDataType::Cookies)) {
- for (auto& domain : domains.keys()) {
+ for (auto& pair : domains) {
+ auto& domain = pair.first;
+ auto& dataToRemove = pair.second;
domainsToDeleteAllButCookiesFor.append(domain);
- switch (domains.get(domain)) {
+ switch (dataToRemove) {
case WebsiteDataToRemove::All:
domainsToDeleteCookiesFor.append(domain);
break;
@@ -1665,8 +1667,8 @@
callbackAggregator->m_domains.add(RegistrableDomain::uncheckedCreateFromHost(host));
}
} else {
- for (auto& domain : domains.keys())
- domainsToDeleteAllButCookiesFor.append(domain);
+ for (auto& domain : domains)
+ domainsToDeleteAllButCookiesFor.append(domain.first);
}
Vector<String> hostnamesWithHSTSToDelete;
@@ -1793,8 +1795,9 @@
void NetworkProcess::deleteCookiesForTesting(PAL::SessionID sessionID, RegistrableDomain domain, bool includeHttpOnlyCookies, CompletionHandler<void()>&& completionHandler)
{
OptionSet<WebsiteDataType> cookieType = WebsiteDataType::Cookies;
- HashMap<RegistrableDomain, WebsiteDataToRemove> toDeleteFor;
- toDeleteFor.add(domain, includeHttpOnlyCookies ? WebsiteDataToRemove::All : WebsiteDataToRemove::AllButHttpOnlyCookies);
+ Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> toDeleteFor = {
+ std::make_pair(domain, includeHttpOnlyCookies ? WebsiteDataToRemove::All : WebsiteDataToRemove::AllButHttpOnlyCookies)
+ };
deleteWebsiteDataForRegistrableDomains(sessionID, cookieType, WTFMove(toDeleteFor), true, [completionHandler = WTFMove(completionHandler)] (const HashSet<RegistrableDomain>& domainsDeletedFor) mutable {
UNUSED_PARAM(domainsDeletedFor);
completionHandler();
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (248955 => 248956)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2019-08-21 19:24:34 UTC (rev 248956)
@@ -208,7 +208,7 @@
#if ENABLE(RESOURCE_LOAD_STATISTICS)
void clearPrevalentResource(PAL::SessionID, const RegistrableDomain&, CompletionHandler<void()>&&);
void clearUserInteraction(PAL::SessionID, const RegistrableDomain&, CompletionHandler<void()>&&);
- void deleteWebsiteDataForRegistrableDomains(PAL::SessionID, OptionSet<WebsiteDataType>, HashMap<RegistrableDomain, WebsiteDataToRemove>&&, bool shouldNotifyPage, CompletionHandler<void(const HashSet<RegistrableDomain>&)>&&);
+ void deleteWebsiteDataForRegistrableDomains(PAL::SessionID, OptionSet<WebsiteDataType>, Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>>&&, bool shouldNotifyPage, CompletionHandler<void(const HashSet<RegistrableDomain>&)>&&);
void deleteCookiesForTesting(PAL::SessionID, RegistrableDomain, bool includeHttpOnlyCookies, CompletionHandler<void()>&&);
void dumpResourceLoadStatistics(PAL::SessionID, CompletionHandler<void(String)>&&);
void updatePrevalentDomainsToBlockCookiesFor(PAL::SessionID, const Vector<RegistrableDomain>& domainsToBlock, CompletionHandler<void()>&&);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp (248955 => 248956)
--- trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp 2019-08-21 19:24:34 UTC (rev 248956)
@@ -176,7 +176,7 @@
m_networkProcess->parentProcessConnection()->send(Messages::NetworkProcessProxy::NotifyResourceLoadStatisticsTelemetryFinished(totalPrevalentResources, totalPrevalentResourcesWithUserInteraction, top3SubframeUnderTopFrameOrigins), 0);
}
-void NetworkSession::deleteWebsiteDataForRegistrableDomains(OptionSet<WebsiteDataType> dataTypes, HashMap<RegistrableDomain, WebsiteDataToRemove>&& domains, bool shouldNotifyPage, CompletionHandler<void(const HashSet<RegistrableDomain>&)>&& completionHandler)
+void NetworkSession::deleteWebsiteDataForRegistrableDomains(OptionSet<WebsiteDataType> dataTypes, Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>>&& domains, bool shouldNotifyPage, CompletionHandler<void(const HashSet<RegistrableDomain>&)>&& completionHandler)
{
m_networkProcess->deleteWebsiteDataForRegistrableDomains(m_sessionID, dataTypes, WTFMove(domains), shouldNotifyPage, WTFMove(completionHandler));
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.h (248955 => 248956)
--- trunk/Source/WebKit/NetworkProcess/NetworkSession.h 2019-08-21 19:17:14 UTC (rev 248955)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.h 2019-08-21 19:24:34 UTC (rev 248956)
@@ -85,7 +85,7 @@
WebResourceLoadStatisticsStore* resourceLoadStatistics() const { return m_resourceLoadStatistics.get(); }
void setResourceLoadStatisticsEnabled(bool);
void notifyResourceLoadStatisticsProcessed();
- void deleteWebsiteDataForRegistrableDomains(OptionSet<WebsiteDataType>, HashMap<WebCore::RegistrableDomain, WebsiteDataToRemove>&&, bool shouldNotifyPage, CompletionHandler<void(const HashSet<WebCore::RegistrableDomain>&)>&&);
+ void deleteWebsiteDataForRegistrableDomains(OptionSet<WebsiteDataType>, Vector<std::pair<WebCore::RegistrableDomain, WebsiteDataToRemove>>&&, bool shouldNotifyPage, CompletionHandler<void(const HashSet<WebCore::RegistrableDomain>&)>&&);
void registrableDomainsWithWebsiteData(OptionSet<WebsiteDataType>, bool shouldNotifyPage, CompletionHandler<void(HashSet<WebCore::RegistrableDomain>&&)>&&);
void logDiagnosticMessageWithValue(const String& message, const String& description, unsigned value, unsigned significantFigures, WebCore::ShouldSample);
void notifyPageStatisticsTelemetryFinished(unsigned totalPrevalentResources, unsigned totalPrevalentResourcesWithUserInteraction, unsigned top3SubframeUnderTopFrameOrigins);