WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-193297-20190123235520.patch (text/plain), 14.40 KB, created by
Brent Fulgham
on 2019-01-23 23:55:22 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Brent Fulgham
Created:
2019-01-23 23:55:22 PST
Size:
14.40 KB
patch
obsolete
>Subversion Revision: 240360 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 31aadd832dcae95fcbcbfea27fe4a7c474c2d45b..8b396e906b4fd62406de4fdace567d0dccb0bb99 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,16 @@ >+2019-01-23 Brent Fulgham <bfulgham@apple.com> >+ >+ Activate the WebResourceLoadStatisticsStore in the NetworkProcess and deactivate it in the UIProcess. >+ https://bugs.webkit.org/show_bug.cgi?id=193297 >+ <rdar://problem/47158841> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Trigger logging to the UIProcess when the ResourceLoadObserver is used in the NetworkProcess. >+ >+ * loader/ResourceLoadObserver.cpp: >+ (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution): >+ > 2019-01-23 Sihui Liu <sihui_liu@apple.com> > > Clean up IndexedDB files between tests >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 2c5357da86c6d2566edb2fdec5ad3986c30d4d13..f3e6a2c6f1a38c0a63f88a45669e78947380949b 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,31 @@ >+2019-01-23 Brent Fulgham <bfulgham@apple.com> >+ >+ Activate the WebResourceLoadStatisticsStore in the NetworkProcess and deactivate it in the UIProcess. >+ https://bugs.webkit.org/show_bug.cgi?id=193297 >+ <rdar://problem/47158841> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ This patch activates the ResourceLoadStatistics code in the NetworkProcess, and turns >+ it off in the UIProcess. It also updates test infrastructure to work with this change >+ in architecture. >+ >+ * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: >+ (WebKit::WebResourceLoadStatisticsStore::removeAllStorageAccess): >+ (WebKit::WebResourceLoadStatisticsStore::setCacheMaxAgeCap): >+ (WebKit::WebResourceLoadStatisticsStore::setCacheMaxAgeCapForPrevalentResources): Deleted. >+ * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: >+ * NetworkProcess/NetworkSession.cpp: >+ (WebKit::NetworkSession::setResourceLoadStatisticsEnabled): >+ * UIProcess/WebProcessPool.cpp: >+ (WebKit::WebProcessPool::ensureNetworkProcess): >+ * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: >+ (WebKit::WebsiteDataStore::parameters): >+ * UIProcess/WebsiteData/WebsiteDataStore.cpp: >+ (WebKit::WebsiteDataStore::removeData): >+ (WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled): >+ (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): >+ > 2019-01-23 Brent Fulgham <bfulgham@apple.com> > > Switch NetworkStorageSession portions of ResourceLoadStatistics to Async message passing style >diff --git a/Source/WebCore/loader/ResourceLoadObserver.cpp b/Source/WebCore/loader/ResourceLoadObserver.cpp >index c3ad1b0d667917b89f4e62a4bf437b9913ab399a..def1823aa0fed9b7a0419d9e9f9e20a4b1219a00 100644 >--- a/Source/WebCore/loader/ResourceLoadObserver.cpp >+++ b/Source/WebCore/loader/ResourceLoadObserver.cpp >@@ -197,8 +197,7 @@ void ResourceLoadObserver::logUserInteractionWithReducedTimeResolution(const Doc > } > } > >- // FIXME(193297): Uncomment this line when ResourceLoadStatistics are no longer gathered in the UI Process. >- // m_logUserInteractionNotificationCallback(document.sessionID(), domain); >+ m_logUserInteractionNotificationCallback(document.sessionID(), domain); > #endif > > m_notificationTimer.stop(); >diff --git a/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp b/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp >index e2c97540cc8d24d35d844902f28abba250a78066..bdfae9783101b4c8546955d0e2c3edc70c975792 100644 >--- a/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp >+++ b/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp >@@ -417,12 +417,6 @@ void WebResourceLoadStatisticsStore::didCreateNetworkProcess() > }); > } > >-void WebResourceLoadStatisticsStore::removeAllStorageAccess() >-{ >- if (m_networkSession) >- m_networkSession->networkStorageSession().removeAllStorageAccess(); >-} >- > void WebResourceLoadStatisticsStore::removeAllStorageAccess(CompletionHandler<void()>&& completionHandler) > { > ASSERT(RunLoop::isMain()); >@@ -431,7 +425,10 @@ void WebResourceLoadStatisticsStore::removeAllStorageAccess(CompletionHandler<vo > m_websiteDataStore->removeAllStorageAccessHandler(WTFMove(completionHandler)); > return; > } >- removeAllStorageAccess(); >+ >+ if (m_networkSession) >+ m_networkSession->networkStorageSession().removeAllStorageAccess(); >+ > completionHandler(); > } > >@@ -1080,12 +1077,6 @@ void WebResourceLoadStatisticsStore::setGrandfatheringTime(Seconds seconds, Comp > }); > } > >-void WebResourceLoadStatisticsStore::setCacheMaxAgeCapForPrevalentResources(Seconds seconds) >-{ >- if (m_networkSession) >- m_networkSession->networkStorageSession().setCacheMaxAgeCapForPrevalentResources(seconds); >-} >- > void WebResourceLoadStatisticsStore::setCacheMaxAgeCap(Seconds seconds, CompletionHandler<void()>&& completionHandler) > { > ASSERT(RunLoop::isMain()); >@@ -1095,7 +1086,10 @@ void WebResourceLoadStatisticsStore::setCacheMaxAgeCap(Seconds seconds, Completi > m_websiteDataStore->setCacheMaxAgeCapForPrevalentResources(seconds, WTFMove(completionHandler)); > return; > } >- setCacheMaxAgeCapForPrevalentResources(seconds); >+ >+ if (m_networkSession) >+ m_networkSession->networkStorageSession().setCacheMaxAgeCapForPrevalentResources(seconds); >+ > completionHandler(); > } > >diff --git a/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h b/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h >index b60aaac890ef3037e2fac7f16b87ebd804dd84e4..73bfdd7a9b92814bf41a27303022d85d309915cb 100644 >--- a/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h >+++ b/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h >@@ -124,9 +124,7 @@ public: > void setGrandfathered(const String&, bool, CompletionHandler<void()>&&); > void isGrandfathered(const URL&, CompletionHandler<void(bool)>&&); > void isGrandfathered(const String&, CompletionHandler<void(bool)>&&); >- void removeAllStorageAccess(); > void removePrevalentDomains(const Vector<String>& domainsToBlock); >- void setCacheMaxAgeCapForPrevalentResources(Seconds); > void setNotifyPagesWhenDataRecordsWereScanned(bool, CompletionHandler<void()>&&); > void setSubframeUnderTopFrameOrigin(const URL& subframe, const URL& topFrame, CompletionHandler<void()>&&); > void setSubframeUnderTopFrameOrigin(const String& subframe, const String& topFrame, CompletionHandler<void()>&&); >diff --git a/Source/WebKit/NetworkProcess/NetworkSession.cpp b/Source/WebKit/NetworkProcess/NetworkSession.cpp >index ad51538e9e3e4db4931a100fbb508984d7bb339c..20d09ba75932cc244f0099d58c852f0e1a73b707 100644 >--- a/Source/WebKit/NetworkProcess/NetworkSession.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkSession.cpp >@@ -92,6 +92,10 @@ void NetworkSession::setResourceLoadStatisticsEnabled(bool enable) > if (m_resourceLoadStatistics) > return; > >+ // FIXME(193728): Support ResourceLoadStatistics for ephemeral sessions, too. >+ if (m_sessionID.isEphemeral()) >+ return; >+ > m_resourceLoadStatistics = WebResourceLoadStatisticsStore::create(*this, m_resourceLoadStatisticsDirectory); > } > >diff --git a/Source/WebKit/UIProcess/WebProcessPool.cpp b/Source/WebKit/UIProcess/WebProcessPool.cpp >index a4ca7d9232cceaa370c30fa45eb24f05938c534f..e95ce948bf67ae0fdc6c8adde8677e44bd9019c9 100644 >--- a/Source/WebKit/UIProcess/WebProcessPool.cpp >+++ b/Source/WebKit/UIProcess/WebProcessPool.cpp >@@ -560,7 +560,7 @@ NetworkProcessProxy& WebProcessPool::ensureNetworkProcess(WebsiteDataStore* with > > SandboxExtension::createHandleForReadWriteDirectory(parameters.defaultDataStoreParameters.networkSessionParameters.resourceLoadStatisticsDirectory, parameters.defaultDataStoreParameters.networkSessionParameters.resourceLoadStatisticsDirectoryExtensionHandle); > >- parameters.defaultDataStoreParameters.networkSessionParameters.enableResourceLoadStatistics = false; // FIXME(193297): Turn on when the feature is on. (m_configuration->resourceLoadStatisticsEnabled()?) >+ parameters.defaultDataStoreParameters.networkSessionParameters.enableResourceLoadStatistics = true; // FIXME(193705): m_configuration->resourceLoadStatisticsEnabled(); > > // Add any platform specific parameters > platformInitializeNetworkProcess(parameters); >diff --git a/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm b/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm >index 427a9c85a3b9845ae4f754fb4c7a39263c8c17c9..8d982422e0dcaca9d5c540d46bd810d54bf79d25 100644 >--- a/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm >+++ b/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm >@@ -102,7 +102,7 @@ WebsiteDataStoreParameters WebsiteDataStore::parameters() > WTFMove(httpsProxy), > WTFMove(resourceLoadStatisticsDirectory), > WTFMove(resourceLoadStatisticsDirectoryHandle), >- false // FIXME(193297): Switch to m_configuration->resourceLoadStatisticsEnabled() >+ true // FIXME(193705): m_configuration->resourceLoadStatisticsEnabled() > }; > > auto cookieFile = resolvedCookieStorageFile(); >diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp >index b7c818233ec4804b84cb9ae8022aff4fce2f8d20..0088d5b0c1ddc4e323b8d1a1ee995422f4da5235 100644 >--- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp >+++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp >@@ -1252,15 +1252,12 @@ void WebsiteDataStore::removeData(OptionSet<WebsiteDataType> dataTypes, const Ve > > // If we are deleting all of the data types that the resource load statistics store monitors > // we do not need to re-grandfather old data. >+ auto shouldGrandfather = ((monitoredTypesRaw & deletedTypesRaw) == monitoredTypesRaw) ? ShouldGrandfatherStatistics::No : ShouldGrandfatherStatistics::Yes; >+ > callbackAggregator->addPendingCallback(); >- if ((monitoredTypesRaw & deletedTypesRaw) == monitoredTypesRaw) >- m_resourceLoadStatistics->scheduleClearInMemoryAndPersistent(ShouldGrandfatherStatistics::No, [callbackAggregator] { >- callbackAggregator->removePendingCallback(); >- }); >- else >- m_resourceLoadStatistics->scheduleClearInMemoryAndPersistent(ShouldGrandfatherStatistics::Yes, [callbackAggregator] { >- callbackAggregator->removePendingCallback(); >- }); >+ m_resourceLoadStatistics->scheduleClearInMemoryAndPersistent(shouldGrandfather, [callbackAggregator] { >+ callbackAggregator->removePendingCallback(); >+ }); > > callbackAggregator->addPendingCallback(); > clearResourceLoadStatisticsInWebProcesses([callbackAggregator] { >@@ -2325,16 +2322,10 @@ void WebsiteDataStore::setResourceLoadStatisticsEnabled(bool enabled) > return; > > if (enabled) { >- // FIXME(193297): Remove this assert >- ASSERT(!m_resourceLoadStatistics); > enableResourceLoadStatisticsAndSetTestingCallback(nullptr); > return; > } > >- // FIXME(193297): Remove these two lines >- unregisterWebResourceLoadStatisticsStoreAsMessageReceiver(); >- m_resourceLoadStatistics = nullptr; >- > for (auto& processPool : processPools(std::numeric_limits<size_t>::max(), false)) { > processPool->setResourceLoadStatisticsEnabled(false); > processPool->sendToNetworkingProcess(Messages::NetworkProcess::SetResourceLoadStatisticsEnabled(false)); >@@ -2395,16 +2386,8 @@ void WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback(Functio > m_resourceLoadStatisticsEnabled = true; > setStatisticsTestingCallback(WTFMove(callback)); > >- // FIXME(193297): Remove this check >- if (m_resourceLoadStatistics) >- return; >- > resolveDirectoriesIfNecessary(); > >- // FIXME(193297): Remove these two lines >- m_resourceLoadStatistics = WebResourceLoadStatisticsStore::create(*this); >- registerWebResourceLoadStatisticsStoreAsMessageReceiver(); >- > for (auto& processPool : processPools(std::numeric_limits<size_t>::max(), false)) { > processPool->setResourceLoadStatisticsEnabled(true); > processPool->sendToNetworkingProcess(Messages::NetworkProcess::SetResourceLoadStatisticsEnabled(true)); >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 143a497ef9e46e2df4f22d5b908b09ef28712fa6..64d2d19f40e091b8b94fe0dd41d2d089c2d5816b 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,15 @@ >+2019-01-23 Brent Fulgham <bfulgham@apple.com> >+ >+ Activate the WebResourceLoadStatisticsStore in the NetworkProcess and deactivate it in the UIProcess. >+ https://bugs.webkit.org/show_bug.cgi?id=193297 >+ <rdar://problem/47158841> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * WebKitTestRunner/InjectedBundle/TestRunner.cpp: >+ (WTR::TestRunner::installStatisticsDidScanDataRecordsCallback): Simplify test configuration by >+ activating the message used to trigger the callback when it is set. >+ > 2019-01-23 Aakash Jain <aakash_jain@apple.com> > > [ews-app] Rename ews model steps to step >diff --git a/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp b/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp >index d7a9d24829df8b74ad8bcd91ddd96094b2ce5850..40d4129b1ecd0fd54bc883beabe192a1a373b580 100644 >--- a/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp >+++ b/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp >@@ -1860,6 +1860,13 @@ void TestRunner::statisticsDidModifyDataRecordsCallback() > void TestRunner::installStatisticsDidScanDataRecordsCallback(JSValueRef callback) > { > cacheTestRunnerCallback(StatisticsDidScanDataRecordsCallbackID, callback); >+ >+ bool notifyPagesWhenDataRecordsWereScanned = !!callback; >+ >+ // Setting a callback implies we expect to receive callbacks. So register for them. >+ WKRetainPtr<WKStringRef> messageName(AdoptWK, WKStringCreateWithUTF8CString("StatisticsNotifyPagesWhenDataRecordsWereScanned")); >+ WKRetainPtr<WKBooleanRef> messageBody(AdoptWK, WKBooleanCreate(notifyPagesWhenDataRecordsWereScanned)); >+ WKBundlePostSynchronousMessage(InjectedBundle::singleton().bundle(), messageName.get(), messageBody.get(), nullptr); > } > > void TestRunner::statisticsDidScanDataRecordsCallback()
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193297
:
359996
|
359999
|
360001
|
360025
|
360085
|
360127