Add support for diagnostic logging messages sampling
https://bugs.webkit.org/show_bug.cgi?id=141823
<rdar://problem/19899030>
Reviewed by Andreas Kling.
Add support for diagnostic logging messages sampling to decrease the
impact of diagnostic logging on CPU usage, while still getting useful
overall results. This patch adds a ShouldSample argument to
logDiagnosticMessage*() functions and logs 5% of the messages when
sampling. Sampling is turned on for keys that are known to be verbose
(e.g. per resource load logging).
On the page load test I am tracking, CPU usage caused by diagnostic
logging went down to 0.3% of UIProcess from 2.8% with this change.
Source/WebCore:
* history/PageCache.cpp:
(WebCore::logPageCacheFailureDiagnosticMessage):
(WebCore::logCanCachePageDecision):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
(WebCore::logNavigation):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
* loader/ResourceLoader.cpp:
(WebCore::logResourceResponseSource):
* loader/SubframeLoader.cpp:
(WebCore::logPluginRequest):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequest):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::logResourceLoaded):
* loader/cache/CachedResource.cpp:
(WebCore::logResourceRevalidationReason):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::logMemoryCacheResourceRequest):
* page/DiagnosticLoggingClient.h:
Source/WebKit2:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::logDiagnosticMessage):
(WebKit::NetworkProcess::logDiagnosticMessageWithResult):
(WebKit::NetworkProcess::logDiagnosticMessageWithValue):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm:
(WebKit::NetworkCacheStatistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCacheStatistics::recordRetrievalFailure):
(WebKit::NetworkCacheStatistics::recordRetrievedCachedEntry):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::logDiagnosticMessage):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithResult):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithValue):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/WebPageProxy.cpp:
(WebKit::shouldLogDiagnosticMessage):
(WebKit::WebPageProxy::logDiagnosticMessage):
(WebKit::WebPageProxy::logDiagnosticMessageWithResult):
(WebKit::WebPageProxy::logDiagnosticMessageWithValue):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::willStartUserTriggeredZooming):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180517 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 8b56929..596b49f 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,44 @@
+2015-02-23 Chris Dumez <cdumez@apple.com>
+
+ Add support for diagnostic logging messages sampling
+ https://bugs.webkit.org/show_bug.cgi?id=141823
+ <rdar://problem/19899030>
+
+ Reviewed by Andreas Kling.
+
+ Add support for diagnostic logging messages sampling to decrease the
+ impact of diagnostic logging on CPU usage, while still getting useful
+ overall results. This patch adds a ShouldSample argument to
+ logDiagnosticMessage*() functions and logs 5% of the messages when
+ sampling. Sampling is turned on for keys that are known to be verbose
+ (e.g. per resource load logging).
+
+ On the page load test I am tracking, CPU usage caused by diagnostic
+ logging went down to 0.3% of UIProcess from 2.8% with this change.
+
+ * history/PageCache.cpp:
+ (WebCore::logPageCacheFailureDiagnosticMessage):
+ (WebCore::logCanCachePageDecision):
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::parseAttribute):
+ * loader/EmptyClients.h:
+ * loader/FrameLoader.cpp:
+ (WebCore::logNavigation):
+ (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
+ * loader/ResourceLoader.cpp:
+ (WebCore::logResourceResponseSource):
+ * loader/SubframeLoader.cpp:
+ (WebCore::logPluginRequest):
+ * loader/SubresourceLoader.cpp:
+ (WebCore::SubresourceLoader::willSendRequest):
+ (WebCore::SubresourceLoader::didReceiveResponse):
+ (WebCore::logResourceLoaded):
+ * loader/cache/CachedResource.cpp:
+ (WebCore::logResourceRevalidationReason):
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::logMemoryCacheResourceRequest):
+ * page/DiagnosticLoggingClient.h:
+
2015-02-23 Said Abou-Hallawa <sabouhallawa@apple.com>
Drawing an SVG image into a canvas using drawImage() ignores globalAlpha.
diff --git a/Source/WebCore/history/PageCache.cpp b/Source/WebCore/history/PageCache.cpp
index e038b24..adcada8 100644
--- a/Source/WebCore/history/PageCache.cpp
+++ b/Source/WebCore/history/PageCache.cpp
@@ -98,7 +98,7 @@
static inline void logPageCacheFailureDiagnosticMessage(DiagnosticLoggingClient& client, const String& reason)
{
- client.logDiagnosticMessageWithValue(DiagnosticLoggingKeys::pageCacheKey(), DiagnosticLoggingKeys::failureKey(), reason);
+ client.logDiagnosticMessageWithValue(DiagnosticLoggingKeys::pageCacheKey(), DiagnosticLoggingKeys::failureKey(), reason, ShouldSample::Yes);
}
static inline void logPageCacheFailureDiagnosticMessage(Page* page, const String& reason)
@@ -288,7 +288,7 @@
else
PCLOG(" Page CAN be cached\n--------");
- diagnosticLoggingClient.logDiagnosticMessageWithResult(DiagnosticLoggingKeys::pageCacheKey(), emptyString(), rejectReasons ? DiagnosticLoggingResultFail : DiagnosticLoggingResultPass);
+ diagnosticLoggingClient.logDiagnosticMessageWithResult(DiagnosticLoggingKeys::pageCacheKey(), emptyString(), rejectReasons ? DiagnosticLoggingResultFail : DiagnosticLoggingResultPass, ShouldSample::Yes);
}
PageCache& PageCache::singleton()
diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp
index 85a13a1..371c6af 100644
--- a/Source/WebCore/html/HTMLMediaElement.cpp
+++ b/Source/WebCore/html/HTMLMediaElement.cpp
@@ -1164,7 +1164,7 @@
// Log that we started loading a media element.
if (Frame* frame = document().frame())
- frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::mediaKey(), isVideo() ? DiagnosticLoggingKeys::videoKey() : DiagnosticLoggingKeys::audioKey(), DiagnosticLoggingKeys::loadingKey());
+ frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::mediaKey(), isVideo() ? DiagnosticLoggingKeys::videoKey() : DiagnosticLoggingKeys::audioKey(), DiagnosticLoggingKeys::loadingKey(), ShouldSample::No);
m_firstTimePlaying = true;
@@ -1835,17 +1835,17 @@
DiagnosticLoggingClient& diagnosticLoggingClient = page->mainFrame().diagnosticLoggingClient();
if (!succeeded) {
- diagnosticLoggingClient.logDiagnosticMessageWithResult(DiagnosticLoggingKeys::mediaLoadingFailedKey(), errorMessage, DiagnosticLoggingResultFail);
+ diagnosticLoggingClient.logDiagnosticMessageWithResult(DiagnosticLoggingKeys::mediaLoadingFailedKey(), errorMessage, DiagnosticLoggingResultFail, ShouldSample::No);
return;
}
- diagnosticLoggingClient.logDiagnosticMessage(DiagnosticLoggingKeys::mediaLoadedKey(), mediaEngine);
+ diagnosticLoggingClient.logDiagnosticMessage(DiagnosticLoggingKeys::mediaLoadedKey(), mediaEngine, ShouldSample::No);
if (!page->hasSeenAnyMediaEngine())
- diagnosticLoggingClient.logDiagnosticMessage(DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey(), emptyString());
+ diagnosticLoggingClient.logDiagnosticMessage(DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey(), emptyString(), ShouldSample::No);
if (!page->hasSeenMediaEngine(mediaEngine))
- diagnosticLoggingClient.logDiagnosticMessage(DiagnosticLoggingKeys::pageContainsMediaEngineKey(), mediaEngine);
+ diagnosticLoggingClient.logDiagnosticMessage(DiagnosticLoggingKeys::pageContainsMediaEngineKey(), mediaEngine, ShouldSample::No);
page->sawMediaEngine(mediaEngine);
}
@@ -4554,7 +4554,7 @@
if (m_firstTimePlaying) {
// Log that a media element was played.
if (Frame* frame = document().frame())
- frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::mediaKey(), isVideo() ? DiagnosticLoggingKeys::videoKey() : DiagnosticLoggingKeys::audioKey(), DiagnosticLoggingKeys::playedKey());
+ frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::mediaKey(), isVideo() ? DiagnosticLoggingKeys::videoKey() : DiagnosticLoggingKeys::audioKey(), DiagnosticLoggingKeys::playedKey(), ShouldSample::No);
m_firstTimePlaying = false;
}
@@ -5807,7 +5807,7 @@
return;
if (Frame* frame = document().frame())
- frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::engineFailedToLoadKey(), m_player->engineDescription(), String::number(m_player->platformErrorCode()));
+ frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::engineFailedToLoadKey(), m_player->engineDescription(), String::number(m_player->platformErrorCode()), ShouldSample::No);
}
double HTMLMediaElement::mediaPlayerRequestedPlaybackRate() const
diff --git a/Source/WebCore/loader/EmptyClients.h b/Source/WebCore/loader/EmptyClients.h
index 14ec62e..f903785 100644
--- a/Source/WebCore/loader/EmptyClients.h
+++ b/Source/WebCore/loader/EmptyClients.h
@@ -632,9 +632,9 @@
};
class EmptyDiagnosticLoggingClient final : public DiagnosticLoggingClient {
- virtual void logDiagnosticMessage(const String&, const String&) override { }
- virtual void logDiagnosticMessageWithResult(const String&, const String&, DiagnosticLoggingResultType) override { }
- virtual void logDiagnosticMessageWithValue(const String&, const String&, const String&) override { }
+ virtual void logDiagnosticMessage(const String&, const String&, ShouldSample) override { }
+ virtual void logDiagnosticMessageWithResult(const String&, const String&, DiagnosticLoggingResultType, ShouldSample) override { }
+ virtual void logDiagnosticMessageWithValue(const String&, const String&, const String&, ShouldSample) override { }
};
void fillWithEmptyClients(PageConfiguration&);
diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp
index 1fb3715..96bf0fb 100644
--- a/Source/WebCore/loader/FrameLoader.cpp
+++ b/Source/WebCore/loader/FrameLoader.cpp
@@ -1394,7 +1394,7 @@
// Not logging those for now.
return;
}
- frame.diagnosticLoggingClient().logDiagnosticMessage(DiagnosticLoggingKeys::navigationKey(), navigationDescription);
+ frame.diagnosticLoggingClient().logDiagnosticMessage(DiagnosticLoggingKeys::navigationKey(), navigationDescription, ShouldSample::No);
}
void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType type, PassRefPtr<FormState> prpFormState, AllowNavigationToInvalidURL allowNavigationToInvalidURL)
@@ -2270,7 +2270,7 @@
cache->frameLoadingEventNotification(&m_frame, loadingEvent);
if (page)
- page->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::pageLoadedKey(), emptyString(), error.isNull() ? DiagnosticLoggingResultPass : DiagnosticLoggingResultFail);
+ page->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::pageLoadedKey(), emptyString(), error.isNull() ? DiagnosticLoggingResultPass : DiagnosticLoggingResultFail, ShouldSample::No);
return;
}
diff --git a/Source/WebCore/loader/ResourceLoader.cpp b/Source/WebCore/loader/ResourceLoader.cpp
index 3cad7f1..334e960 100644
--- a/Source/WebCore/loader/ResourceLoader.cpp
+++ b/Source/WebCore/loader/ResourceLoader.cpp
@@ -329,7 +329,7 @@
return;
}
- frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceResponseKey(), DiagnosticLoggingKeys::sourceKey(), sourceKey);
+ frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceResponseKey(), DiagnosticLoggingKeys::sourceKey(), sourceKey, ShouldSample::Yes);
}
void ResourceLoader::didReceiveResponse(const ResourceResponse& r)
diff --git a/Source/WebCore/loader/SubframeLoader.cpp b/Source/WebCore/loader/SubframeLoader.cpp
index 5ecfc70..bcaa98d 100644
--- a/Source/WebCore/loader/SubframeLoader.cpp
+++ b/Source/WebCore/loader/SubframeLoader.cpp
@@ -195,13 +195,13 @@
String description = !pluginFile ? newMIMEType : pluginFile;
DiagnosticLoggingClient& diagnosticLoggingClient = page->mainFrame().diagnosticLoggingClient();
- diagnosticLoggingClient.logDiagnosticMessage(success ? DiagnosticLoggingKeys::pluginLoadedKey() : DiagnosticLoggingKeys::pluginLoadingFailedKey(), description);
+ diagnosticLoggingClient.logDiagnosticMessage(success ? DiagnosticLoggingKeys::pluginLoadedKey() : DiagnosticLoggingKeys::pluginLoadingFailedKey(), description, ShouldSample::No);
if (!page->hasSeenAnyPlugin())
- diagnosticLoggingClient.logDiagnosticMessage(DiagnosticLoggingKeys::pageContainsAtLeastOnePluginKey(), emptyString());
+ diagnosticLoggingClient.logDiagnosticMessage(DiagnosticLoggingKeys::pageContainsAtLeastOnePluginKey(), emptyString(), ShouldSample::No);
if (!page->hasSeenPlugin(description))
- diagnosticLoggingClient.logDiagnosticMessage(DiagnosticLoggingKeys::pageContainsPluginKey(), description);
+ diagnosticLoggingClient.logDiagnosticMessage(DiagnosticLoggingKeys::pageContainsPluginKey(), description, ShouldSample::No);
page->sawPlugin(description);
}
diff --git a/Source/WebCore/loader/SubresourceLoader.cpp b/Source/WebCore/loader/SubresourceLoader.cpp
index 731cd5d..1c36f16 100644
--- a/Source/WebCore/loader/SubresourceLoader.cpp
+++ b/Source/WebCore/loader/SubresourceLoader.cpp
@@ -161,7 +161,7 @@
newRequest.makeUnconditional();
MemoryCache::singleton().revalidationFailed(*m_resource);
if (m_frame)
- m_frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), emptyString(), DiagnosticLoggingResultFail);
+ m_frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), emptyString(), DiagnosticLoggingResultFail, ShouldSample::Yes);
}
if (!m_documentLoader->cachedResourceLoader().canRequest(m_resource->type(), newRequest.url(), options())) {
@@ -209,7 +209,7 @@
m_resource->setResponse(response);
MemoryCache::singleton().revalidationSucceeded(*m_resource, response);
if (m_frame)
- m_frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), emptyString(), DiagnosticLoggingResultPass);
+ m_frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), emptyString(), DiagnosticLoggingResultPass, ShouldSample::Yes);
if (!reachedTerminalState())
ResourceLoader::didReceiveResponse(response);
return;
@@ -217,7 +217,7 @@
// Did not get 304 response, continue as a regular resource load.
MemoryCache::singleton().revalidationFailed(*m_resource);
if (m_frame)
- m_frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), emptyString(), DiagnosticLoggingResultFail);
+ m_frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), emptyString(), DiagnosticLoggingResultFail, ShouldSample::Yes);
}
m_resource->responseReceived(response);
@@ -342,7 +342,7 @@
resourceType = DiagnosticLoggingKeys::otherKey();
break;
}
- frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceKey(), DiagnosticLoggingKeys::loadedKey(), resourceType);
+ frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceKey(), DiagnosticLoggingKeys::loadedKey(), resourceType, ShouldSample::Yes);
}
void SubresourceLoader::didFinishLoading(double finishTime)
diff --git a/Source/WebCore/loader/cache/CachedResource.cpp b/Source/WebCore/loader/cache/CachedResource.cpp
index 9fe72c4..7564de3f 100644
--- a/Source/WebCore/loader/cache/CachedResource.cpp
+++ b/Source/WebCore/loader/cache/CachedResource.cpp
@@ -683,7 +683,7 @@
static inline void logResourceRevalidationReason(Frame* frame, const String& reason)
{
if (frame)
- frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), DiagnosticLoggingKeys::reasonKey(), reason);
+ frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), DiagnosticLoggingKeys::reasonKey(), reason, ShouldSample::Yes);
}
bool CachedResource::mustRevalidateDueToCacheHeaders(const CachedResourceLoader& cachedResourceLoader, CachePolicy cachePolicy) const
diff --git a/Source/WebCore/loader/cache/CachedResourceLoader.cpp b/Source/WebCore/loader/cache/CachedResourceLoader.cpp
index 07ba927..33e5977 100644
--- a/Source/WebCore/loader/cache/CachedResourceLoader.cpp
+++ b/Source/WebCore/loader/cache/CachedResourceLoader.cpp
@@ -443,9 +443,9 @@
if (!frame)
return;
if (value.isNull())
- frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessage(DiagnosticLoggingKeys::resourceRequestKey(), description);
+ frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessage(DiagnosticLoggingKeys::resourceRequestKey(), description, ShouldSample::Yes);
else
- frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceRequestKey(), description, value);
+ frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceRequestKey(), description, value, ShouldSample::Yes);
}
CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(CachedResource::Type type, CachedResourceRequest& request)
diff --git a/Source/WebCore/page/DiagnosticLoggingClient.h b/Source/WebCore/page/DiagnosticLoggingClient.h
index a0da85d..bc5a1ed 100644
--- a/Source/WebCore/page/DiagnosticLoggingClient.h
+++ b/Source/WebCore/page/DiagnosticLoggingClient.h
@@ -31,11 +31,13 @@
namespace WebCore {
+enum class ShouldSample { No, Yes };
+
class DiagnosticLoggingClient {
public:
- virtual void logDiagnosticMessage(const String& message, const String& description) = 0;
- virtual void logDiagnosticMessageWithResult(const String& message, const String& description, DiagnosticLoggingResultType) = 0;
- virtual void logDiagnosticMessageWithValue(const String& message, const String& description, const String& value) = 0;
+ virtual void logDiagnosticMessage(const String& message, const String& description, ShouldSample) = 0;
+ virtual void logDiagnosticMessageWithResult(const String& message, const String& description, DiagnosticLoggingResultType, ShouldSample) = 0;
+ virtual void logDiagnosticMessageWithValue(const String& message, const String& description, const String& value, ShouldSample) = 0;
protected:
virtual ~DiagnosticLoggingClient() { }
diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog
index 7c9852a..414c4ce 100644
--- a/Source/WebKit2/ChangeLog
+++ b/Source/WebKit2/ChangeLog
@@ -1,3 +1,51 @@
+2015-02-23 Chris Dumez <cdumez@apple.com>
+
+ Add support for diagnostic logging messages sampling
+ https://bugs.webkit.org/show_bug.cgi?id=141823
+ <rdar://problem/19899030>
+
+ Reviewed by Andreas Kling.
+
+ Add support for diagnostic logging messages sampling to decrease the
+ impact of diagnostic logging on CPU usage, while still getting useful
+ overall results. This patch adds a ShouldSample argument to
+ logDiagnosticMessage*() functions and logs 5% of the messages when
+ sampling. Sampling is turned on for keys that are known to be verbose
+ (e.g. per resource load logging).
+
+ On the page load test I am tracking, CPU usage caused by diagnostic
+ logging went down to 0.3% of UIProcess from 2.8% with this change.
+
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::logDiagnosticMessage):
+ (WebKit::NetworkProcess::logDiagnosticMessageWithResult):
+ (WebKit::NetworkProcess::logDiagnosticMessageWithValue):
+ * NetworkProcess/NetworkProcess.h:
+ * NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm:
+ (WebKit::NetworkCacheStatistics::recordNotUsingCacheForRequest):
+ (WebKit::NetworkCacheStatistics::recordRetrievalFailure):
+ (WebKit::NetworkCacheStatistics::recordRetrievedCachedEntry):
+ * UIProcess/Network/NetworkProcessProxy.cpp:
+ (WebKit::NetworkProcessProxy::logDiagnosticMessage):
+ (WebKit::NetworkProcessProxy::logDiagnosticMessageWithResult):
+ (WebKit::NetworkProcessProxy::logDiagnosticMessageWithValue):
+ * UIProcess/Network/NetworkProcessProxy.h:
+ * UIProcess/Network/NetworkProcessProxy.messages.in:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::shouldLogDiagnosticMessage):
+ (WebKit::WebPageProxy::logDiagnosticMessage):
+ (WebKit::WebPageProxy::logDiagnosticMessageWithResult):
+ (WebKit::WebPageProxy::logDiagnosticMessageWithValue):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
+ (WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
+ (WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
+ (WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):
+ * WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
+ * WebProcess/WebPage/ios/WebPageIOS.mm:
+ (WebKit::WebPage::willStartUserTriggeredZooming):
+
2015-02-23 Anders Carlsson <andersca@apple.com>
Add a stubbed out _WKWebsiteDataRecord class
diff --git a/Source/WebKit2/NetworkProcess/NetworkProcess.cpp b/Source/WebKit2/NetworkProcess/NetworkProcess.cpp
index aadea0e..c50d67c 100644
--- a/Source/WebKit2/NetworkProcess/NetworkProcess.cpp
+++ b/Source/WebKit2/NetworkProcess/NetworkProcess.cpp
@@ -305,19 +305,19 @@
parentProcessConnection()->send(Messages::WebProcessPool::DidGetStatistics(data, callbackID), 0);
}
-void NetworkProcess::logDiagnosticMessage(uint64_t webPageID, const String& message, const String& description)
+void NetworkProcess::logDiagnosticMessage(uint64_t webPageID, const String& message, const String& description, WebCore::ShouldSample shouldSample)
{
- parentProcessConnection()->send(Messages::NetworkProcessProxy::LogDiagnosticMessage(webPageID, message, description), 0);
+ parentProcessConnection()->send(Messages::NetworkProcessProxy::LogDiagnosticMessage(webPageID, message, description, shouldSample == ShouldSample::Yes), 0);
}
-void NetworkProcess::logDiagnosticMessageWithResult(uint64_t webPageID, const String& message, const String& description, WebCore::DiagnosticLoggingResultType result)
+void NetworkProcess::logDiagnosticMessageWithResult(uint64_t webPageID, const String& message, const String& description, WebCore::DiagnosticLoggingResultType result, WebCore::ShouldSample shouldSample)
{
- parentProcessConnection()->send(Messages::NetworkProcessProxy::LogDiagnosticMessageWithResult(webPageID, message, description, result), 0);
+ parentProcessConnection()->send(Messages::NetworkProcessProxy::LogDiagnosticMessageWithResult(webPageID, message, description, result, shouldSample == ShouldSample::Yes), 0);
}
-void NetworkProcess::logDiagnosticMessageWithValue(uint64_t webPageID, const String& message, const String& description, const String& value)
+void NetworkProcess::logDiagnosticMessageWithValue(uint64_t webPageID, const String& message, const String& description, const String& value, WebCore::ShouldSample shouldSample)
{
- parentProcessConnection()->send(Messages::NetworkProcessProxy::LogDiagnosticMessageWithValue(webPageID, message, description, value), 0);
+ parentProcessConnection()->send(Messages::NetworkProcessProxy::LogDiagnosticMessageWithValue(webPageID, message, description, value, shouldSample == ShouldSample::Yes), 0);
}
void NetworkProcess::terminate()
diff --git a/Source/WebKit2/NetworkProcess/NetworkProcess.h b/Source/WebKit2/NetworkProcess/NetworkProcess.h
index fcbc98c..1d5fb5b 100644
--- a/Source/WebKit2/NetworkProcess/NetworkProcess.h
+++ b/Source/WebKit2/NetworkProcess/NetworkProcess.h
@@ -33,7 +33,7 @@
#include "DownloadManager.h"
#include "MessageReceiverMap.h"
#include "NetworkResourceLoadScheduler.h"
-#include <WebCore/DiagnosticLoggingResultType.h>
+#include <WebCore/DiagnosticLoggingClient.h>
#include <WebCore/SessionID.h>
#include <memory>
#include <wtf/Forward.h>
@@ -77,9 +77,9 @@
bool canHandleHTTPSServerTrustEvaluation() const { return m_canHandleHTTPSServerTrustEvaluation; }
// Diagnostic messages logging.
- void logDiagnosticMessage(uint64_t webPageID, const String& message, const String& description);
- void logDiagnosticMessageWithResult(uint64_t webPageID, const String& message, const String& description, WebCore::DiagnosticLoggingResultType);
- void logDiagnosticMessageWithValue(uint64_t webPageID, const String& message, const String& description, const String& value);
+ void logDiagnosticMessage(uint64_t webPageID, const String& message, const String& description, WebCore::ShouldSample);
+ void logDiagnosticMessageWithResult(uint64_t webPageID, const String& message, const String& description, WebCore::DiagnosticLoggingResultType, WebCore::ShouldSample);
+ void logDiagnosticMessageWithValue(uint64_t webPageID, const String& message, const String& description, const String& value, WebCore::ShouldSample);
private:
NetworkProcess();
diff --git a/Source/WebKit2/NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm b/Source/WebKit2/NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm
index d6e5461..e7573ac 100644
--- a/Source/WebKit2/NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm
+++ b/Source/WebKit2/NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm
@@ -216,7 +216,7 @@
if (wasEverRequested) {
String diagnosticKey = retrieveDecisionToDiagnosticKey(retrieveDecision);
LOG(NetworkCache, "(NetworkProcess) webPageID %llu: %s was previously requested but we are not using the cache, reason: %s", webPageID, requestURL.string().ascii().data(), diagnosticKey.utf8().data());
- NetworkProcess::singleton().logDiagnosticMessageWithValue(webPageID, WebCore::DiagnosticLoggingKeys::networkCacheKey(), WebCore::DiagnosticLoggingKeys::unusedKey(), diagnosticKey);
+ NetworkProcess::singleton().logDiagnosticMessageWithValue(webPageID, WebCore::DiagnosticLoggingKeys::networkCacheKey(), WebCore::DiagnosticLoggingKeys::unusedKey(), diagnosticKey, WebCore::ShouldSample::Yes);
} else
markAsRequested(hash);
});
@@ -250,7 +250,7 @@
if (wasPreviouslyRequested) {
String diagnosticKey = storeDecisionToDiagnosticKey(storeDecision.value());
LOG(NetworkCache, "(NetworkProcess) webPageID %llu: %s was previously request but is not in the cache, reason: %s", webPageID, requestURL.string().ascii().data(), diagnosticKey.utf8().data());
- NetworkProcess::singleton().logDiagnosticMessageWithValue(webPageID, WebCore::DiagnosticLoggingKeys::networkCacheKey(), WebCore::DiagnosticLoggingKeys::notInCacheKey(), diagnosticKey);
+ NetworkProcess::singleton().logDiagnosticMessageWithValue(webPageID, WebCore::DiagnosticLoggingKeys::networkCacheKey(), WebCore::DiagnosticLoggingKeys::notInCacheKey(), diagnosticKey, WebCore::ShouldSample::Yes);
} else
markAsRequested(hash);
});
@@ -277,13 +277,13 @@
WebCore::URL requestURL = request.url();
if (failure == NetworkCache::CachedEntryReuseFailure::None) {
LOG(NetworkCache, "(NetworkProcess) webPageID %llu: %s is in the cache and is used", webPageID, requestURL.string().ascii().data());
- NetworkProcess::singleton().logDiagnosticMessageWithResult(webPageID, WebCore::DiagnosticLoggingKeys::networkCacheKey(), WebCore::DiagnosticLoggingKeys::retrievalKey(), WebCore::DiagnosticLoggingResultPass);
+ NetworkProcess::singleton().logDiagnosticMessageWithResult(webPageID, WebCore::DiagnosticLoggingKeys::networkCacheKey(), WebCore::DiagnosticLoggingKeys::retrievalKey(), WebCore::DiagnosticLoggingResultPass, WebCore::ShouldSample::Yes);
return;
}
String diagnosticKey = cachedEntryReuseFailureToDiagnosticKey(failure);
LOG(NetworkCache, "(NetworkProcess) webPageID %llu: %s is in the cache but wasn't used, reason: %s", webPageID, requestURL.string().ascii().data(), diagnosticKey.utf8().data());
- NetworkProcess::singleton().logDiagnosticMessageWithValue(webPageID, WebCore::DiagnosticLoggingKeys::networkCacheKey(), WebCore::DiagnosticLoggingKeys::unusableCachedEntryKey(), diagnosticKey);
+ NetworkProcess::singleton().logDiagnosticMessageWithValue(webPageID, WebCore::DiagnosticLoggingKeys::networkCacheKey(), WebCore::DiagnosticLoggingKeys::unusableCachedEntryKey(), diagnosticKey, WebCore::ShouldSample::Yes);
}
void NetworkCacheStatistics::markAsRequested(const String& hash)
diff --git a/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp
index 732c1b5..e970a26 100644
--- a/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp
+++ b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp
@@ -230,7 +230,7 @@
#endif
}
-void NetworkProcessProxy::logDiagnosticMessage(uint64_t pageID, const String& message, const String& description)
+void NetworkProcessProxy::logDiagnosticMessage(uint64_t pageID, const String& message, const String& description, bool shouldSample)
{
WebPageProxy* page = WebProcessProxy::webPage(pageID);
// FIXME: We do this null-check because by the time the decision to log is made, the page may be gone. We should refactor to avoid this,
@@ -238,10 +238,10 @@
if (!page)
return;
- page->logDiagnosticMessage(message, description);
+ page->logDiagnosticMessage(message, description, shouldSample);
}
-void NetworkProcessProxy::logDiagnosticMessageWithResult(uint64_t pageID, const String& message, const String& description, uint32_t result)
+void NetworkProcessProxy::logDiagnosticMessageWithResult(uint64_t pageID, const String& message, const String& description, uint32_t result, bool shouldSample)
{
WebPageProxy* page = WebProcessProxy::webPage(pageID);
// FIXME: We do this null-check because by the time the decision to log is made, the page may be gone. We should refactor to avoid this,
@@ -249,10 +249,10 @@
if (!page)
return;
- page->logDiagnosticMessageWithResult(message, description, result);
+ page->logDiagnosticMessageWithResult(message, description, result, shouldSample);
}
-void NetworkProcessProxy::logDiagnosticMessageWithValue(uint64_t pageID, const String& message, const String& description, const String& value)
+void NetworkProcessProxy::logDiagnosticMessageWithValue(uint64_t pageID, const String& message, const String& description, const String& value, bool shouldSample)
{
WebPageProxy* page = WebProcessProxy::webPage(pageID);
// FIXME: We do this null-check because by the time the decision to log is made, the page may be gone. We should refactor to avoid this,
@@ -260,7 +260,7 @@
if (!page)
return;
- page->logDiagnosticMessageWithValue(message, description, value);
+ page->logDiagnosticMessageWithValue(message, description, value, shouldSample);
}
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h
index 3f89627..550b3b8 100644
--- a/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h
+++ b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h
@@ -91,9 +91,9 @@
void didCreateNetworkConnectionToWebProcess(const IPC::Attachment&);
void didReceiveAuthenticationChallenge(uint64_t pageID, uint64_t frameID, const WebCore::AuthenticationChallenge&, uint64_t challengeID);
void didDeleteWebsiteData(uint64_t callbackID);
- void logDiagnosticMessage(uint64_t pageID, const String& message, const String& description);
- void logDiagnosticMessageWithResult(uint64_t pageID, const String& message, const String& description, uint32_t result);
- void logDiagnosticMessageWithValue(uint64_t pageID, const String& message, const String& description, const String& value);
+ void logDiagnosticMessage(uint64_t pageID, const String& message, const String& description, bool shouldSample);
+ void logDiagnosticMessageWithResult(uint64_t pageID, const String& message, const String& description, uint32_t result, bool shouldSample);
+ void logDiagnosticMessageWithValue(uint64_t pageID, const String& message, const String& description, const String& value, bool shouldSample);
// ProcessLauncher::Client
virtual void didFinishLaunching(ProcessLauncher*, IPC::Connection::Identifier) override;
diff --git a/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.messages.in b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.messages.in
index e9d8cf6..c519ce6 100644
--- a/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.messages.in
+++ b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.messages.in
@@ -30,9 +30,9 @@
DidDeleteWebsiteData(uint64_t callbackID)
# Diagnostic messages logging
- LogDiagnosticMessage(uint64_t pageID, String message, String description)
- LogDiagnosticMessageWithResult(uint64_t pageID, String message, String description, uint32_t result)
- LogDiagnosticMessageWithValue(uint64_t pageID, String message, String description, String value)
+ LogDiagnosticMessage(uint64_t pageID, String message, String description, bool shouldSample)
+ LogDiagnosticMessageWithResult(uint64_t pageID, String message, String description, uint32_t result, bool shouldSample)
+ LogDiagnosticMessageWithValue(uint64_t pageID, String message, String description, String value, bool shouldSample)
}
#endif // ENABLE(NETWORK_PROCESS)
diff --git a/Source/WebKit2/UIProcess/WebPageProxy.cpp b/Source/WebKit2/UIProcess/WebPageProxy.cpp
index 94525dc..952e9a4 100644
--- a/Source/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebPageProxy.cpp
@@ -111,6 +111,7 @@
#include <WebCore/WindowFeatures.h>
#include <stdio.h>
#include <wtf/NeverDestroyed.h>
+#include <wtf/RandomNumber.h>
#include <wtf/text/StringView.h>
#if ENABLE(ASYNC_SCROLLING)
@@ -4494,19 +4495,31 @@
callback->performCallbackWithReturnValue(range);
}
-void WebPageProxy::logDiagnosticMessage(const String& message, const String& description)
+static bool shouldLogDiagnosticMessage(bool shouldSample)
{
- m_diagnosticLoggingClient->logDiagnosticMessage(this, message, description);
+ if (!shouldSample)
+ return true;
+ // Log 5% of messages when sampling.
+ static const double selectionProbability = 0.05;
+ return randomNumber() <= selectionProbability;
}
-void WebPageProxy::logDiagnosticMessageWithResult(const String& message, const String& description, uint32_t result)
+void WebPageProxy::logDiagnosticMessage(const String& message, const String& description, bool shouldSample)
{
- m_diagnosticLoggingClient->logDiagnosticMessageWithResult(this, message, description, static_cast<WebCore::DiagnosticLoggingResultType>(result));
+ if (shouldLogDiagnosticMessage(shouldSample))
+ m_diagnosticLoggingClient->logDiagnosticMessage(this, message, description);
}
-void WebPageProxy::logDiagnosticMessageWithValue(const String& message, const String& description, const String& value)
+void WebPageProxy::logDiagnosticMessageWithResult(const String& message, const String& description, uint32_t result, bool shouldSample)
{
- m_diagnosticLoggingClient->logDiagnosticMessageWithValue(this, message, description, value);
+ if (shouldLogDiagnosticMessage(shouldSample))
+ m_diagnosticLoggingClient->logDiagnosticMessageWithResult(this, message, description, static_cast<WebCore::DiagnosticLoggingResultType>(result));
+}
+
+void WebPageProxy::logDiagnosticMessageWithValue(const String& message, const String& description, const String& value, bool shouldSample)
+{
+ if (shouldLogDiagnosticMessage(shouldSample))
+ m_diagnosticLoggingClient->logDiagnosticMessageWithValue(this, message, description, value);
}
void WebPageProxy::rectForCharacterRangeCallback(const IntRect& rect, const EditingRange& actualRange, uint64_t callbackID)
diff --git a/Source/WebKit2/UIProcess/WebPageProxy.h b/Source/WebKit2/UIProcess/WebPageProxy.h
index 1b6b61b..2927a6d 100644
--- a/Source/WebKit2/UIProcess/WebPageProxy.h
+++ b/Source/WebKit2/UIProcess/WebPageProxy.h
@@ -991,9 +991,9 @@
void setShouldDispatchFakeMouseMoveEvents(bool);
// Diagnostic messages logging.
- void logDiagnosticMessage(const String& message, const String& description);
- void logDiagnosticMessageWithResult(const String& message, const String& description, uint32_t result);
- void logDiagnosticMessageWithValue(const String& message, const String& description, const String& value);
+ void logDiagnosticMessage(const String& message, const String& description, bool shouldSample);
+ void logDiagnosticMessageWithResult(const String& message, const String& description, uint32_t result, bool shouldSample);
+ void logDiagnosticMessageWithValue(const String& message, const String& description, const String& value, bool shouldSample);
private:
WebPageProxy(PageClient&, WebProcessProxy&, uint64_t pageID, const WebPageConfiguration&);
diff --git a/Source/WebKit2/UIProcess/WebPageProxy.messages.in b/Source/WebKit2/UIProcess/WebPageProxy.messages.in
index 6c5069c..a462711 100644
--- a/Source/WebKit2/UIProcess/WebPageProxy.messages.in
+++ b/Source/WebKit2/UIProcess/WebPageProxy.messages.in
@@ -224,9 +224,9 @@
ExecuteUndoRedo(uint32_t action) -> (bool result)
# Diagnostic messages logging
- LogDiagnosticMessage(String message, String description)
- LogDiagnosticMessageWithResult(String message, String description, uint32_t result)
- LogDiagnosticMessageWithValue(String message, String description, String value)
+ LogDiagnosticMessage(String message, String description, bool shouldSample)
+ LogDiagnosticMessageWithResult(String message, String description, uint32_t result, bool shouldSample)
+ LogDiagnosticMessageWithValue(String message, String description, String value, bool shouldSample)
# Editor notifications
EditorStateChanged(struct WebKit::EditorState editorState)
diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp b/Source/WebKit2/WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp
index 8be16f3..0ea1820 100644
--- a/Source/WebKit2/WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp
+++ b/Source/WebKit2/WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp
@@ -41,34 +41,34 @@
{
}
-void WebDiagnosticLoggingClient::logDiagnosticMessage(const String& message, const String& description)
+void WebDiagnosticLoggingClient::logDiagnosticMessage(const String& message, const String& description, WebCore::ShouldSample shouldSample)
{
if (!m_page.corePage()->settings().diagnosticLoggingEnabled())
return;
// FIXME: Remove this injected bundle API.
m_page.injectedBundleDiagnosticLoggingClient().logDiagnosticMessage(&m_page, message, description);
- m_page.send(Messages::WebPageProxy::LogDiagnosticMessage(message, description));
+ m_page.send(Messages::WebPageProxy::LogDiagnosticMessage(message, description, shouldSample == WebCore::ShouldSample::Yes));
}
-void WebDiagnosticLoggingClient::logDiagnosticMessageWithResult(const String& message, const String& description, WebCore::DiagnosticLoggingResultType result)
+void WebDiagnosticLoggingClient::logDiagnosticMessageWithResult(const String& message, const String& description, WebCore::DiagnosticLoggingResultType result, WebCore::ShouldSample shouldSample)
{
if (!m_page.corePage()->settings().diagnosticLoggingEnabled())
return;
// FIXME: Remove this injected bundle API.
m_page.injectedBundleDiagnosticLoggingClient().logDiagnosticMessageWithResult(&m_page, message, description, result);
- m_page.send(Messages::WebPageProxy::LogDiagnosticMessageWithResult(message, description, result));
+ m_page.send(Messages::WebPageProxy::LogDiagnosticMessageWithResult(message, description, result, shouldSample == WebCore::ShouldSample::Yes));
}
-void WebDiagnosticLoggingClient::logDiagnosticMessageWithValue(const String& message, const String& description, const String& value)
+void WebDiagnosticLoggingClient::logDiagnosticMessageWithValue(const String& message, const String& description, const String& value, WebCore::ShouldSample shouldSample)
{
if (!m_page.corePage()->settings().diagnosticLoggingEnabled())
return;
// FIXME: Remove this injected bundle API.
m_page.injectedBundleDiagnosticLoggingClient().logDiagnosticMessageWithValue(&m_page, message, description, value);
- m_page.send(Messages::WebPageProxy::LogDiagnosticMessageWithValue(message, description, value));
+ m_page.send(Messages::WebPageProxy::LogDiagnosticMessageWithValue(message, description, value, shouldSample == WebCore::ShouldSample::Yes));
}
} // namespace WebKit
diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h b/Source/WebKit2/WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h
index 46ee698..3687cc8 100644
--- a/Source/WebKit2/WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h
+++ b/Source/WebKit2/WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h
@@ -39,9 +39,9 @@
virtual ~WebDiagnosticLoggingClient();
private:
- virtual void logDiagnosticMessage(const String& message, const String& description) override;
- virtual void logDiagnosticMessageWithResult(const String& message, const String& description, WebCore::DiagnosticLoggingResultType) override;
- virtual void logDiagnosticMessageWithValue(const String& message, const String& description, const String& value) override;
+ virtual void logDiagnosticMessage(const String& message, const String& description, WebCore::ShouldSample) override;
+ virtual void logDiagnosticMessageWithResult(const String& message, const String& description, WebCore::DiagnosticLoggingResultType, WebCore::ShouldSample) override;
+ virtual void logDiagnosticMessageWithValue(const String& message, const String& description, const String& value, WebCore::ShouldSample) override;
WebPage& m_page;
};
diff --git a/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm b/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm
index a5f15dad..b0af374 100644
--- a/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm
+++ b/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm
@@ -2780,7 +2780,7 @@
void WebPage::willStartUserTriggeredZooming()
{
- m_page->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::webViewKey(), DiagnosticLoggingKeys::userKey(), DiagnosticLoggingKeys::zoomedKey());
+ m_page->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::webViewKey(), DiagnosticLoggingKeys::userKey(), DiagnosticLoggingKeys::zoomedKey(), ShouldSample::No);
m_userHasChangedPageScaleFactor = true;
}