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