Changeset 254587 in webkit
- Timestamp:
- Jan 15, 2020, 11:14:39 AM (7 years ago)
- Location:
- branches/safari-609-branch/Source/WebKit
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
WebProcess/Network/WebLoaderStrategy.cpp (modified) (14 diffs)
-
WebProcess/Network/WebLoaderStrategy.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-609-branch/Source/WebKit/ChangeLog
r254581 r254587 1 2020-01-14 Alan Coon <alancoon@apple.com> 2 3 Cherry-pick r254078. rdar://problem/58549073 4 5 Reformat WebPage logging 6 https://bugs.webkit.org/show_bug.cgi?id=205709 7 <rdar://problem/58290285> 8 9 Reviewed by Brent Fulgham. 10 11 Update the format used by WebPage in its RELEASE_LOG logging. Use the 12 format used by WebPageProxy and NetworkResourceLoader, which is 13 generally of the form: 14 15 <object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values> 16 17 So, for example: 18 19 0x4a1df5000 - WebLoaderStrategy::scheduleLoad: Resource is being scheduled with the NetworkProcess (frame=0x4a1db0220, priority=0, webPageID=15, frameID=3, resourceID=32)', 20 21 becomes: 22 23 0x4a1df5000 - [resourceLoader=0x1418b7200, frameLoader=0x1326d7340, frame=0x4a1db0220, webPageID=15, frameID=3, resourceID=32] WebLoaderStrategy::scheduleLoad: Resource is being scheduled with the NetworkProcess (priority=2) 24 25 This new form is a lot more verbose, but it really helps in tracing 26 activity from the top of our page/frame/resource load stack to the 27 bottom. 28 29 No new tests - no added or changed functionality. 30 31 * WebProcess/Network/WebLoaderStrategy.cpp: 32 (WebKit::WebLoaderStrategy::scheduleLoad): 33 (WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler): 34 (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): 35 (WebKit::WebLoaderStrategy::networkProcessCrashed): 36 (WebKit::WebLoaderStrategy::loadResourceSynchronously): 37 * WebProcess/Network/WebLoaderStrategy.h: 38 39 40 git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254078 268f45cc-cd09-0410-ab3c-d52691b4dbfc 41 42 2020-01-06 Keith Rollin <krollin@apple.com> 43 44 Reformat WebPage logging 45 https://bugs.webkit.org/show_bug.cgi?id=205709 46 <rdar://problem/58290285> 47 48 Reviewed by Brent Fulgham. 49 50 Update the format used by WebPage in its RELEASE_LOG logging. Use the 51 format used by WebPageProxy and NetworkResourceLoader, which is 52 generally of the form: 53 54 <object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values> 55 56 So, for example: 57 58 0x4a1df5000 - WebLoaderStrategy::scheduleLoad: Resource is being scheduled with the NetworkProcess (frame=0x4a1db0220, priority=0, webPageID=15, frameID=3, resourceID=32)', 59 60 becomes: 61 62 0x4a1df5000 - [resourceLoader=0x1418b7200, frameLoader=0x1326d7340, frame=0x4a1db0220, webPageID=15, frameID=3, resourceID=32] WebLoaderStrategy::scheduleLoad: Resource is being scheduled with the NetworkProcess (priority=2) 63 64 This new form is a lot more verbose, but it really helps in tracing 65 activity from the top of our page/frame/resource load stack to the 66 bottom. 67 68 No new tests - no added or changed functionality. 69 70 * WebProcess/Network/WebLoaderStrategy.cpp: 71 (WebKit::WebLoaderStrategy::scheduleLoad): 72 (WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler): 73 (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): 74 (WebKit::WebLoaderStrategy::networkProcessCrashed): 75 (WebKit::WebLoaderStrategy::loadResourceSynchronously): 76 * WebProcess/Network/WebLoaderStrategy.h: 77 1 78 2020-01-14 Alan Coon <alancoon@apple.com> 2 79 -
branches/safari-609-branch/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
r253325 r254587 77 77 #endif 78 78 79 #define RELEASE_LOG_IF_ALLOWED(fmt, ...) RELEASE_LOG_IF(WebProcess::singleton().sessionID().isAlwaysOnLoggingAllowed(), Network, "%p - WebLoaderStrategy::" fmt, this, ##__VA_ARGS__) 80 #define RELEASE_LOG_ERROR_IF_ALLOWED(fmt, ...) RELEASE_LOG_ERROR_IF(WebProcess::singleton().sessionID().isAlwaysOnLoggingAllowed(), Network, "%p - WebLoaderStrategy::" fmt, this, ##__VA_ARGS__) 79 80 #define RELEASE_LOG_IS_ALLOWED (WebProcess::singleton().sessionID().isAlwaysOnLoggingAllowed()) 81 82 #define RELEASE_LOG_IF_ALLOWED(fmt, ...) RELEASE_LOG_IF(RELEASE_LOG_IS_ALLOWED, Network, "%p - WebLoaderStrategy::" fmt, this, ##__VA_ARGS__) 83 #define RELEASE_LOG_ERROR_IF_ALLOWED(fmt, ...) RELEASE_LOG_ERROR_IF(RELEASE_LOG_IS_ALLOWED, Network, "%p - WebLoaderStrategy::" fmt, this, ##__VA_ARGS__) 84 85 #define WEBLOADERSTRATEGY_RELEASE_LOG_STANDARD_TEMPLATE "%p - [resourceLoader=%p, frameLoader=%p, frame=%p, webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%" PRIu64 "] WebLoaderStrategy::" 86 #define WEBLOADERSTRATEGY_RELEASE_LOG_STANDARD_PARAMETERS this, &resourceLoader, resourceLoader.frameLoader(), resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID.toUInt64(), trackingParameters.resourceID 87 #define WEBLOADERSTRATEGY_WITH_FRAMELOADER_RELEASE_LOG_STANDARD_PARAMETERS this, nullptr, &frameLoader, &frameLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID.toUInt64(), trackingParameters.resourceID 88 89 #define WEBLOADERSTRATEGY_RELEASE_LOG_IF_ALLOWED(fmt, ...) RELEASE_LOG_IF(RELEASE_LOG_IS_ALLOWED, Network, WEBLOADERSTRATEGY_RELEASE_LOG_STANDARD_TEMPLATE fmt, WEBLOADERSTRATEGY_RELEASE_LOG_STANDARD_PARAMETERS, ##__VA_ARGS__) 90 #define WEBLOADERSTRATEGY_RELEASE_LOG_ERROR_IF_ALLOWED(fmt, ...) RELEASE_LOG_ERROR_IF(RELEASE_LOG_IS_ALLOWED, Network, WEBLOADERSTRATEGY_RELEASE_LOG_STANDARD_TEMPLATE fmt, WEBLOADERSTRATEGY_RELEASE_LOG_STANDARD_PARAMETERS, ##__VA_ARGS__) 91 92 #define WEBLOADERSTRATEGY_WITH_FRAMELOADER_RELEASE_LOG_IF_ALLOWED(fmt, ...) RELEASE_LOG_IF(RELEASE_LOG_IS_ALLOWED, Network, WEBLOADERSTRATEGY_RELEASE_LOG_STANDARD_TEMPLATE fmt, WEBLOADERSTRATEGY_WITH_FRAMELOADER_RELEASE_LOG_STANDARD_PARAMETERS, ##__VA_ARGS__) 93 #define WEBLOADERSTRATEGY_WITH_FRAMELOADER_RELEASE_LOG_ERROR_IF_ALLOWED(fmt, ...) RELEASE_LOG_ERROR_IF(RELEASE_LOG_IS_ALLOWED, Network, WEBLOADERSTRATEGY_RELEASE_LOG_STANDARD_TEMPLATE fmt, WEBLOADERSTRATEGY_WITH_FRAMELOADER_RELEASE_LOG_STANDARD_PARAMETERS, ##__VA_ARGS__) 81 94 82 95 namespace WebKit { … … 175 188 if (resourceLoader.documentLoader()->scheduleArchiveLoad(resourceLoader, resourceLoader.request())) { 176 189 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be handled as an archive resource.", resourceLoader.url().string().utf8().data()); 177 RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL will be handled as an archive resource (frame=%p, webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID.toUInt64(), identifier);190 WEBLOADERSTRATEGY_RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL will be handled as an archive resource"); 178 191 m_webResourceLoaders.set(identifier, WebResourceLoader::create(resourceLoader, trackingParameters)); 179 192 return; … … 183 196 if (resourceLoader.documentLoader()->applicationCacheHost().maybeLoadResource(resourceLoader, resourceLoader.request(), resourceLoader.request().url())) { 184 197 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be loaded from application cache.", resourceLoader.url().string().utf8().data()); 185 RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL will be loaded from application cache (frame=%p, webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID.toUInt64(), identifier);198 WEBLOADERSTRATEGY_RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL will be loaded from application cache"); 186 199 m_webResourceLoaders.set(identifier, WebResourceLoader::create(resourceLoader, trackingParameters)); 187 200 return; … … 190 203 if (resourceLoader.request().url().protocolIsData()) { 191 204 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be loaded as data.", resourceLoader.url().string().utf8().data()); 192 RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL will be loaded as data (frame=%p, webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID.toUInt64(), identifier);205 WEBLOADERSTRATEGY_RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL will be loaded as data"); 193 206 startLocalLoad(resourceLoader); 194 207 return; … … 198 211 if (isQuickLookPreviewURL(resourceLoader.request().url())) { 199 212 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be handled as a QuickLook resource.", resourceLoader.url().string().utf8().data()); 200 RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL will be handled as a QuickLook resource (frame=%p, webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID.toUInt64(), identifier);213 WEBLOADERSTRATEGY_RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL will be handled as a QuickLook resource"); 201 214 startLocalLoad(resourceLoader); 202 215 return; … … 209 222 if (resourceLoader.request().url().protocolIs("resource")) { 210 223 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be handled as a GResource.", resourceLoader.url().string().utf8().data()); 211 RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL will be handled as a GResource (frame=%p, webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID.toUInt64(), identifier);224 WEBLOADERSTRATEGY_RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL will be handled as a GResource"); 212 225 startLocalLoad(resourceLoader); 213 226 return; … … 215 228 #endif 216 229 217 if (!tryLoadingUsingURLSchemeHandler(resourceLoader )) {218 RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL will be scheduled with the NetworkProcess (frame=%p, webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID.toUInt64(), identifier);230 if (!tryLoadingUsingURLSchemeHandler(resourceLoader, trackingParameters)) { 231 WEBLOADERSTRATEGY_RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL will be scheduled with the NetworkProcess"); 219 232 scheduleLoadFromNetworkProcess(resourceLoader, resourceLoader.request(), trackingParameters, shouldClearReferrerOnHTTPSToHTTPRedirect, maximumBufferingTime(resource)); 220 233 return; 221 234 } 222 RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL not handled by any handlers (frame=%p, webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%" PRIu64 ")", resourceLoader.frame(), trackingParameters.pageID.toUInt64(), trackingParameters.frameID.toUInt64(), identifier); 223 } 224 225 bool WebLoaderStrategy::tryLoadingUsingURLSchemeHandler(ResourceLoader& resourceLoader) 235 236 WEBLOADERSTRATEGY_RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL not handled by any handlers"); 237 } 238 239 bool WebLoaderStrategy::tryLoadingUsingURLSchemeHandler(ResourceLoader& resourceLoader, const WebResourceLoader::TrackingParameters& trackingParameters) 226 240 { 227 241 auto* webFrameLoaderClient = toWebFrameLoaderClient(resourceLoader.frameLoader()->client()); … … 231 245 if (auto* handler = webPage->urlSchemeHandlerForScheme(resourceLoader.request().url().protocol().toStringWithoutCopying())) { 232 246 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, URL '%s' will be handled by a UIProcess URL scheme handler.", resourceLoader.url().string().utf8().data()); 233 RELEASE_LOG_IF_ALLOWED("scheduleLoad: URL will be handled by a UIProcess URL scheme handler (frame=%p, resourceID=%lu)", resourceLoader.frame(), resourceLoader.identifier());247 WEBLOADERSTRATEGY_RELEASE_LOG_IF_ALLOWED("tryLoadingUsingURLSchemeHandler: URL will be handled by a UIProcess URL scheme handler"); 234 248 235 249 handler->startNewTask(resourceLoader); … … 322 336 ASSERT(loadParameters.sourceOrigin); 323 337 if (!loadParameters.sourceOrigin) { 324 RELEASE_LOG_ERROR_IF_ALLOWED("scheduleLoad: no sourceOrigin (frame=%p, priority=%d, webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%" PRIu64 ")", resourceLoader.frame(), static_cast<int>(resourceLoader.request().priority()), loadParameters.webPageID.toUInt64(), loadParameters.webFrameID.toUInt64(), loadParameters.identifier);338 WEBLOADERSTRATEGY_RELEASE_LOG_ERROR_IF_ALLOWED("scheduleLoad: no sourceOrigin (priority=%d)", static_cast<int>(resourceLoader.request().priority())); 325 339 scheduleInternallyFailedLoad(resourceLoader); 326 340 return; … … 345 359 ASSERT((loadParameters.webPageID && loadParameters.webFrameID) || loadParameters.clientCredentialPolicy == ClientCredentialPolicy::CannotAskClientForCredentials); 346 360 347 RELEASE_LOG_IF_ALLOWED("scheduleLoad: Resource is being scheduled with the NetworkProcess (frame=%p, priority=%d, webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%" PRIu64 ")", resourceLoader.frame(), static_cast<int>(resourceLoader.request().priority()), loadParameters.webPageID.toUInt64(), loadParameters.webFrameID.toUInt64(), loadParameters.identifier);361 WEBLOADERSTRATEGY_RELEASE_LOG_IF_ALLOWED("scheduleLoad: Resource is being scheduled with the NetworkProcess (priority=%d)", static_cast<int>(resourceLoader.request().priority())); 348 362 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::ScheduleResourceLoad(loadParameters), 0)) { 349 RELEASE_LOG_ERROR_IF_ALLOWED("scheduleLoad: Unable to schedule resource with the NetworkProcess (frame=%p, priority=%d, webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%" PRIu64 ")", resourceLoader.frame(), static_cast<int>(resourceLoader.request().priority()), loadParameters.webPageID.toUInt64(), loadParameters.webFrameID.toUInt64(), loadParameters.identifier);363 WEBLOADERSTRATEGY_RELEASE_LOG_ERROR_IF_ALLOWED("scheduleLoad: Unable to schedule resource with the NetworkProcess (priority=%d)", static_cast<int>(resourceLoader.request().priority())); 350 364 // We probably failed to schedule this load with the NetworkProcess because it had crashed. 351 365 // This load will never succeed so we will schedule it to fail asynchronously. … … 458 472 void WebLoaderStrategy::networkProcessCrashed() 459 473 { 460 RELEASE_LOG_ERROR (Network, "WebLoaderStrategy::networkProcessCrashed: failing all pending resource loaders");474 RELEASE_LOG_ERROR_IF_ALLOWED("networkProcessCrashed: failing all pending resource loaders"); 461 475 462 476 for (auto& loader : m_webResourceLoaders.values()) { … … 515 529 auto frameID = webFrame ? webFrame->frameID() : FrameIdentifier { }; 516 530 531 WebResourceLoader::TrackingParameters trackingParameters; 532 trackingParameters.pageID = pageID; 533 trackingParameters.frameID = frameID; 534 trackingParameters.resourceID = resourceLoadIdentifier; 535 517 536 auto* document = frameLoader.frame().document(); 518 537 if (!document) { 519 RELEASE_LOG_ERROR_IF_ALLOWED("loadResourceSynchronously: no document (webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%lu)", pageID.toUInt64(), frameID.toUInt64(), resourceLoadIdentifier);538 WEBLOADERSTRATEGY_WITH_FRAMELOADER_RELEASE_LOG_ERROR_IF_ALLOWED("loadResourceSynchronously: no document"); 520 539 error = internalError(request.url()); 521 540 return; … … 523 542 524 543 if (auto syncLoadResult = tryLoadingSynchronouslyUsingURLSchemeHandler(frameLoader, resourceLoadIdentifier, request)) { 525 RELEASE_LOG_ERROR_IF_ALLOWED("loadResourceSynchronously: failed calling tryLoadingSynchronouslyUsingURLSchemeHandler (webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%lu, error=%d)", pageID.toUInt64(), frameID.toUInt64(), resourceLoadIdentifier, syncLoadResult->error.errorCode());544 WEBLOADERSTRATEGY_WITH_FRAMELOADER_RELEASE_LOG_ERROR_IF_ALLOWED("loadResourceSynchronously: failed calling tryLoadingSynchronouslyUsingURLSchemeHandler (error=%d)", syncLoadResult->error.errorCode()); 526 545 error = WTFMove(syncLoadResult->error); 527 546 response = WTFMove(syncLoadResult->response); … … 566 585 567 586 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad(loadParameters), Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::Reply(error, response, data), 0)) { 568 RELEASE_LOG_ERROR_IF_ALLOWED("loadResourceSynchronously: failed sending synchronous network process message (webPageID=%" PRIu64 ", frameID=%" PRIu64 ", resourceID=%lu)", pageID.toUInt64(), frameID.toUInt64(), resourceLoadIdentifier);587 WEBLOADERSTRATEGY_WITH_FRAMELOADER_RELEASE_LOG_ERROR_IF_ALLOWED("loadResourceSynchronously: failed sending synchronous network process message"); 569 588 if (auto* page = webPage ? webPage->corePage() : nullptr) 570 589 page->diagnosticLoggingClient().logDiagnosticMessage(WebCore::DiagnosticLoggingKeys::internalErrorKey(), WebCore::DiagnosticLoggingKeys::synchronousMessageFailedKey(), WebCore::ShouldSample::No); -
branches/safari-609-branch/Source/WebKit/WebProcess/Network/WebLoaderStrategy.h
r253325 r254587 94 94 void internallyFailedLoadTimerFired(); 95 95 void startLocalLoad(WebCore::ResourceLoader&); 96 bool tryLoadingUsingURLSchemeHandler(WebCore::ResourceLoader& );96 bool tryLoadingUsingURLSchemeHandler(WebCore::ResourceLoader&, const WebResourceLoader::TrackingParameters&); 97 97 98 98 struct SyncLoadResult {
Note:
See TracChangeset
for help on using the changeset viewer.