Changeset 199955 in webkit
- Timestamp:
- Apr 23, 2016 2:33:49 PM (8 years ago)
- Location:
- trunk/Source
- Files:
-
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r199942 r199955 1 2016-04-23 Chris Dumez <cdumez@apple.com> 2 3 Tie the DiagnosticLoggingClient's lifetime to the Page 4 https://bugs.webkit.org/show_bug.cgi?id=156938 5 <rdar://problem/25851499> 6 7 Reviewed by Antti Koivisto. 8 9 Tie the DiagnosticLoggingClient's lifetime to the Page rather than to the 10 MainFrame. The diagnostic logging client in WebKit2 requires the WebPage 11 to be alive in order to send IPC to the UIProcess. The WebPage owns the 12 Page and Page is not refCounted so the lifetime of the 13 DiagnosticLoggingClient should now be tied to the one of the WebPage as 14 well. 15 16 Previously, the DiagnosticLoggingClient would stay alive as long as the 17 MainFrame and could apparently in rare cases outlive the WebPage, thus 18 crashing when trying to send the IPC. 19 20 * history/PageCache.cpp: 21 (WebCore::logPageCacheFailureDiagnosticMessage): 22 (WebCore::canCachePage): 23 * html/HTMLMediaElement.cpp: 24 (WebCore::HTMLMediaElement::loadResource): 25 (WebCore::logMediaLoadRequest): 26 (WebCore::HTMLMediaElement::updatePlayState): 27 (WebCore::HTMLMediaElement::mediaPlayerEngineFailedToLoad): 28 * loader/EmptyClients.h: 29 * loader/FrameLoader.cpp: 30 (WebCore::logNavigation): 31 (WebCore::FrameLoader::checkLoadCompleteForThisFrame): 32 (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): 33 * loader/ResourceLoader.cpp: 34 (WebCore::logResourceResponseSource): 35 * loader/SubframeLoader.cpp: 36 (WebCore::logPluginRequest): 37 * loader/SubresourceLoader.cpp: 38 (WebCore::SubresourceLoader::willSendRequestInternal): 39 (WebCore::SubresourceLoader::didReceiveResponse): 40 (WebCore::logResourceLoaded): 41 * loader/cache/CachedResourceLoader.cpp: 42 (WebCore::logMemoryCacheResourceRequest): 43 (WebCore::logResourceRevalidationDecision): 44 * page/DiagnosticLoggingClient.h: 45 * page/MainFrame.cpp: 46 (WebCore::MainFrame::MainFrame): Deleted. 47 (WebCore::MainFrame::~MainFrame): Deleted. 48 (WebCore::MainFrame::diagnosticLoggingClient): Deleted. 49 * page/MainFrame.h: 50 * page/Page.cpp: 51 (WebCore::Page::Page): 52 (WebCore::Page::~Page): 53 (WebCore::Page::diagnosticLoggingClient): 54 * page/Page.h: 55 1 56 2016-04-22 Chris Dumez <cdumez@apple.com> 2 57 -
trunk/Source/WebCore/history/PageCache.cpp
r199003 r199955 75 75 return; 76 76 77 logPageCacheFailureDiagnosticMessage(page-> mainFrame().diagnosticLoggingClient(), reason);77 logPageCacheFailureDiagnosticMessage(page->diagnosticLoggingClient(), reason); 78 78 } 79 79 … … 191 191 unsigned indentLevel = 0; 192 192 PCLOG("--------\n Determining if page can be cached:"); 193 194 MainFrame& mainFrame = page.mainFrame(); 195 DiagnosticLoggingClient& diagnosticLoggingClient = mainFrame.diagnosticLoggingClient(); 196 bool isCacheable = canCacheFrame(mainFrame, diagnosticLoggingClient, indentLevel + 1); 193 194 DiagnosticLoggingClient& diagnosticLoggingClient = page.diagnosticLoggingClient(); 195 bool isCacheable = canCacheFrame(page.mainFrame(), diagnosticLoggingClient, indentLevel + 1); 197 196 198 197 if (!page.settings().usesPageCache() || page.isResourceCachingDisabled()) { -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r199733 r199955 1318 1318 1319 1319 // Log that we started loading a media element. 1320 if (Frame* frame = document().frame()) 1321 frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::mediaKey(), isVideo() ? DiagnosticLoggingKeys::videoKey() : DiagnosticLoggingKeys::audioKey(), DiagnosticLoggingKeys::loadingKey(), ShouldSample::No); 1320 page->diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::mediaKey(), isVideo() ? DiagnosticLoggingKeys::videoKey() : DiagnosticLoggingKeys::audioKey(), DiagnosticLoggingKeys::loadingKey(), ShouldSample::No); 1322 1321 1323 1322 m_firstTimePlaying = true; … … 1988 1987 return; 1989 1988 1990 DiagnosticLoggingClient& diagnosticLoggingClient = page-> mainFrame().diagnosticLoggingClient();1989 DiagnosticLoggingClient& diagnosticLoggingClient = page->diagnosticLoggingClient(); 1991 1990 if (!succeeded) { 1992 1991 diagnosticLoggingClient.logDiagnosticMessageWithResult(DiagnosticLoggingKeys::mediaLoadingFailedKey(), errorMessage, DiagnosticLoggingResultFail, ShouldSample::No); … … 4846 4845 if (m_firstTimePlaying) { 4847 4846 // Log that a media element was played. 4848 if ( Frame* frame = document().frame())4849 frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::mediaKey(), isVideo() ? DiagnosticLoggingKeys::videoKey() : DiagnosticLoggingKeys::audioKey(), DiagnosticLoggingKeys::playedKey(), ShouldSample::No);4847 if (auto* page = document().page()) 4848 page->diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::mediaKey(), isVideo() ? DiagnosticLoggingKeys::videoKey() : DiagnosticLoggingKeys::audioKey(), DiagnosticLoggingKeys::playedKey(), ShouldSample::No); 4850 4849 m_firstTimePlaying = false; 4851 4850 } … … 6297 6296 return; 6298 6297 6299 if ( Frame* frame = document().frame())6300 frame->mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::engineFailedToLoadKey(), m_player->engineDescription(), String::number(m_player->platformErrorCode()), ShouldSample::No);6298 if (auto* page = document().page()) 6299 page->diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::engineFailedToLoadKey(), m_player->engineDescription(), String::number(m_player->platformErrorCode()), ShouldSample::No); 6301 6300 } 6302 6301 -
trunk/Source/WebCore/loader/EmptyClients.cpp
r199851 r199955 142 142 pageConfiguration.progressTrackerClient = &dummyProgressTrackerClient.get(); 143 143 144 static NeverDestroyed<EmptyDiagnosticLoggingClient> dummyDiagnosticLoggingClient; 145 pageConfiguration.diagnosticLoggingClient = &dummyDiagnosticLoggingClient.get(); 144 pageConfiguration.diagnosticLoggingClient = std::make_unique<EmptyDiagnosticLoggingClient>(); 146 145 147 146 pageConfiguration.applicationCacheStorage = ApplicationCacheStorage::create(String(), String()); -
trunk/Source/WebCore/loader/EmptyClients.h
r199673 r199955 641 641 void logDiagnosticMessageWithResult(const String&, const String&, DiagnosticLoggingResultType, ShouldSample) override { } 642 642 void logDiagnosticMessageWithValue(const String&, const String&, const String&, ShouldSample) override { } 643 644 void mainFrameDestroyed() override { }645 643 }; 646 644 -
trunk/Source/WebCore/loader/FrameLoader.cpp
r199735 r199955 1366 1366 static void logNavigation(MainFrame& frame, FrameLoadType type) 1367 1367 { 1368 if (!frame.page()) 1369 return; 1370 1368 1371 String navigationDescription; 1369 1372 switch (type) { … … 1394 1397 return; 1395 1398 } 1396 frame. diagnosticLoggingClient().logDiagnosticMessage(DiagnosticLoggingKeys::navigationKey(), navigationDescription, ShouldSample::No);1399 frame.page()->diagnosticLoggingClient().logDiagnosticMessage(DiagnosticLoggingKeys::navigationKey(), navigationDescription, ShouldSample::No); 1397 1400 } 1398 1401 … … 2326 2329 if (m_frame.isMainFrame() && m_frame.page()) { 2327 2330 ASSERT(&m_frame.page()->mainFrame() == &m_frame); 2328 m_frame.page()-> mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::pageLoadedKey(), emptyString(), error.isNull() ? DiagnosticLoggingResultPass : DiagnosticLoggingResultFail, ShouldSample::Yes);2331 m_frame.page()->diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::pageLoadedKey(), emptyString(), error.isNull() ? DiagnosticLoggingResultPass : DiagnosticLoggingResultFail, ShouldSample::Yes); 2329 2332 } 2330 2333 … … 3050 3053 3051 3054 if (isBackForwardLoadType(type)) { 3052 auto& diagnosticLoggingClient = m_frame. mainFrame().diagnosticLoggingClient();3055 auto& diagnosticLoggingClient = m_frame.page()->diagnosticLoggingClient(); 3053 3056 if (history().provisionalItem()->isInPageCache()) { 3054 3057 diagnosticLoggingClient.logDiagnosticMessageWithResult(DiagnosticLoggingKeys::pageCacheKey(), DiagnosticLoggingKeys::retrievalKey(), DiagnosticLoggingResultPass, ShouldSample::Yes); -
trunk/Source/WebCore/loader/ResourceLoader.cpp
r198180 r199955 404 404 static void logResourceResponseSource(Frame* frame, ResourceResponse::Source source) 405 405 { 406 if (!frame )406 if (!frame || !frame->page()) 407 407 return; 408 408 … … 424 424 } 425 425 426 frame-> mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceResponseKey(), DiagnosticLoggingKeys::sourceKey(), sourceKey, ShouldSample::Yes);426 frame->page()->diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceResponseKey(), DiagnosticLoggingKeys::sourceKey(), sourceKey, ShouldSample::Yes); 427 427 } 428 428 -
trunk/Source/WebCore/loader/SubframeLoader.cpp
r199313 r199955 210 210 String description = !pluginFile ? newMIMEType : pluginFile; 211 211 212 DiagnosticLoggingClient& diagnosticLoggingClient = page-> mainFrame().diagnosticLoggingClient();212 DiagnosticLoggingClient& diagnosticLoggingClient = page->diagnosticLoggingClient(); 213 213 diagnosticLoggingClient.logDiagnosticMessage(success ? DiagnosticLoggingKeys::pluginLoadedKey() : DiagnosticLoggingKeys::pluginLoadingFailedKey(), description, ShouldSample::No); 214 214 -
trunk/Source/WebCore/loader/SubresourceLoader.cpp
r199650 r199955 183 183 newRequest.makeUnconditional(); 184 184 MemoryCache::singleton().revalidationFailed(*m_resource); 185 if (m_frame )186 m_frame-> mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), emptyString(), DiagnosticLoggingResultFail, ShouldSample::Yes);185 if (m_frame && m_frame->page()) 186 m_frame->page()->diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), emptyString(), DiagnosticLoggingResultFail, ShouldSample::Yes); 187 187 } 188 188 … … 247 247 m_resource->setResponse(response); 248 248 MemoryCache::singleton().revalidationSucceeded(*m_resource, response); 249 if (m_frame )250 m_frame-> mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), emptyString(), DiagnosticLoggingResultPass, ShouldSample::Yes);249 if (m_frame && m_frame->page()) 250 m_frame->page()->diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), emptyString(), DiagnosticLoggingResultPass, ShouldSample::Yes); 251 251 if (!reachedTerminalState()) 252 252 ResourceLoader::didReceiveResponse(response); … … 255 255 // Did not get 304 response, continue as a regular resource load. 256 256 MemoryCache::singleton().revalidationFailed(*m_resource); 257 if (m_frame )258 m_frame-> mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), emptyString(), DiagnosticLoggingResultFail, ShouldSample::Yes);257 if (m_frame && m_frame->page()) 258 m_frame->page()->diagnosticLoggingClient().logDiagnosticMessageWithResult(DiagnosticLoggingKeys::cachedResourceRevalidationKey(), emptyString(), DiagnosticLoggingResultFail, ShouldSample::Yes); 259 259 } 260 260 … … 339 339 static void logResourceLoaded(Frame* frame, CachedResource::Type type) 340 340 { 341 if (!frame )341 if (!frame || !frame->page()) 342 342 return; 343 343 … … 383 383 break; 384 384 } 385 frame-> mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceKey(), DiagnosticLoggingKeys::loadedKey(), resourceType, ShouldSample::Yes);385 frame->page()->diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceKey(), DiagnosticLoggingKeys::loadedKey(), resourceType, ShouldSample::Yes); 386 386 } 387 387 -
trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp
r199881 r199955 540 540 static inline void logMemoryCacheResourceRequest(Frame* frame, const String& description, const String& value = String()) 541 541 { 542 if (!frame )542 if (!frame || !frame->page()) 543 543 return; 544 544 if (value.isNull()) 545 frame-> mainFrame().diagnosticLoggingClient().logDiagnosticMessage(DiagnosticLoggingKeys::resourceRequestKey(), description, ShouldSample::Yes);545 frame->page()->diagnosticLoggingClient().logDiagnosticMessage(DiagnosticLoggingKeys::resourceRequestKey(), description, ShouldSample::Yes); 546 546 else 547 frame-> mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceRequestKey(), description, value, ShouldSample::Yes);547 frame->page()->diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceRequestKey(), description, value, ShouldSample::Yes); 548 548 } 549 549 … … 720 720 static void logResourceRevalidationDecision(CachedResource::RevalidationDecision reason, const Frame* frame) 721 721 { 722 if (!frame )723 return; 724 auto& logClient = frame-> mainFrame().diagnosticLoggingClient();722 if (!frame || !frame->page()) 723 return; 724 auto& logClient = frame->page()->diagnosticLoggingClient(); 725 725 switch (reason) { 726 726 case CachedResource::RevalidationDecision::No: -
trunk/Source/WebCore/page/DiagnosticLoggingClient.h
r186707 r199955 28 28 29 29 #include "DiagnosticLoggingResultType.h" 30 #include <wtf/FastMalloc.h> 30 31 #include <wtf/Forward.h> 31 32 #include <wtf/RandomNumber.h> … … 36 37 37 38 class DiagnosticLoggingClient { 39 WTF_MAKE_FAST_ALLOCATED; 38 40 public: 39 41 virtual void logDiagnosticMessage(const String& message, const String& description, ShouldSample) = 0; … … 41 43 virtual void logDiagnosticMessageWithValue(const String& message, const String& description, const String& value, ShouldSample) = 0; 42 44 43 virtual void mainFrameDestroyed() = 0;44 45 45 static bool shouldLogAfterSampling(ShouldSample); 46 46 47 protected:48 47 virtual ~DiagnosticLoggingClient() { } 49 48 }; -
trunk/Source/WebCore/page/MainFrame.cpp
r199181 r199955 56 56 , m_recentWheelEventDeltaFilter(WheelEventDeltaFilter::create()) 57 57 , m_pageOverlayController(std::make_unique<PageOverlayController>(*this)) 58 , m_diagnosticLoggingClient(configuration.diagnosticLoggingClient)59 58 { 60 59 #if USE(APPLE_INTERNAL_SDK) … … 65 64 MainFrame::~MainFrame() 66 65 { 67 if (m_diagnosticLoggingClient)68 m_diagnosticLoggingClient->mainFrameDestroyed();69 70 66 m_recentWheelEventDeltaFilter = nullptr; 71 67 m_eventHandler = nullptr; … … 97 93 98 94 deref(); 99 }100 101 DiagnosticLoggingClient& MainFrame::diagnosticLoggingClient() const102 {103 static NeverDestroyed<EmptyDiagnosticLoggingClient> dummyClient;104 if (!settings().diagnosticLoggingEnabled() || !m_diagnosticLoggingClient)105 return dummyClient;106 107 return *m_diagnosticLoggingClient;108 95 } 109 96 -
trunk/Source/WebCore/page/MainFrame.h
r198805 r199955 37 37 namespace WebCore { 38 38 39 class DiagnosticLoggingClient;40 39 class PageConfiguration; 41 40 class PageOverlayController; … … 68 67 #endif // PLATFORM(MAC) 69 68 70 WEBCORE_EXPORT DiagnosticLoggingClient& diagnosticLoggingClient() const;71 72 69 #if USE(APPLE_INTERNAL_SDK) 73 70 #include <WebKitAdditions/MainFrameMembers.h> … … 90 87 std::unique_ptr<WheelEventDeltaFilter> m_recentWheelEventDeltaFilter; 91 88 std::unique_ptr<PageOverlayController> m_pageOverlayController; 92 DiagnosticLoggingClient* m_diagnosticLoggingClient;93 89 }; 94 90 -
trunk/Source/WebCore/page/Page.cpp
r199849 r199955 32 32 #include "ContextMenuController.h" 33 33 #include "DatabaseProvider.h" 34 #include "DiagnosticLoggingClient.h" 34 35 #include "DocumentLoader.h" 35 36 #include "DocumentMarkerController.h" … … 37 38 #include "Editor.h" 38 39 #include "EditorClient.h" 40 #include "EmptyClients.h" 39 41 #include "Event.h" 40 42 #include "EventNames.h" … … 182 184 , m_plugInClient(pageConfiguration.plugInClient) 183 185 , m_validationMessageClient(pageConfiguration.validationMessageClient) 186 , m_diagnosticLoggingClient(WTFMove(pageConfiguration.diagnosticLoggingClient)) 184 187 , m_subframeCount(0) 185 188 , m_openedByDOM(false) … … 268 271 Page::~Page() 269 272 { 273 m_diagnosticLoggingClient = nullptr; 270 274 m_mainFrame->setView(nullptr); 271 275 setGroupName(String()); … … 761 765 } 762 766 767 DiagnosticLoggingClient& Page::diagnosticLoggingClient() const 768 { 769 static NeverDestroyed<EmptyDiagnosticLoggingClient> dummyClient; 770 if (!settings().diagnosticLoggingEnabled() || !m_diagnosticLoggingClient) 771 return dummyClient; 772 773 return *m_diagnosticLoggingClient; 774 } 775 763 776 void Page::setMediaVolume(float volume) 764 777 { -
trunk/Source/WebCore/page/Page.h
r199286 r199955 85 85 class ContextMenuController; 86 86 class DatabaseProvider; 87 class DiagnosticLoggingClient; 87 88 class DragCaretController; 88 89 class DragClient; … … 329 330 WEBCORE_EXPORT unsigned pageCount() const; 330 331 332 WEBCORE_EXPORT DiagnosticLoggingClient& diagnosticLoggingClient() const; 333 331 334 // Notifications when the Page starts and stops being presented via a native window. 332 335 WEBCORE_EXPORT void setViewState(ViewState::Flags); … … 585 588 PlugInClient* m_plugInClient; 586 589 ValidationMessageClient* m_validationMessageClient; 590 std::unique_ptr<DiagnosticLoggingClient> m_diagnosticLoggingClient; 587 591 588 592 int m_subframeCount; -
trunk/Source/WebCore/page/PageConfiguration.cpp
r182497 r199955 30 30 #include "BackForwardClient.h" 31 31 #include "DatabaseProvider.h" 32 #include "DiagnosticLoggingClient.h" 32 33 #include "StorageNamespaceProvider.h" 33 34 #include "UserContentController.h" -
trunk/Source/WebCore/page/PageConfiguration.h
r198180 r199955 76 76 ValidationMessageClient* validationMessageClient { nullptr }; 77 77 FrameLoaderClient* loaderClientForMainFrame { nullptr }; 78 DiagnosticLoggingClient*diagnosticLoggingClient { nullptr };78 std::unique_ptr<DiagnosticLoggingClient> diagnosticLoggingClient { nullptr }; 79 79 80 80 #if USE(APPLE_INTERNAL_SDK) -
trunk/Source/WebKit2/ChangeLog
r199951 r199955 1 2016-04-23 Chris Dumez <cdumez@apple.com> 2 3 Tie the DiagnosticLoggingClient's lifetime to the Page 4 https://bugs.webkit.org/show_bug.cgi?id=156938 5 <rdar://problem/25851499> 6 7 Reviewed by Antti Koivisto. 8 9 * WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp: 10 (WebKit::WebDiagnosticLoggingClient::pageDestroyed): 11 (WebKit::WebDiagnosticLoggingClient::mainFrameDestroyed): Deleted. 12 * WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h: 13 * WebProcess/WebPage/ios/WebPageIOS.mm: 14 (WebKit::WebPage::willStartUserTriggeredZooming): 15 1 16 2016-04-23 Dan Bernstein <mitz@apple.com> 2 17 -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp
r186707 r199955 78 78 } 79 79 80 void WebDiagnosticLoggingClient::mainFrameDestroyed()81 {82 delete this;83 }84 85 80 } // namespace WebKit -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h
r197563 r199955 44 44 void logDiagnosticMessageWithValue(const String& message, const String& description, const String& value, WebCore::ShouldSample) override; 45 45 46 void mainFrameDestroyed() override;47 48 46 WebPage& m_page; 49 47 }; -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r199951 r199955 402 402 pageConfiguration.loaderClientForMainFrame = new WebFrameLoaderClient; 403 403 pageConfiguration.progressTrackerClient = new WebProgressTrackerClient(*this); 404 pageConfiguration.diagnosticLoggingClient = new WebDiagnosticLoggingClient(*this);404 pageConfiguration.diagnosticLoggingClient = std::make_unique<WebDiagnosticLoggingClient>(*this); 405 405 406 406 pageConfiguration.applicationCacheStorage = &WebProcess::singleton().applicationCacheStorage(); -
trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm
r199817 r199955 2991 2991 void WebPage::willStartUserTriggeredZooming() 2992 2992 { 2993 m_page-> mainFrame().diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::webViewKey(), DiagnosticLoggingKeys::userKey(), DiagnosticLoggingKeys::zoomedKey(), ShouldSample::No);2993 m_page->diagnosticLoggingClient().logDiagnosticMessageWithValue(DiagnosticLoggingKeys::webViewKey(), DiagnosticLoggingKeys::userKey(), DiagnosticLoggingKeys::zoomedKey(), ShouldSample::No); 2994 2994 m_userHasChangedPageScaleFactor = true; 2995 2995 }
Note: See TracChangeset
for help on using the changeset viewer.