Diff
Modified: trunk/LayoutTests/ChangeLog (264355 => 264356)
--- trunk/LayoutTests/ChangeLog 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/LayoutTests/ChangeLog 2020-07-14 18:19:00 UTC (rev 264356)
@@ -1,3 +1,21 @@
+2020-07-14 Kate Cheney <[email protected]>
+
+ [ macOS iOS ] http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html is a rare flaky failure
+ https://bugs.webkit.org/show_bug.cgi?id=212165
+ <rdar://problem/63462045>
+
+ Reviewed by Brent Fulgham.
+
+ Remove unnecessary call to
+ testRunner.setStatisticsNotifyPagesWhenTelemetryWasCaptured now that
+ telemetry reports from the testing SPI will always notify the test
+ runner. Updated expectations now that test is not expected to flake.
+
+ * http/tests/resourceLoadStatistics/telemetry-generation-advanced-functionality-database.html:
+ * http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html:
+ * http/tests/resourceLoadStatistics/telemetry-generation.html:
+ * platform/mac/TestExpectations:
+
2020-07-14 Eric Carlson <[email protected]>
[macOS] Do not update ScreenTime when in private browsing mode
Modified: trunk/LayoutTests/http/tests/resourceLoadStatistics/telemetry-generation-advanced-functionality-database.html (264355 => 264356)
--- trunk/LayoutTests/http/tests/resourceLoadStatistics/telemetry-generation-advanced-functionality-database.html 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/telemetry-generation-advanced-functionality-database.html 2020-07-14 18:19:00 UTC (rev 264356)
@@ -147,7 +147,6 @@
if (window.testRunner) {
setEnableFeature(true, function() {
- testRunner.setStatisticsNotifyPagesWhenTelemetryWasCaptured(true);
setUpStatisticsAndContinue();
});
}
Modified: trunk/LayoutTests/http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html (264355 => 264356)
--- trunk/LayoutTests/http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html 2020-07-14 18:19:00 UTC (rev 264356)
@@ -127,7 +127,6 @@
if (window.testRunner) {
setEnableFeature(true, function() {
- testRunner.setStatisticsNotifyPagesWhenTelemetryWasCaptured(true);
setUpInsufficientStatisticsAndContinue();
});
}
Modified: trunk/LayoutTests/http/tests/resourceLoadStatistics/telemetry-generation.html (264355 => 264356)
--- trunk/LayoutTests/http/tests/resourceLoadStatistics/telemetry-generation.html 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/telemetry-generation.html 2020-07-14 18:19:00 UTC (rev 264356)
@@ -112,7 +112,6 @@
if (window.testRunner) {
setEnableFeature(true, function() {
- testRunner.setStatisticsNotifyPagesWhenTelemetryWasCaptured(true);
setUpInsufficientStatisticsAndContinue();
});
}
Modified: trunk/LayoutTests/platform/mac/TestExpectations (264355 => 264356)
--- trunk/LayoutTests/platform/mac/TestExpectations 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/LayoutTests/platform/mac/TestExpectations 2020-07-14 18:19:00 UTC (rev 264356)
@@ -1904,8 +1904,6 @@
webkit.org/b/211891 imported/w3c/web-platform-tests/css/css-flexbox/flexbox_direction-row-reverse.html [ ImageOnlyFailure ]
-webkit.org/b/212165 http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html [ Pass Failure ]
-
webkit.org/b/212215 media/video-isplayingtoautomotiveheadunit.html [ Pass Failure ]
webkit.org/b/212219 media/track/track-cue-missing.html [ Pass Failure ]
Modified: trunk/Source/WebKit/ChangeLog (264355 => 264356)
--- trunk/Source/WebKit/ChangeLog 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/ChangeLog 2020-07-14 18:19:00 UTC (rev 264356)
@@ -1,3 +1,59 @@
+2020-07-14 Kate Cheney <[email protected]>
+
+ [ macOS iOS ] http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html is a rare flaky failure
+ https://bugs.webkit.org/show_bug.cgi?id=212165
+ <rdar://problem/63462045>
+
+ Reviewed by Brent Fulgham.
+
+ Test was flaking because of multiple async calls to submit telemetry,
+ which happen when a new ITP store is created and again when the test
+ makes an SPI call. If the first telemetry call is reported after the test
+ sets notifyPagesWhenTelemetryWasCaptured but before the SPI call to capture
+ telemetry is submitted, the test will receive the wrong data.
+ To fix this, we should simplify by removing the separate function to
+ tell ITP to report telemetry, and instead always report when the testing
+ SPI call is made.
+
+ No new tests, will fix flaky tests.
+
+ * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
+ (WebKit::ResourceLoadStatisticsDatabaseStore::calculateAndSubmitTelemetry const):
+ * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
+ * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
+ (WebKit::ResourceLoadStatisticsMemoryStore::calculateAndSubmitTelemetry const):
+ * NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
+ * NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
+ * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
+ (WebKit::WebResourceLoadStatisticsStore::submitTelemetry):
+ Pass in new enum value to indicate when the telemetry call is coming
+ from the testing SPI.
+
+ (WebKit::WebResourceLoadStatisticsStore::setNotifyPagesWhenTelemetryWasCaptured): Deleted.
+ * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
+ * NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.cpp:
+ (WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit):
+ (WebKit::WebResourceLoadStatisticsTelemetry::submitTelemetry):
+ (WebKit::WebResourceLoadStatisticsTelemetry::setNotifyPagesWhenTelemetryWasCaptured): Deleted.
+ * NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.h:
+ Remove static bool variable notifyPagesWhenTelemetryWasCaptured and
+ rely on the submitTelemetry function call to let us know when to report telemetry.
+
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::setNotifyPagesWhenTelemetryWasCaptured): Deleted.
+ * NetworkProcess/NetworkProcess.h:
+ * NetworkProcess/NetworkProcess.messages.in:
+ * UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
+ (WKWebsiteDataStoreSetStatisticsNotifyPagesWhenTelemetryWasCaptured): Deleted.
+ * UIProcess/API/C/WKWebsiteDataStoreRef.h:
+ * UIProcess/Network/NetworkProcessProxy.cpp:
+ (WebKit::NetworkProcessProxy::setNotifyPagesWhenTelemetryWasCaptured): Deleted.
+ * UIProcess/Network/NetworkProcessProxy.h:
+ * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+ (WebKit::WebsiteDataStore::setNotifyPagesWhenTelemetryWasCaptured): Deleted.
+ * UIProcess/WebsiteData/WebsiteDataStore.h:
+ Remove setNotifyPagesWhenTelemetryWasCaptured function.
+
2020-07-14 Daniel Bates <[email protected]>
[iOS] Sometimes unable to type Japanese on docs.google.com
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp (264355 => 264356)
--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp 2020-07-14 18:19:00 UTC (rev 264356)
@@ -1252,7 +1252,7 @@
}
}
-void ResourceLoadStatisticsDatabaseStore::calculateAndSubmitTelemetry() const
+void ResourceLoadStatisticsDatabaseStore::calculateAndSubmitTelemetry(NotifyPagesForTesting shouldNotifyPagesForTesting) const
{
ASSERT(!RunLoop::isMain());
@@ -1259,7 +1259,7 @@
if (parameters().shouldSubmitTelemetry) {
PrevalentResourceDatabaseTelemetry prevalentResourceDatabaseTelemetry;
calculateTelemetryData(prevalentResourceDatabaseTelemetry);
- WebResourceLoadStatisticsTelemetry::submitTelemetry(*this, prevalentResourceDatabaseTelemetry);
+ WebResourceLoadStatisticsTelemetry::submitTelemetry(*this, prevalentResourceDatabaseTelemetry, shouldNotifyPagesForTesting);
}
}
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h (264355 => 264356)
--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h 2020-07-14 18:19:00 UTC (rev 264356)
@@ -123,7 +123,7 @@
void setTopFrameUniqueRedirectTo(const TopFrameDomain&, const RedirectDomain&) override;
void setTopFrameUniqueRedirectFrom(const TopFrameDomain&, const RedirectDomain&) override;
- void calculateAndSubmitTelemetry() const override;
+ void calculateAndSubmitTelemetry(NotifyPagesForTesting = NotifyPagesForTesting::No) const override;
void hasStorageAccess(const SubFrameDomain&, const TopFrameDomain&, Optional<WebCore::FrameIdentifier>, WebCore::PageIdentifier, CompletionHandler<void(bool)>&&) override;
void requestStorageAccess(SubFrameDomain&&, TopFrameDomain&&, WebCore::FrameIdentifier, WebCore::PageIdentifier, WebCore::StorageAccessScope, CompletionHandler<void(StorageAccessStatus)>&&) override;
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp (264355 => 264356)
--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp 2020-07-14 18:19:00 UTC (rev 264356)
@@ -98,12 +98,12 @@
m_persistentStorage = makeWeakPtr(persistentStorage);
}
-void ResourceLoadStatisticsMemoryStore::calculateAndSubmitTelemetry() const
+void ResourceLoadStatisticsMemoryStore::calculateAndSubmitTelemetry(NotifyPagesForTesting shouldNotifyPagesForTesting) const
{
ASSERT(!RunLoop::isMain());
if (parameters().shouldSubmitTelemetry)
- WebResourceLoadStatisticsTelemetry::calculateAndSubmit(*this);
+ WebResourceLoadStatisticsTelemetry::calculateAndSubmit(*this, shouldNotifyPagesForTesting);
}
static void ensureThirdPartyDataForSpecificFirstPartyDomain(Vector<WebResourceLoadStatisticsStore::ThirdPartyDataForSpecificFirstParty>& thirdPartyDataForSpecificFirstPartyDomain, const RegistrableDomain& firstPartyDomain, bool thirdPartyHasStorageAccess)
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h (264355 => 264356)
--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h 2020-07-14 18:19:00 UTC (rev 264356)
@@ -96,7 +96,7 @@
void setTopFrameUniqueRedirectTo(const TopFrameDomain&, const RedirectDomain&) override;
void setTopFrameUniqueRedirectFrom(const TopFrameDomain&, const RedirectDomain&) override;
- void calculateAndSubmitTelemetry() const override;
+ void calculateAndSubmitTelemetry(NotifyPagesForTesting = NotifyPagesForTesting::No) const override;
bool areAllThirdPartyCookiesBlockedUnder(const TopFrameDomain&) override;
CookieAccess cookieAccess(const ResourceLoadStatistics&, const TopFrameDomain&);
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h (264355 => 264356)
--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h 2020-07-14 18:19:00 UTC (rev 264356)
@@ -29,6 +29,7 @@
#include "ResourceLoadStatisticsClassifier.h"
#include "WebResourceLoadStatisticsStore.h"
+#include "WebResourceLoadStatisticsTelemetry.h"
#include <_javascript_Core/ConsoleTypes.h>
#include <WebCore/FrameIdentifier.h>
#include <wtf/CompletionHandler.h>
@@ -156,7 +157,7 @@
void setPruneEntriesDownTo(size_t pruneTargetCount);
void resetParametersToDefaultValues();
- virtual void calculateAndSubmitTelemetry() const = 0;
+ virtual void calculateAndSubmitTelemetry(NotifyPagesForTesting = NotifyPagesForTesting::No) const = 0;
void setNotifyPagesWhenDataRecordsWereScanned(bool);
void setIsRunningTest(bool);
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp (264355 => 264356)
--- trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp 2020-07-14 18:19:00 UTC (rev 264356)
@@ -159,14 +159,6 @@
});
}
-void WebResourceLoadStatisticsStore::setNotifyPagesWhenTelemetryWasCaptured(bool value, CompletionHandler<void()>&& completionHandler)
-{
- ASSERT(RunLoop::isMain());
-
- WebKit::WebResourceLoadStatisticsTelemetry::setNotifyPagesWhenTelemetryWasCaptured(value);
- completionHandler();
-}
-
static Ref<WorkQueue> sharedStatisticsQueue()
{
static NeverDestroyed<Ref<WorkQueue>> queue(WorkQueue::create("WebResourceLoadStatisticsStore Process Data Queue", WorkQueue::Type::Serial, WorkQueue::QOS::Utility));
@@ -768,11 +760,7 @@
postTask([this, completionHandler = WTFMove(completionHandler)]() mutable {
if (!m_statisticsStore)
return;
-
- if (is<ResourceLoadStatisticsMemoryStore>(*m_statisticsStore))
- WebResourceLoadStatisticsTelemetry::calculateAndSubmit(downcast<ResourceLoadStatisticsMemoryStore>(*m_statisticsStore));
- else
- m_statisticsStore->calculateAndSubmitTelemetry();
+ m_statisticsStore->calculateAndSubmitTelemetry(NotifyPagesForTesting::Yes);
postTaskReply(WTFMove(completionHandler));
});
}
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h (264355 => 264356)
--- trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h 2020-07-14 18:19:00 UTC (rev 264356)
@@ -207,7 +207,6 @@
void populateMemoryStoreFromDisk(CompletionHandler<void()>&&);
void setNotifyPagesWhenDataRecordsWereScanned(bool);
- void setNotifyPagesWhenTelemetryWasCaptured(bool, CompletionHandler<void()>&&);
void setShouldClassifyResourcesBeforeDataRecordsRemoval(bool, CompletionHandler<void()>&&);
void setShouldSubmitTelemetry(bool);
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.cpp (264355 => 264356)
--- trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.cpp 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.cpp 2020-07-14 18:19:00 UTC (rev 264356)
@@ -45,7 +45,6 @@
const unsigned minimumPrevalentResourcesForTelemetry = 3;
const unsigned significantFiguresForLoggedValues = 3;
-static bool notifyPagesWhenTelemetryWasCaptured = false;
struct PrevalentResourceTelemetry {
unsigned numberOfTimesDataRecordsRemoved;
@@ -216,12 +215,12 @@
notifyPages(sortedPrevalentResources.size(), totalNumberOfPrevalentResourcesWithUserInteraction, 0, 0, 0, 0, median(sortedPrevalentResourcesWithoutUserInteraction, 0, 2, subframeUnderTopFrameOriginsGetter), 0, 0, 0, store);
}
-void WebResourceLoadStatisticsTelemetry::calculateAndSubmit(const ResourceLoadStatisticsMemoryStore& resourceLoadStatisticsStore)
+void WebResourceLoadStatisticsTelemetry::calculateAndSubmit(const ResourceLoadStatisticsMemoryStore& resourceLoadStatisticsStore, NotifyPagesForTesting notifyPagesWhenTelemetryWasCaptured)
{
ASSERT(!RunLoop::isMain());
auto sortedPrevalentResources = sortedPrevalentResourceTelemetry(resourceLoadStatisticsStore);
- if (notifyPagesWhenTelemetryWasCaptured && sortedPrevalentResources.isEmpty()) {
+ if (notifyPagesWhenTelemetryWasCaptured == NotifyPagesForTesting::Yes && sortedPrevalentResources.isEmpty()) {
notifyPages(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, resourceLoadStatisticsStore.store());
return;
}
@@ -238,15 +237,15 @@
}
// Dispatch on the main thread to make sure the WebPageProxy we're using doesn't go away.
- RunLoop::main().dispatch([sortedPrevalentResources = WTFMove(sortedPrevalentResources), sortedPrevalentResourcesWithoutUserInteraction = WTFMove(sortedPrevalentResourcesWithoutUserInteraction), prevalentResourcesDaysSinceUserInteraction = WTFMove(prevalentResourcesDaysSinceUserInteraction), store = makeRef(resourceLoadStatisticsStore.store())] () {
+ RunLoop::main().dispatch([notifyPagesWhenTelemetryWasCaptured, sortedPrevalentResources = WTFMove(sortedPrevalentResources), sortedPrevalentResourcesWithoutUserInteraction = WTFMove(sortedPrevalentResourcesWithoutUserInteraction), prevalentResourcesDaysSinceUserInteraction = WTFMove(prevalentResourcesDaysSinceUserInteraction), store = makeRef(resourceLoadStatisticsStore.store())] () {
auto webPageProxy = WebPageProxy::nonEphemeralWebPageProxy();
if (!webPageProxy) {
- if (notifyPagesWhenTelemetryWasCaptured)
+ if (notifyPagesWhenTelemetryWasCaptured == NotifyPagesForTesting::Yes)
notifyPages(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, store);
return;
}
- if (notifyPagesWhenTelemetryWasCaptured) {
+ if (notifyPagesWhenTelemetryWasCaptured == NotifyPagesForTesting::Yes) {
notifyPages(sortedPrevalentResources, sortedPrevalentResourcesWithoutUserInteraction, prevalentResourcesDaysSinceUserInteraction.size(), store);
// The notify pages function is for testing so we don't need to do an actual submission.
return;
@@ -303,20 +302,20 @@
}
}
-void WebResourceLoadStatisticsTelemetry::submitTelemetry(const ResourceLoadStatisticsDatabaseStore& resourceLoadStatisticsStore, PrevalentResourceDatabaseTelemetry& prevalentResourceDatabaseTelemetry)
+void WebResourceLoadStatisticsTelemetry::submitTelemetry(const ResourceLoadStatisticsDatabaseStore& resourceLoadStatisticsStore, PrevalentResourceDatabaseTelemetry& prevalentResourceDatabaseTelemetry, NotifyPagesForTesting notifyPagesWhenTelemetryWasCaptured)
{
ASSERT(!RunLoop::isMain());
- if (notifyPagesWhenTelemetryWasCaptured && !prevalentResourceDatabaseTelemetry.numberOfPrevalentResources) {
+ if (notifyPagesWhenTelemetryWasCaptured == NotifyPagesForTesting::Yes && !prevalentResourceDatabaseTelemetry.numberOfPrevalentResources) {
notifyPages(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, resourceLoadStatisticsStore.store());
return;
}
// Dispatch on the main thread to make sure the WebPageProxy we're using doesn't go away.
- RunLoop::main().dispatch([telemetry = WTFMove(prevalentResourceDatabaseTelemetry), store = makeRef(resourceLoadStatisticsStore.store())] () {
+ RunLoop::main().dispatch([notifyPagesWhenTelemetryWasCaptured, telemetry = WTFMove(prevalentResourceDatabaseTelemetry), store = makeRef(resourceLoadStatisticsStore.store())] () {
// The notify pages function is for testing so we don't need to do an actual submission.
- if (notifyPagesWhenTelemetryWasCaptured) {
+ if (notifyPagesWhenTelemetryWasCaptured == NotifyPagesForTesting::Yes) {
if (telemetry.numberOfPrevalentResourcesWithoutUserInteraction < 3) {
notifyPages(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, store);
return;
@@ -349,12 +348,6 @@
databaseSubmitTopLists(telemetry, store);
});
}
-
-void WebResourceLoadStatisticsTelemetry::setNotifyPagesWhenTelemetryWasCaptured(bool always)
-{
- notifyPagesWhenTelemetryWasCaptured = always;
}
-
-}
#endif
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.h (264355 => 264356)
--- trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.h 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.h 2020-07-14 18:19:00 UTC (rev 264356)
@@ -34,12 +34,12 @@
class ResourceLoadStatisticsMemoryStore;
class ResourceLoadStatisticsDatabaseStore;
struct PrevalentResourceDatabaseTelemetry;
+enum class NotifyPagesForTesting : bool { No, Yes };
namespace WebResourceLoadStatisticsTelemetry {
-void calculateAndSubmit(const ResourceLoadStatisticsMemoryStore&);
-void submitTelemetry(const ResourceLoadStatisticsDatabaseStore&, PrevalentResourceDatabaseTelemetry&);
-void setNotifyPagesWhenTelemetryWasCaptured(bool);
+void calculateAndSubmit(const ResourceLoadStatisticsMemoryStore&, NotifyPagesForTesting = NotifyPagesForTesting::No);
+void submitTelemetry(const ResourceLoadStatisticsDatabaseStore&, PrevalentResourceDatabaseTelemetry&, NotifyPagesForTesting);
}
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (264355 => 264356)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2020-07-14 18:19:00 UTC (rev 264356)
@@ -875,19 +875,6 @@
}
}
-void NetworkProcess::setNotifyPagesWhenTelemetryWasCaptured(PAL::SessionID sessionID, bool value, CompletionHandler<void()>&& completionHandler)
-{
- if (auto* networkSession = this->networkSession(sessionID)) {
- if (auto* resourceLoadStatistics = networkSession->resourceLoadStatistics())
- resourceLoadStatistics->setNotifyPagesWhenTelemetryWasCaptured(value, WTFMove(completionHandler));
- else
- completionHandler();
- } else {
- ASSERT_NOT_REACHED();
- completionHandler();
- }
-}
-
void NetworkProcess::setSubframeUnderTopFrameDomain(PAL::SessionID sessionID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, CompletionHandler<void()>&& completionHandler)
{
if (auto* networkSession = this->networkSession(sessionID)) {
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (264355 => 264356)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2020-07-14 18:19:00 UTC (rev 264356)
@@ -248,7 +248,6 @@
void setMinimumTimeBetweenDataRecordsRemoval(PAL::SessionID, Seconds, CompletionHandler<void()>&&);
void setNotifyPagesWhenDataRecordsWereScanned(PAL::SessionID, bool value, CompletionHandler<void()>&&);
void setIsRunningResourceLoadStatisticsTest(PAL::SessionID, bool value, CompletionHandler<void()>&&);
- void setNotifyPagesWhenTelemetryWasCaptured(PAL::SessionID, bool value, CompletionHandler<void()>&&);
void setResourceLoadStatisticsEnabled(PAL::SessionID, bool);
void setResourceLoadStatisticsLogTestingEvent(bool);
void setResourceLoadStatisticsDebugMode(PAL::SessionID, bool debugMode, CompletionHandler<void()>&&d);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in (264355 => 264356)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2020-07-14 18:19:00 UTC (rev 264356)
@@ -127,7 +127,6 @@
SetShouldClassifyResourcesBeforeDataRecordsRemoval(PAL::SessionID sessionID, bool value) -> () Async
SetNotifyPagesWhenDataRecordsWereScanned(PAL::SessionID sessionID, bool value) -> () Async
SetIsRunningResourceLoadStatisticsTest(PAL::SessionID sessionID, bool value) -> () Async
- SetNotifyPagesWhenTelemetryWasCaptured(PAL::SessionID sessionID, bool value) -> () Async
SetResourceLoadStatisticsDebugMode(PAL::SessionID sessionID, bool debugMode) -> () Async
SetVeryPrevalentResource(PAL::SessionID sessionID, WebCore::RegistrableDomain resourceDomain) -> () Async
SetSubframeUnderTopFrameDomain(PAL::SessionID sessionID, WebCore::RegistrableDomain subFrameDomain, WebCore::RegistrableDomain topFrameDomain) -> () Async
Modified: trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp (264355 => 264356)
--- trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp 2020-07-14 18:19:00 UTC (rev 264356)
@@ -475,13 +475,6 @@
#endif
}
-void WKWebsiteDataStoreSetStatisticsNotifyPagesWhenTelemetryWasCaptured(WKWebsiteDataStoreRef dataStoreRef, bool value)
-{
-#if ENABLE(RESOURCE_LOAD_STATISTICS)
- WebKit::toImpl(dataStoreRef)->setNotifyPagesWhenTelemetryWasCaptured(value, []() { });
-#endif
-}
-
void WKWebsiteDataStoreSetStatisticsMinimumTimeBetweenDataRecordsRemoval(WKWebsiteDataStoreRef dataStoreRef, double seconds)
{
#if ENABLE(RESOURCE_LOAD_STATISTICS)
Modified: trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h (264355 => 264356)
--- trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h 2020-07-14 18:19:00 UTC (rev 264356)
@@ -102,7 +102,6 @@
typedef void (*WKWebsiteDataStoreSetStatisticsIsRunningTestFunction)(void* functionContext);
WK_EXPORT void WKWebsiteDataStoreSetStatisticsIsRunningTest(WKWebsiteDataStoreRef dataStoreRef, bool value, void* context, WKWebsiteDataStoreSetStatisticsIsRunningTestFunction callback);
WK_EXPORT void WKWebsiteDataStoreSetStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval(WKWebsiteDataStoreRef dataStoreRef, bool value);
-WK_EXPORT void WKWebsiteDataStoreSetStatisticsNotifyPagesWhenTelemetryWasCaptured(WKWebsiteDataStoreRef dataStoreRef, bool value);
WK_EXPORT void WKWebsiteDataStoreSetStatisticsMinimumTimeBetweenDataRecordsRemoval(WKWebsiteDataStoreRef dataStoreRef, double seconds);
WK_EXPORT void WKWebsiteDataStoreSetStatisticsGrandfatheringTime(WKWebsiteDataStoreRef dataStoreRef, double seconds);
WK_EXPORT void WKWebsiteDataStoreSetStatisticsMaxStatisticsEntries(WKWebsiteDataStoreRef dataStoreRef, unsigned entries);
Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (264355 => 264356)
--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2020-07-14 18:19:00 UTC (rev 264356)
@@ -725,16 +725,6 @@
sendWithAsyncReply(Messages::NetworkProcess::SetTimeToLiveUserInteraction(sessionID, seconds), WTFMove(completionHandler));
}
-void NetworkProcessProxy::setNotifyPagesWhenTelemetryWasCaptured(PAL::SessionID sessionID, bool value, CompletionHandler<void()>&& completionHandler)
-{
- if (!canSendMessage()) {
- completionHandler();
- return;
- }
-
- sendWithAsyncReply(Messages::NetworkProcess::SetNotifyPagesWhenTelemetryWasCaptured(sessionID, value), WTFMove(completionHandler));
-}
-
void NetworkProcessProxy::setNotifyPagesWhenDataRecordsWereScanned(PAL::SessionID sessionID, bool value, CompletionHandler<void()>&& completionHandler)
{
if (!canSendMessage()) {
Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h (264355 => 264356)
--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h 2020-07-14 18:19:00 UTC (rev 264356)
@@ -145,7 +145,6 @@
void setUseITPDatabase(PAL::SessionID, bool value, CompletionHandler<void()>&&);
void setNotifyPagesWhenDataRecordsWereScanned(PAL::SessionID, bool, CompletionHandler<void()>&&);
void setIsRunningResourceLoadStatisticsTest(PAL::SessionID, bool, CompletionHandler<void()>&&);
- void setNotifyPagesWhenTelemetryWasCaptured(PAL::SessionID, bool, CompletionHandler<void()>&&);
void setSubframeUnderTopFrameDomain(PAL::SessionID, const SubFrameDomain&, const TopFrameDomain&, CompletionHandler<void()>&&);
void setSubresourceUnderTopFrameDomain(PAL::SessionID, const SubResourceDomain&, const TopFrameDomain&, CompletionHandler<void()>&&);
void setSubresourceUniqueRedirectTo(PAL::SessionID, const SubResourceDomain&, const RedirectedToDomain&, CompletionHandler<void()>&&);
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (264355 => 264356)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2020-07-14 18:19:00 UTC (rev 264356)
@@ -1687,14 +1687,6 @@
processPool->ensureNetworkProcess().setIsRunningResourceLoadStatisticsTest(m_sessionID, value, [processPool, callbackAggregator] { });
}
-void WebsiteDataStore::setNotifyPagesWhenTelemetryWasCaptured(bool value, CompletionHandler<void()>&& completionHandler)
-{
- auto callbackAggregator = CallbackAggregator::create(WTFMove(completionHandler));
-
- for (auto& processPool : processPools())
- processPool->ensureNetworkProcess().setNotifyPagesWhenTelemetryWasCaptured(m_sessionID, value, [processPool, callbackAggregator] { });
-}
-
void WebsiteDataStore::getAllStorageAccessEntries(WebPageProxyIdentifier pageID, CompletionHandler<void(Vector<String>&& domains)>&& completionHandler)
{
auto* webPage = WebProcessProxy::webPage(pageID);
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (264355 => 264356)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2020-07-14 18:19:00 UTC (rev 264356)
@@ -185,7 +185,6 @@
void setTopFrameUniqueRedirectFrom(const URL& topFrameHostName, const URL& hostNameRedirectedFrom, CompletionHandler<void()>&&);
void setMaxStatisticsEntries(size_t, CompletionHandler<void()>&&);
void setMinimumTimeBetweenDataRecordsRemoval(Seconds, CompletionHandler<void()>&&);
- void setNotifyPagesWhenTelemetryWasCaptured(bool, CompletionHandler<void()>&&);
void setPrevalentResource(const URL&, CompletionHandler<void()>&&);
void setPrevalentResourceForDebugMode(const URL&, CompletionHandler<void()>&&);
void setShouldClassifyResourcesBeforeDataRecordsRemoval(bool, CompletionHandler<void()>&&);
Modified: trunk/Tools/ChangeLog (264355 => 264356)
--- trunk/Tools/ChangeLog 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Tools/ChangeLog 2020-07-14 18:19:00 UTC (rev 264356)
@@ -1,3 +1,26 @@
+2020-07-14 Kate Cheney <[email protected]>
+
+ [ macOS iOS ] http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html is a rare flaky failure
+ https://bugs.webkit.org/show_bug.cgi?id=212165
+ <rdar://problem/63462045>
+
+ Reviewed by Brent Fulgham.
+
+ Remove unnecessary call to
+ testRunner.setStatisticsNotifyPagesWhenTelemetryWasCaptured now that
+ telemetry reports from the testing SPI will always notify the test
+ runner.
+
+ * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
+ * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
+ (WTR::TestRunner::setStatisticsNotifyPagesWhenTelemetryWasCaptured): Deleted.
+ * WebKitTestRunner/InjectedBundle/TestRunner.h:
+ * WebKitTestRunner/TestController.cpp:
+ (WTR::TestController::setStatisticsNotifyPagesWhenTelemetryWasCaptured): Deleted.
+ * WebKitTestRunner/TestController.h:
+ * WebKitTestRunner/TestInvocation.cpp:
+ (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
+
2020-07-14 Aakash Jain <[email protected]>
[ews] Do not upload archives for tvOS and watchOS
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl (264355 => 264356)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl 2020-07-14 18:19:00 UTC (rev 264356)
@@ -332,7 +332,6 @@
void setStatisticsNotifyPagesWhenDataRecordsWereScanned(boolean value);
void setStatisticsIsRunningTest(boolean value);
void setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval(boolean value);
- void setStatisticsNotifyPagesWhenTelemetryWasCaptured(boolean value);
void setStatisticsMinimumTimeBetweenDataRecordsRemoval(double seconds);
void setStatisticsGrandfatheringTime(double seconds);
void setStatisticsMaxStatisticsEntries(unsigned long entries);
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp (264355 => 264356)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp 2020-07-14 18:19:00 UTC (rev 264356)
@@ -2175,13 +2175,6 @@
WKBundlePostSynchronousMessage(InjectedBundle::singleton().bundle(), messageName.get(), messageBody.get(), nullptr);
}
-void TestRunner::setStatisticsNotifyPagesWhenTelemetryWasCaptured(bool value)
-{
- WKRetainPtr<WKStringRef> messageName = adoptWK(WKStringCreateWithUTF8CString("StatisticsNotifyPagesWhenTelemetryWasCaptured"));
- WKRetainPtr<WKBooleanRef> messageBody = adoptWK(WKBooleanCreate(value));
- WKBundlePostSynchronousMessage(InjectedBundle::singleton().bundle(), messageName.get(), messageBody.get(), nullptr);
-}
-
void TestRunner::setStatisticsMinimumTimeBetweenDataRecordsRemoval(double seconds)
{
WKRetainPtr<WKStringRef> messageName = adoptWK(WKStringCreateWithUTF8CString("SetStatisticsMinimumTimeBetweenDataRecordsRemoval"));
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h (264355 => 264356)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h 2020-07-14 18:19:00 UTC (rev 264356)
@@ -432,7 +432,6 @@
void setStatisticsNotifyPagesWhenDataRecordsWereScanned(bool);
void setStatisticsIsRunningTest(bool);
void setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval(bool);
- void setStatisticsNotifyPagesWhenTelemetryWasCaptured(bool value);
void setStatisticsMinimumTimeBetweenDataRecordsRemoval(double);
void setStatisticsGrandfatheringTime(double seconds);
void setStatisticsMaxStatisticsEntries(unsigned);
Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (264355 => 264356)
--- trunk/Tools/WebKitTestRunner/TestController.cpp 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp 2020-07-14 18:19:00 UTC (rev 264356)
@@ -3755,11 +3755,6 @@
WKWebsiteDataStoreSetStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval(websiteDataStore(), value);
}
-void TestController::setStatisticsNotifyPagesWhenTelemetryWasCaptured(bool value)
-{
- WKWebsiteDataStoreSetStatisticsNotifyPagesWhenTelemetryWasCaptured(websiteDataStore(), value);
-}
-
void TestController::setStatisticsMinimumTimeBetweenDataRecordsRemoval(double seconds)
{
WKWebsiteDataStoreSetStatisticsMinimumTimeBetweenDataRecordsRemoval(websiteDataStore(), seconds);
Modified: trunk/Tools/WebKitTestRunner/TestController.h (264355 => 264356)
--- trunk/Tools/WebKitTestRunner/TestController.h 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Tools/WebKitTestRunner/TestController.h 2020-07-14 18:19:00 UTC (rev 264356)
@@ -251,7 +251,6 @@
void setStatisticsNotifyPagesWhenDataRecordsWereScanned(bool);
void setStatisticsIsRunningTest(bool);
void setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval(bool);
- void setStatisticsNotifyPagesWhenTelemetryWasCaptured(bool value);
void setStatisticsMinimumTimeBetweenDataRecordsRemoval(double);
void setStatisticsGrandfatheringTime(double seconds);
void setStatisticsMaxStatisticsEntries(unsigned);
Modified: trunk/Tools/WebKitTestRunner/TestInvocation.cpp (264355 => 264356)
--- trunk/Tools/WebKitTestRunner/TestInvocation.cpp 2020-07-14 18:07:24 UTC (rev 264355)
+++ trunk/Tools/WebKitTestRunner/TestInvocation.cpp 2020-07-14 18:19:00 UTC (rev 264356)
@@ -1585,13 +1585,6 @@
return nullptr;
}
- if (WKStringIsEqualToUTF8CString(messageName, "StatisticsNotifyPagesWhenTelemetryWasCaptured")) {
- ASSERT(WKGetTypeID(messageBody) == WKBooleanGetTypeID());
- WKBooleanRef value = static_cast<WKBooleanRef>(messageBody);
- TestController::singleton().setStatisticsNotifyPagesWhenTelemetryWasCaptured(WKBooleanGetValue(value));
- return nullptr;
- }
-
if (WKStringIsEqualToUTF8CString(messageName, "StatisticsShouldClassifyResourcesBeforeDataRecordsRemoval")) {
ASSERT(WKGetTypeID(messageBody) == WKBooleanGetTypeID());
WKBooleanRef value = static_cast<WKBooleanRef>(messageBody);