Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0d7558ea568001ec684f9625a495e2192924d86d
      
https://github.com/WebKit/WebKit/commit/0d7558ea568001ec684f9625a495e2192924d86d
  Author: Basuke Suzuki <[email protected]>
  Date:   2026-06-05 (Fri, 05 Jun 2026)

  Changed paths:
    M LayoutTests/platform/mac-site-isolation/TestExpectations
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Tools/WebKitTestRunner/TestController.cpp

  Log Message:
  -----------
  [Site Isolation] Mark MultiProcessBackForwardCacheEnabled as testable so test 
infrastructure auto-enables it
https://bugs.webkit.org/show_bug.cgi?id=316429
rdar://178835820

Reviewed by Sihui Liu.

Bug 316344 worked around a WebKitTestRunner-vs-product preference mismatch by 
mirroring
the Site-Isolation-implied flags in 
TestController::featuresImpliedBySiteIsolation().
The cleaner fix for MultiProcessBackForwardCacheEnabled is to make the 
implication
declarative in the preference taxonomy itself.

Changing its status from `unstable` to `testable` makes it OFF by default in 
production
(unchanged) but auto-enabled in test infrastructure via
WebPreferences::enableAllExperimentalFeatures(), per the YAML's own definition 
of
`testable`. With the flag always on for any default WKTR run, the explicit 
mirroring
in TestController is no longer needed for this preference.

Because the flag is now on for every non-SI WKTR test as well, two
MultiProcessBackForwardCache-gated paths in WebPageProxy that previously assumed
"flag on -> SI on" are tightened to require both:

- WebPageProxy::suspendCurrentPageIfPossible: setting the SuspendedPageProxy's
  mainFrameItemID drives the SuspendWithFrameItem IPC, which is only meaningful
  in the SI-orchestrated flow. Legacy non-SI suspension uses the SetIsSuspended
  branch (nullopt mainFrameItemID).
- WebPageProxy::goToBackForwardItem: the UI-driven BFCache restoration block
  only applies when SI is active. Without SI there are no cross-site iframe
  processes to orchestrate, so legacy non-SI restoration must keep
  shouldRestoreFromBackForwardCache at Unspecified per the tri-state contract,
  rather than reaping the UI-side entry early.

Both guards now match the existing pattern at 
WebPageProxy::shouldUseBackForwardCache,
keeping the change a true no-op for non-SI runs.

UseUIProcessForBackForwardItemLoading is intentionally left in
featuresImpliedBySiteIsolation() because it has non-Site-Isolation side effects;
it will be coupled at the WebPreferences::update() layer in a follow-up.

Now that Multi-Process BFCache is auto-enabled under Site Isolation
(314699@main) and is declared `status: testable` in UnifiedWebPreferences.yaml
(this bug), 189 entries in 
LayoutTests/platform/mac-site-isolation/TestExpectations
that were previously expected to Failure / Timeout under SI now pass and are
removed. Nine new entries are added for genuine regressions confirmed by re-runs
under the same `--site-isolation-enabled-by-default` invocation; each was
reproduced twice. They are all BFCache- or Navigation-API-related; whether any
are caused specifically by the 316429 flag flip (versus pre-existing under
MPBFCache + SI) is being tracked separately and is not blocking this PR.

Covered by existing tests (SiteIsolation.MultiProcessBFCache* API tests, plus
fast/events/site-isolation/event-timing-back-forward-cache-duration.html added
in 316344).

* LayoutTests/platform/mac-site-isolation/TestExpectations: Drop 189 entries
that now pass under MultiProcessBFCache + Site Isolation; add 9 entries for
genuine regressions to be triaged separately.
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::suspendCurrentPageIfPossible): Tighten the
MultiProcessBackForwardCache guard to also require Site Isolation, so that
non-SI runs with the flag auto-enabled keep the legacy SetIsSuspended IPC.
(WebKit::WebPageProxy::goToBackForwardItem): Same tightening for the UI-driven
BFCache restoration block.
* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::featuresImpliedBySiteIsolation const): Drop
MultiProcessBackForwardCacheEnabled; keep UseUIProcessForBackForwardItemLoading.

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



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

Reply via email to