Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1b1d1e50831f4d0529ff51174268e974efd3b93d
      
https://github.com/WebKit/WebKit/commit/1b1d1e50831f4d0529ff51174268e974efd3b93d
  Author: Charlie Wolfe <[email protected]>
  Date:   2026-09-16 (Wed, 16 Sep 2026)

  Changed paths:
    M Source/WebCore/loader/FrameLoader.cpp

  Log Message:
  -----------
  
imported/w3c/web-platform-tests/content-security-policy/inheritance/history.sub.html
 is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=324092
rdar://187312421

Reviewed by Rupin Mittal.

loadDifferentDocumentItem() reuses the cached page's DocumentLoader when the 
target history item is
in the back/forward cache, then checks the navigation policy asynchronously. If 
the CachedPage is
evicted while that check is in flight continueLoadAfterNavigationPolicy() falls 
through to a normal
network load still holding that loader. It has already been committed, so 
commitIfReady() and
commitData() both no-op. The resource loads fine, but no document is ever 
created, leaving the
navigation hung.

Restart the item with a fresh DocumentLoader instead. The client has already 
decided this
navigation's policy, so pass PolicyAlreadyDecided::Yes to avoid a second round 
trip.

This is why 
imported/w3c/web-platform-tests/content-security-policy/inheritance/history.sub.html
 was
flaky. Its six concurrent popups push enough pages into the back/forward cache 
to prune each other's
entries mid-navigation.

* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to