Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0df60f4248ef6652c95599d295cc4b0367f85911
      
https://github.com/WebKit/WebKit/commit/0df60f4248ef6652c95599d295cc4b0367f85911
  Author: Yoav Weiss <[email protected]>
  Date:   2026-07-13 (Mon, 13 Jul 2026)

  Changed paths:
    M 
LayoutTests/imported/w3c/web-platform-tests/navigation-timing/redirect-tao-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/navigation-timing/redirect-tao.html
    M 
LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/redirect-tao-helper.js
    A 
LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/report-navigation-redirect-timing.html
    M 
LayoutTests/imported/w3c/web-platform-tests/navigation-timing/response-start-after-coop-bcg-switch.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/navigation-timing/unload-event-same-origin-check-expected.txt
    M
Source/WebCore/loader/DocumentLoader.cpp
    M Source/WebCore/page/PerformanceNavigationTiming.cpp
    M Source/WebCore/page/PerformanceNavigationTiming.h
    M Source/WebCore/page/PerformanceResourceTiming.cpp
    M Source/WebCore/page/PerformanceResourceTiming.h
    M Source/WebCore/platform/network/TimingAllowOrigin.cpp
    M Source/WebCore/platform/network/TimingAllowOrigin.h
    M Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp
    M Source/WebKit/NetworkProcess/NetworkLoadChecker.h
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp

  Log Message:
  -----------
  Navigation Timing: cross-origin redirect opt-in should be based on 
destination origin.
https://bugs.webkit.org/show_bug.cgi?id=316647

Reviewed by Alex Christensen.

This PR aligns the WebKit implementation with 
https://github.com/whatwg/fetch/pull/1931 and 
https://github.com/whatwg/html/pull/12513,
and ensures that TAO opt-ins for navigation timing take the destination origin 
into
account.

New iframe tests, plus test progressions.

* 
LayoutTests/imported/w3c/web-platform-tests/navigation-timing/redirect-tao-expected.txt:
 Progression.
* 
LayoutTests/imported/w3c/web-platform-tests/navigation-timing/redirect-tao.html:
* 
LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/redirect-tao-helper.js:
* 
LayoutTests/imported/w3c/web-platform-tests/navigation-timing/resources/report-navigation-redirect-timing.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/navigation-timing/response-start-after-coop-bcg-switch.https-expected.txt:
 Expectation change.
* 
LayoutTests/imported/w3c/web-platform-tests/navigation-timing/unload-event-same-origin-check-expected.txt:
 Progression.
* Source/WebCore/loader/DocumentLoader.cpp:
(WebCore::hideRedirectTimingForNoReferrerNavigation): Resets redirect count if 
noreferrer.
(WebCore::DocumentLoader::notifyFinished): Calls
hideRedirectTimingForNoReferrerNavigation.
(WebCore::DocumentLoader::commitData): Calls 
hideRedirectTimingForNoReferrerNavigation.
* Source/WebCore/page/PerformanceNavigationTiming.cpp:
(WebCore::PerformanceNavigationTiming::shouldExposeRedirectTiming const): Only 
exposes redirect timing if redirectCount is not zero.
(WebCore::PerformanceNavigationTiming::redirectCount const): TAO check.
* Source/WebCore/page/PerformanceNavigationTiming.h:
* Source/WebCore/page/PerformanceResourceTiming.cpp:
(WebCore::fetchStart): Pass exposeRedirectTiming.
(WebCore::entryStartTime): Use shouldExposeRedirectTiming().
(WebCore::PerformanceResourceTiming::shouldExposeRedirectTiming const): A 
virtual fun that enables NavigationTiming to override the default RT behavior.
(WebCore::PerformanceResourceTiming::redirectStart const): Use 
shouldExposeRedirectTiming().
(WebCore::PerformanceResourceTiming::redirectEnd const): Use
shouldExposeRedirectTiming().
(WebCore::PerformanceResourceTiming::fetchStart const): Use 
shouldExposeRedirectTiming().
* Source/WebCore/page/PerformanceResourceTiming.h:
* Source/WebCore/platform/network/TimingAllowOrigin.cpp:
(WebCore::passesNavigationTAOCheck):
* Source/WebCore/platform/network/TimingAllowOrigin.h:
* Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::checkRedirection): Append TAO values.
(WebKit::NetworkLoadChecker::validateResponse): Set TAO values on the response.
(WebKit::NetworkLoadChecker::appendToNavigationTimingAllowValuesList): 
Accumulate TAO values.
* Source/WebKit/NetworkProcess/NetworkLoadChecker.h:
(WebKit::NetworkLoadChecker::navigationTAOCheckPassed const): Getter.
* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFinishLoading):

Canonical link:
https://flagged.apple.com:443/proxy?t2=Dw2n9k1bQ1&o=aHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvMzE3MDYxQG1haW4=&emid=38c7e453-61d6-41c4-bb38-24e2ffd12d92&c=11



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

Reply via email to