Diff
Modified: trunk/Source/WebKit/ChangeLog (293036 => 293037)
--- trunk/Source/WebKit/ChangeLog 2022-04-19 20:36:24 UTC (rev 293036)
+++ trunk/Source/WebKit/ChangeLog 2022-04-19 21:47:41 UTC (rev 293037)
@@ -1,3 +1,20 @@
+2022-04-19 Sihui Liu <[email protected]>
+
+ Add logging for WebsiteDataStore data fetch and removal
+ https://bugs.webkit.org/show_bug.cgi?id=239409
+
+ Reviewed by Chris Dumez.
+
+ This would help us debug issues like rdar://91422245.
+
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::fetchWebsiteData):
+ (WebKit::NetworkProcess::deleteWebsiteData):
+ (WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
+ * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+ (WebKit::WebsiteDataStore::fetchDataAndApply):
+ (WebKit::WebsiteDataStore::removeData):
+
2022-04-19 Kimmo Kinnunen <[email protected]>
ASSERTION FAILED: !m_isInitializingSendSource crashes on the bots
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (293036 => 293037)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2022-04-19 20:36:24 UTC (rev 293036)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2022-04-19 21:47:41 UTC (rev 293037)
@@ -1407,6 +1407,7 @@
void NetworkProcess::fetchWebsiteData(PAL::SessionID sessionID, OptionSet<WebsiteDataType> websiteDataTypes, OptionSet<WebsiteDataFetchOption> fetchOptions, CompletionHandler<void(WebsiteData&&)>&& completionHandler)
{
+ RELEASE_LOG(Storage, "NetworkProcess::fetchWebsiteData started to fetch data for session %" PRIu64, sessionID.toUInt64());
struct CallbackAggregator final : public ThreadSafeRefCounted<CallbackAggregator> {
explicit CallbackAggregator(CompletionHandler<void(WebsiteData&&)>&& completionHandler)
: m_completionHandler(WTFMove(completionHandler))
@@ -1417,6 +1418,7 @@
{
RunLoop::main().dispatch([completionHandler = WTFMove(m_completionHandler), websiteData = WTFMove(m_websiteData)] () mutable {
completionHandler(WTFMove(websiteData));
+ RELEASE_LOG(Storage, "NetworkProcess::fetchWebsiteData finished fetching data");
});
}
@@ -1497,6 +1499,7 @@
void NetworkProcess::deleteWebsiteData(PAL::SessionID sessionID, OptionSet<WebsiteDataType> websiteDataTypes, WallTime modifiedSince, CompletionHandler<void()>&& completionHandler)
{
+ RELEASE_LOG(Storage, "NetworkProcess::deleteWebsiteData started to delete data modified since %f for session %" PRIu64, modifiedSince.secondsSinceEpoch().value(), sessionID.toUInt64());
auto* session = networkSession(sessionID);
#if PLATFORM(COCOA) || USE(SOUP)
@@ -1515,7 +1518,10 @@
WebCore::CredentialStorage::clearSessionCredentials();
}
- auto clearTasksHandler = WTF::CallbackAggregator::create(WTFMove(completionHandler));
+ auto clearTasksHandler = WTF::CallbackAggregator::create([completionHandler = WTFMove(completionHandler)]() mutable {
+ completionHandler();
+ RELEASE_LOG(Storage, "NetworkProcess::deleteWebsiteData finished deleting modified data");
+ });
if (websiteDataTypes.contains(WebsiteDataType::DOMCache) && session)
CacheStorage::Engine::clearAllCaches(*session, [clearTasksHandler] { });
@@ -1586,6 +1592,7 @@
void NetworkProcess::deleteWebsiteDataForOrigins(PAL::SessionID sessionID, OptionSet<WebsiteDataType> websiteDataTypes, const Vector<SecurityOriginData>& originDatas, const Vector<String>& cookieHostNames, const Vector<String>& HSTSCacheHostNames, const Vector<RegistrableDomain>& registrableDomains, CompletionHandler<void()>&& completionHandler)
{
+ RELEASE_LOG(Storage, "NetworkProcess::deleteWebsiteDataForOrigins started to delete data for session %" PRIu64, sessionID.toUInt64());
auto* session = networkSession(sessionID);
if (websiteDataTypes.contains(WebsiteDataType::Cookies)) {
@@ -1605,7 +1612,10 @@
}
#endif
- auto clearTasksHandler = WTF::CallbackAggregator::create(WTFMove(completionHandler));
+ auto clearTasksHandler = WTF::CallbackAggregator::create([completionHandler = WTFMove(completionHandler)]() mutable {
+ completionHandler();
+ RELEASE_LOG(Storage, "NetworkProcess::deleteWebsiteDataForOrigins finished deleting data");
+ });
if (websiteDataTypes.contains(WebsiteDataType::PrivateClickMeasurements) && session) {
for (auto& originData : originDatas)
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (293036 => 293037)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2022-04-19 20:36:24 UTC (rev 293036)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2022-04-19 21:47:41 UTC (rev 293037)
@@ -339,6 +339,7 @@
void WebsiteDataStore::fetchDataAndApply(OptionSet<WebsiteDataType> dataTypes, OptionSet<WebsiteDataFetchOption> fetchOptions, Ref<WorkQueue>&& queue, Function<void(Vector<WebsiteDataRecord>)>&& apply)
{
+ RELEASE_LOG(Storage, "WebsiteDataStore::fetchDataAndApply started to fetch data for session %" PRIu64, m_sessionID.toUInt64());
class CallbackAggregator final : public ThreadSafeRefCounted<CallbackAggregator, WTF::DestructionThread::MainRunLoop> {
public:
static Ref<CallbackAggregator> create(OptionSet<WebsiteDataFetchOption> fetchOptions, Ref<WorkQueue>&& queue, Function<void(Vector<WebsiteDataRecord>)>&& apply, WebsiteDataStore& dataStore)
@@ -353,8 +354,9 @@
auto records = WTF::map(WTFMove(m_websiteDataRecords), [this](auto&& entry) {
return m_queue.ptr() != &WorkQueue::main() ? crossThreadCopy(WTFMove(entry.value)) : WTFMove(entry.value);
});
- m_queue->dispatch([apply = WTFMove(m_apply), records = WTFMove(records)] () mutable {
+ m_queue->dispatch([apply = WTFMove(m_apply), records = WTFMove(records), sessionID = m_protectedDataStore->sessionID()] () mutable {
apply(WTFMove(records));
+ RELEASE_LOG(Storage, "WebsiteDataStore::fetchDataAndApply finished fetching data for session %" PRIu64, sessionID.toUInt64());
});
}
@@ -609,7 +611,11 @@
void WebsiteDataStore::removeData(OptionSet<WebsiteDataType> dataTypes, WallTime modifiedSince, Function<void()>&& completionHandler)
{
- auto callbackAggregator = RemovalCallbackAggregator::create(*this, WTFMove(completionHandler));
+ RELEASE_LOG(Storage, "WebsiteDataStore::removeData started to delete data modified since %f for session %" PRIu64, modifiedSince.secondsSinceEpoch().value(), m_sessionID.toUInt64());
+ auto callbackAggregator = RemovalCallbackAggregator::create(*this, [sessionID = m_sessionID, completionHandler = WTFMove(completionHandler)] {
+ RELEASE_LOG(Storage, "WebsiteDataStore::removeData finished deleting modified data for session %" PRIu64, sessionID.toUInt64());
+ completionHandler();
+ });
#if ENABLE(VIDEO)
if (dataTypes.contains(WebsiteDataType::DiskCache)) {
@@ -696,15 +702,18 @@
void WebsiteDataStore::removeData(OptionSet<WebsiteDataType> dataTypes, const Vector<WebsiteDataRecord>& dataRecords, Function<void()>&& completionHandler)
{
+ RELEASE_LOG(Storage, "WebsiteDataStore::removeData started to delete data for session %" PRIu64, m_sessionID.toUInt64());
+ auto callbackAggregator = RemovalCallbackAggregator::create(*this, [sessionID = m_sessionID, completionHandler = WTFMove(completionHandler)] {
+ RELEASE_LOG(Storage, "WebsiteDataStore::removeData finished deleting data for session %" PRIu64, sessionID.toUInt64());
+ completionHandler();
+ });
+
Vector<WebCore::SecurityOriginData> origins;
-
for (const auto& dataRecord : dataRecords) {
for (auto& origin : dataRecord.origins)
origins.append(origin);
}
- auto callbackAggregator = RemovalCallbackAggregator::create(*this, WTFMove(completionHandler));
-
if (dataTypes.contains(WebsiteDataType::DiskCache)) {
HashSet<WebCore::SecurityOriginData> origins;
for (const auto& dataRecord : dataRecords) {