Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bbe1fd08c84508af0e8824856b928da3f641879e
      
https://github.com/WebKit/WebKit/commit/bbe1fd08c84508af0e8824856b928da3f641879e
  Author: Alex Christensen <achristen...@apple.com>
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
    M Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp

  Log Message:
  -----------
  Fix performance regression after 271209@main
https://bugs.webkit.org/show_bug.cgi?id=265826
rdar://118948980

Reviewed by Per Arne Vollan.

271209@main introduced a CompletionHandler to 
SpeculativeLoad::willSendRedirectedRequest.
Before that change, we would just destroy the NetworkLoad and be done.
After that change, we call the redirect completion handler with an empty 
ResourceRequest
before destroying the NetworkLoad, which calls updateRequest and 
didCompleteWithError.
This PR changes calling the completion handler to after the call to 
SpeculativeLoad::didComplete
which destroys the NetworkLoad.  That way, the lambda at the end of the function
NetworkLoad::willPerformHTTPRedirection just finds a null weakThis and does 
none of this
unnecessary work.  I verified that this is what is going on on the sites in the 
radar
that showed a performance regression, and I verified that this change removes 
that unnecessary
work when not following redirects.

* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):

Canonical link: https://commits.webkit.org/271526@main


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to