Changeset 206166 in webkit
- Timestamp:
- Sep 20, 2016 1:03:45 PM (8 years ago)
- Location:
- trunk/Source
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r206165 r206166 1 2016-09-20 Keith Rollin <krollin@apple.com> 2 3 Adjust current networking logging 4 https://bugs.webkit.org/show_bug.cgi?id=162235 5 6 Reviewed by Antti Koivisto. 7 8 Update the "always on" network logging in order to better track the 9 loading of a particular resource and to better bind together the 10 resources downloaded for a particular page and frame. Do this by 11 consistently logging pageID, frameID, and resourceID. 12 13 No new tests -- there are no tests for logging. 14 15 * loader/FrameLoader.cpp: 16 (WebCore::FrameLoader::checkLoadCompleteForThisFrame): 17 * loader/ResourceLoader.h: 18 (WebCore::ResourceLoader::frame): 19 1 20 2016-09-20 Alex Christensen <achristensen@webkit.org> 2 21 -
trunk/Source/WebCore/loader/FrameLoader.cpp
r206006 r206166 2310 2310 loadingEvent = AXObjectCache::AXLoadingFailed; 2311 2311 } else { 2312 RELEASE_LOG_IF_ALLOWED("checkLoadCompleteForThisFrame: Finished frame load without error(frame = %p, main = %d)", &m_frame, m_frame.isMainFrame());2312 RELEASE_LOG_IF_ALLOWED("checkLoadCompleteForThisFrame: Finished frame load (frame = %p, main = %d)", &m_frame, m_frame.isMainFrame()); 2313 2313 #if ENABLE(DATA_DETECTION) 2314 2314 auto* document = m_frame.document(); -
trunk/Source/WebCore/loader/ResourceLoader.h
r204976 r206166 149 149 #endif 150 150 151 const Frame* frame() const { return m_frame.get(); } 151 152 WEBCORE_EXPORT bool isAlwaysOnLoggingAllowed() const; 152 153 -
trunk/Source/WebKit2/ChangeLog
r206135 r206166 1 2016-09-20 Keith Rollin <krollin@apple.com> 2 3 Adjust current networking logging 4 https://bugs.webkit.org/show_bug.cgi?id=162235 5 6 Reviewed by Antti Koivisto. 7 8 Update the "always on" network logging in order to better track the 9 loading of a particular resource and to better bind together the 10 resources downloaded for a particular page and frame. Do this by 11 consistently logging pageID, frameID, and resourceID. 12 13 * NetworkProcess/NetworkResourceLoader.cpp: 14 (WebKit::NetworkResourceLoader::didFinishLoading): 15 (WebKit::NetworkResourceLoader::didFailLoading): 16 (WebKit::NetworkResourceLoader::continueWillSendRequest): 17 * WebProcess/Network/WebLoaderStrategy.cpp: 18 (WebKit::WebLoaderStrategy::scheduleLoad): 19 (WebKit::WebLoaderStrategy::startLocalLoad): 20 * WebProcess/Network/WebResourceLoader.cpp: 21 (WebKit::WebResourceLoader::create): 22 (WebKit::WebResourceLoader::WebResourceLoader): 23 (WebKit::WebResourceLoader::willSendRequest): 24 (WebKit::WebResourceLoader::didReceiveResponse): 25 (WebKit::WebResourceLoader::didReceiveData): 26 (WebKit::WebResourceLoader::didFinishResourceLoad): 27 (WebKit::WebResourceLoader::didFailResourceLoad): 28 (WebKit::WebResourceLoader::didReceiveResource): 29 * WebProcess/Network/WebResourceLoader.h: 30 1 31 2016-09-19 Wenson Hsieh <wenson_hsieh@apple.com> 2 32 -
trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp
r205817 r206166 290 290 auto NetworkResourceLoader::didReceiveResponse(ResourceResponse&& receivedResponse) -> ShouldContinueDidReceiveResponse 291 291 { 292 RELEASE_LOG_IF_ALLOWED("didReceiveResponse: (pageID = %llu, frameID = %llu, isMainResource = %d, isSynchronous = %d, httpStatusCode = %d)", m_parameters.webPageID, m_parameters.webFrameID, isMainResource(), isSynchronous(), receivedResponse.httpStatusCode());292 RELEASE_LOG_IF_ALLOWED("didReceiveResponse: (pageID = %llu, frameID = %llu, resourceID = %llu, httpStatusCode = %d, length = %lld)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, receivedResponse.httpStatusCode(), receivedResponse.expectedContentLength()); 293 293 294 294 m_response = WTFMove(receivedResponse); … … 334 334 335 335 if (shouldContinueDidReceiveResponse) { 336 RELEASE_LOG_IF_ALLOWED("didReceiveResponse: Should wait for message from WebContent process before continuing resource load (pageID = %llu, frameID = %llu, isMainResource = %d, isSynchronous = %d)", static_cast<unsigned long long>(m_parameters.webPageID), static_cast<unsigned long long>(m_parameters.webFrameID), isMainResource(), isSynchronous());336 RELEASE_LOG_IF_ALLOWED("didReceiveResponse: Should wait for message from WebContent process before continuing resource load (pageID = %llu, frameID = %llu, resourceID = %llu)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier); 337 337 return ShouldContinueDidReceiveResponse::Yes; 338 338 } 339 339 340 RELEASE_LOG_IF_ALLOWED("didReceiveResponse: Should not wait for message from WebContent process before continuing resource load (pageID = %llu, frameID = %llu, isMainResource = %d, isSynchronous = %d)", static_cast<unsigned long long>(m_parameters.webPageID), static_cast<unsigned long long>(m_parameters.webFrameID), isMainResource(), isSynchronous());340 RELEASE_LOG_IF_ALLOWED("didReceiveResponse: Should not wait for message from WebContent process before continuing resource load (pageID = %llu, frameID = %llu, resourceID = %llu)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier); 341 341 return ShouldContinueDidReceiveResponse::No; 342 342 } … … 371 371 void NetworkResourceLoader::didFinishLoading(double finishTime) 372 372 { 373 RELEASE_LOG_IF_ALLOWED("didFinishLoading: (pageID = %llu, frameID = %llu, isMainResource = %d, isSynchronous = %d)", static_cast<unsigned long long>(m_parameters.webPageID), static_cast<unsigned long long>(m_parameters.webFrameID), isMainResource(), isSynchronous());373 RELEASE_LOG_IF_ALLOWED("didFinishLoading: (pageID = %llu, frameID = %llu, resourceID = %llu)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier); 374 374 375 375 #if ENABLE(NETWORK_CACHE) … … 402 402 void NetworkResourceLoader::didFailLoading(const ResourceError& error) 403 403 { 404 RELEASE_LOG_IF_ALLOWED("didFailLoading: (pageID = %llu, frameID = %llu, isMainResource = %d, isSynchronous = %d, isTimeout = %d, isCancellation = %d, errCode = %d)", m_parameters.webPageID, m_parameters.webFrameID, isMainResource(), isSynchronous(), error.isTimeout(), error.isCancellation(), error.errorCode());404 RELEASE_LOG_IF_ALLOWED("didFailLoading: (pageID = %llu, frameID = %llu, resourceID = %llu, isTimeout = %d, isCancellation = %d, errCode = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, error.isTimeout(), error.isCancellation(), error.errorCode()); 405 405 406 406 ASSERT(!error.isNull()); … … 448 448 void NetworkResourceLoader::continueWillSendRequest(ResourceRequest&& newRequest) 449 449 { 450 RELEASE_LOG_IF_ALLOWED("continueWillSendRequest: (pageID = %llu, frameID = %llu, isMainResource = %d, isSynchronous = %d)", static_cast<unsigned long long>(m_parameters.webPageID), static_cast<unsigned long long>(m_parameters.webFrameID), isMainResource(), isSynchronous());450 RELEASE_LOG_IF_ALLOWED("continueWillSendRequest: (pageID = %llu, frameID = %llu, resourceID = %llu)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier); 451 451 452 452 #if ENABLE(NETWORK_CACHE) -
trunk/Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp
r205817 r206166 133 133 ASSERT(identifier); 134 134 135 // FIXME: Some entities in WebCore use WebCore's "EmptyFrameLoaderClient" instead of having a proper WebFrameLoaderClient. 136 // EmptyFrameLoaderClient shouldn't exist and everything should be using a WebFrameLoaderClient, 137 // but in the meantime we have to make sure not to mis-cast. 138 WebFrameLoaderClient* webFrameLoaderClient = toWebFrameLoaderClient(resourceLoader.frameLoader()->client()); 139 WebFrame* webFrame = webFrameLoaderClient ? webFrameLoaderClient->webFrame() : nullptr; 140 WebPage* webPage = webFrame ? webFrame->page() : nullptr; 141 142 WebResourceLoader::TrackingParameters trackingParameters; 143 trackingParameters.pageID = webPage ? webPage->pageID() : 0; 144 trackingParameters.frameID = webFrame ? webFrame->frameID() : 0; 145 trackingParameters.resourceID = identifier; 146 135 147 #if ENABLE(WEB_ARCHIVE) || ENABLE(MHTML) 136 148 // If the DocumentLoader schedules this as an archive resource load, … … 138 150 if (resourceLoader.documentLoader()->scheduleArchiveLoad(resourceLoader, resourceLoader.request())) { 139 151 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be handled as an archive resource.", resourceLoader.url().string().utf8().data()); 140 m_webResourceLoaders.set(identifier, WebResourceLoader::create(resourceLoader ));152 m_webResourceLoaders.set(identifier, WebResourceLoader::create(resourceLoader, trackingParameters)); 141 153 return; 142 154 } … … 145 157 if (resourceLoader.documentLoader()->applicationCacheHost()->maybeLoadResource(resourceLoader, resourceLoader.request(), resourceLoader.request().url())) { 146 158 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be loaded from application cache.", resourceLoader.url().string().utf8().data()); 147 m_webResourceLoaders.set(identifier, WebResourceLoader::create(resourceLoader ));159 m_webResourceLoaders.set(identifier, WebResourceLoader::create(resourceLoader, trackingParameters)); 148 160 return; 149 161 } … … 177 189 ContentSniffingPolicy contentSniffingPolicy = resourceLoader.shouldSniffContent() ? SniffContent : DoNotSniffContent; 178 190 StoredCredentials allowStoredCredentials = resourceLoader.shouldUseCredentialStorage() ? AllowStoredCredentials : DoNotAllowStoredCredentials; 179 180 // FIXME: Some entities in WebCore use WebCore's "EmptyFrameLoaderClient" instead of having a proper WebFrameLoaderClient.181 // EmptyFrameLoaderClient shouldn't exist and everything should be using a WebFrameLoaderClient,182 // but in the meantime we have to make sure not to mis-cast.183 WebFrameLoaderClient* webFrameLoaderClient = toWebFrameLoaderClient(resourceLoader.frameLoader()->client());184 WebFrame* webFrame = webFrameLoaderClient ? webFrameLoaderClient->webFrame() : 0;185 WebPage* webPage = webFrame ? webFrame->page() : 0;186 191 187 192 NetworkResourceLoadParameters loadParameters; … … 203 208 204 209 if (!WebProcess::singleton().networkConnection().connection().send(Messages::NetworkConnectionToWebProcess::ScheduleResourceLoad(loadParameters), 0)) { 205 RELEASE_LOG_ERROR_IF_ALLOWED("scheduleLoad: Unable to schedule resource with the NetworkProcess ( priority = %d, pageID = %llu, frameID = %llu)", static_cast<int>(resourceLoader.request().priority()), static_cast<unsigned long long>(loadParameters.webPageID), static_cast<unsigned long long>(loadParameters.webFrameID));210 RELEASE_LOG_ERROR_IF_ALLOWED("scheduleLoad: Unable to schedule resource with the NetworkProcess (frame = %p, priority = %d, pageID = %llu, frameID = %llu, resourceID = %llu)", resourceLoader.frame(), static_cast<int>(resourceLoader.request().priority()), loadParameters.webPageID, loadParameters.identifier, loadParameters.webFrameID); 206 211 // We probably failed to schedule this load with the NetworkProcess because it had crashed. 207 212 // This load will never succeed so we will schedule it to fail asynchronously. … … 210 215 } 211 216 212 auto webResourceLoader = WebResourceLoader::create(resourceLoader );213 RELEASE_LOG_IF_ALLOWED("scheduleLoad: Resource will be scheduled with the NetworkProcess (priority = %d, pageID = %llu, frameID = %llu, WebResourceLoader = %p)", static_cast<int>(resourceLoader.request().priority()), static_cast<unsigned long long>(loadParameters.webPageID), static_cast<unsigned long long>(loadParameters.webFrameID), webResourceLoader.ptr());217 auto webResourceLoader = WebResourceLoader::create(resourceLoader, trackingParameters); 218 RELEASE_LOG_IF_ALLOWED("scheduleLoad: Resource has been queued for scheduling with the NetworkProcess (frame = %p, priority = %d, pageID = %llu, frameID = %llu, resourceID = %llu, WebResourceLoader = %p)", resourceLoader.frame(), static_cast<int>(resourceLoader.request().priority()), loadParameters.webPageID, loadParameters.webFrameID, loadParameters.identifier, webResourceLoader.ptr()); 214 219 m_webResourceLoaders.set(identifier, WTFMove(webResourceLoader)); 215 220 } … … 233 238 { 234 239 resourceLoader.start(); 235 m_webResourceLoaders.set(resourceLoader.identifier(), WebResourceLoader::create(resourceLoader ));240 m_webResourceLoaders.set(resourceLoader.identifier(), WebResourceLoader::create(resourceLoader, { })); 236 241 } 237 242 -
trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp
r206123 r206166 47 47 namespace WebKit { 48 48 49 Ref<WebResourceLoader> WebResourceLoader::create(Ref<ResourceLoader>&& coreLoader )50 { 51 return adoptRef(*new WebResourceLoader(WTFMove(coreLoader) ));52 } 53 54 WebResourceLoader::WebResourceLoader(Ref<WebCore::ResourceLoader>&& coreLoader )49 Ref<WebResourceLoader> WebResourceLoader::create(Ref<ResourceLoader>&& coreLoader, const TrackingParameters& trackingParameters) 50 { 51 return adoptRef(*new WebResourceLoader(WTFMove(coreLoader), trackingParameters)); 52 } 53 54 WebResourceLoader::WebResourceLoader(Ref<WebCore::ResourceLoader>&& coreLoader, const TrackingParameters& trackingParameters) 55 55 : m_coreLoader(WTFMove(coreLoader)) 56 , m_trackingParameters(trackingParameters) 56 57 { 57 58 } … … 79 80 { 80 81 LOG(Network, "(WebProcess) WebResourceLoader::willSendRequest to '%s'", proposedRequest.url().string().latin1().data()); 81 RELEASE_LOG_IF_ALLOWED("willSendRequest ");82 RELEASE_LOG_IF_ALLOWED("willSendRequest: (pageID = %llu, frameID = %llu, resourceID = %llu)", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); 82 83 83 84 RefPtr<WebResourceLoader> protectedThis(this); … … 102 103 { 103 104 LOG(Network, "(WebProcess) WebResourceLoader::didReceiveResponse for '%s'. Status %d.", m_coreLoader->url().string().latin1().data(), response.httpStatusCode()); 104 RELEASE_LOG_IF_ALLOWED("didReceiveResponse: ( status = %d)", response.httpStatusCode());105 RELEASE_LOG_IF_ALLOWED("didReceiveResponse: (pageID = %llu, frameID = %llu, resourceID = %llu, status = %d)", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID, response.httpStatusCode()); 105 106 106 107 Ref<WebResourceLoader> protect(*this); … … 136 137 137 138 if (!m_hasReceivedData) { 138 RELEASE_LOG_IF_ALLOWED("didReceiveData: (size = %lu)", data.size());139 RELEASE_LOG_IF_ALLOWED("didReceiveData: Started receiving data (pageID = %llu, frameID = %llu, resourceID = %llu)", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); 139 140 m_hasReceivedData = true; 140 141 } … … 152 153 { 153 154 LOG(Network, "(WebProcess) WebResourceLoader::didFinishResourceLoad for '%s'", m_coreLoader->url().string().latin1().data()); 154 RELEASE_LOG_IF_ALLOWED("didFinishResourceLoad ");155 RELEASE_LOG_IF_ALLOWED("didFinishResourceLoad: (pageID = %llu, frameID = %llu, resourceID = %llu)", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); 155 156 156 157 #if USE(QUICK_LOOK) … … 166 167 { 167 168 LOG(Network, "(WebProcess) WebResourceLoader::didFailResourceLoad for '%s'", m_coreLoader->url().string().latin1().data()); 168 RELEASE_LOG_IF_ALLOWED("didFailResourceLoad ");169 RELEASE_LOG_IF_ALLOWED("didFailResourceLoad: (pageID = %llu, frameID = %llu, resourceID = %llu)", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); 169 170 170 171 #if USE(QUICK_LOOK) … … 181 182 { 182 183 LOG(Network, "(WebProcess) WebResourceLoader::didReceiveResource for '%s'", m_coreLoader->url().string().latin1().data()); 183 RELEASE_LOG_IF_ALLOWED("didReceiveResource ");184 RELEASE_LOG_IF_ALLOWED("didReceiveResource: (pageID = %llu, frameID = %llu, resourceID = %llu)", m_trackingParameters.pageID, m_trackingParameters.frameID, m_trackingParameters.resourceID); 184 185 185 186 RefPtr<SharedBuffer> buffer = handle.tryWrapInSharedBuffer(); -
trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.h
r206123 r206166 42 42 43 43 namespace WebCore { 44 class CertificateInfo;45 class ProtectionSpace;46 44 class ResourceError; 47 45 class ResourceLoader; … … 56 54 class WebResourceLoader : public RefCounted<WebResourceLoader>, public IPC::MessageSender { 57 55 public: 58 static Ref<WebResourceLoader> create(Ref<WebCore::ResourceLoader>&&); 56 struct TrackingParameters { 57 uint64_t pageID { 0 }; 58 uint64_t frameID { 0 }; 59 ResourceLoadIdentifier resourceID { 0 }; 60 }; 61 62 static Ref<WebResourceLoader> create(Ref<WebCore::ResourceLoader>&&, const TrackingParameters&); 59 63 60 64 ~WebResourceLoader(); … … 69 73 70 74 private: 71 WebResourceLoader(Ref<WebCore::ResourceLoader>&& );75 WebResourceLoader(Ref<WebCore::ResourceLoader>&&, const TrackingParameters&); 72 76 73 77 // IPC::MessageSender … … 86 90 87 91 RefPtr<WebCore::ResourceLoader> m_coreLoader; 92 TrackingParameters m_trackingParameters; 88 93 bool m_hasReceivedData { false }; 89 94 };
Note: See TracChangeset
for help on using the changeset viewer.