Modified: trunk/Source/WebKit/ChangeLog (232949 => 232950)
--- trunk/Source/WebKit/ChangeLog 2018-06-18 22:14:32 UTC (rev 232949)
+++ trunk/Source/WebKit/ChangeLog 2018-06-18 22:26:58 UTC (rev 232950)
@@ -1,3 +1,17 @@
+2018-06-18 John Wilander <[email protected]>
+
+ Resource Load Statistics: Make sure to call callbacks even if there is no store (test infrastructure)
+ https://bugs.webkit.org/show_bug.cgi?id=186777
+ <rdar://problem/41216181>
+
+ Reviewed by Chris Dumez.
+
+ * UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
+ (WKWebsiteDataStoreStatisticsUpdateCookiePartitioning):
+ (WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost):
+ (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore):
+ (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
+
2018-06-18 Chris Dumez <[email protected]>
Crash under WebProcessPool::networkProcessFailedToLaunch():
Modified: trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp (232949 => 232950)
--- trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp 2018-06-18 22:14:32 UTC (rev 232949)
+++ trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp 2018-06-18 22:26:58 UTC (rev 232950)
@@ -293,8 +293,10 @@
void WKWebsiteDataStoreStatisticsUpdateCookiePartitioning(WKWebsiteDataStoreRef dataStoreRef, void* context, WKWebsiteDataStoreStatisticsUpdateCookiePartitioningFunction callback)
{
auto* store = WebKit::toImpl(dataStoreRef)->websiteDataStore().resourceLoadStatistics();
- if (!store)
+ if (!store) {
+ callback(context);
return;
+ }
store->scheduleCookiePartitioningUpdate([context, callback]() {
callback(context);
@@ -304,8 +306,10 @@
void WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost(WKWebsiteDataStoreRef dataStoreRef, WKStringRef host, bool value, void* context, WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHostFunction callback)
{
auto* store = WebKit::toImpl(dataStoreRef)->websiteDataStore().resourceLoadStatistics();
- if (!store)
+ if (!store) {
+ callback(context);
return;
+ }
if (value)
store->scheduleCookiePartitioningUpdateForDomains({ WebKit::toImpl(host)->string() }, { }, { }, WebKit::ShouldClearFirst::No, [context, callback]() {
@@ -388,8 +392,10 @@
void WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore(WKWebsiteDataStoreRef dataStoreRef, void* context, WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreFunction callback)
{
auto* store = WebKit::toImpl(dataStoreRef)->websiteDataStore().resourceLoadStatistics();
- if (!store)
+ if (!store) {
+ callback(context);
return;
+ }
store->scheduleClearInMemoryAndPersistent(WebKit::WebResourceLoadStatisticsStore::ShouldGrandfather::Yes, [context, callback]() {
callback(context);
@@ -399,8 +405,10 @@
void WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours(WKWebsiteDataStoreRef dataStoreRef, unsigned hours, void* context, WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHoursFunction callback)
{
auto* store = WebKit::toImpl(dataStoreRef)->websiteDataStore().resourceLoadStatistics();
- if (!store)
+ if (!store) {
+ callback(context);
return;
+ }
store->scheduleClearInMemoryAndPersistent(WallTime::now() - Seconds::fromHours(hours), WebKit::WebResourceLoadStatisticsStore::ShouldGrandfather::Yes, [context, callback]() {
callback(context);