Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 87b3951978a0e00dd5ca5322deb6168843af91a9
      
https://github.com/WebKit/WebKit/commit/87b3951978a0e00dd5ca5322deb6168843af91a9
  Author: Ian Gower <[email protected]>
  Date:   2026-10-05 (Mon, 05 Oct 2026)

  Changed paths:
    A 
LayoutTests/http/wpt/fetch/local-network-access/a-forged-client-is-judged-by-what-the-network-process-served-expected.txt
    A 
LayoutTests/http/wpt/fetch/local-network-access/a-forged-client-is-judged-by-what-the-network-process-served.html
    A 
LayoutTests/http/wpt/fetch/local-network-access/resources/lna-forging-frame.html
    M LayoutTests/platform/glib/TestExpectations
    M LayoutTests/platform/win/TestExpectations
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/dom/Document.h
    M Source/WebCore/testing/Internals.cpp
    M Source/WebCore/testing/Internals.h
    M Source/WebCore/testing/Internals.idl
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h
    M Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.h
    M Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp

  Log Message:
  -----------
  Local Network Access trusts the web process's description of the requesting 
document
https://bugs.webkit.org/show_bug.cgi?id=326011
rdar://188953889

Reviewed by Alex Christensen.

This is Local Network Access feature work: 
https://wicg.github.io/local-network-access/

The network process decided every Local Network Access check from client 
details the web process
supplied: its address space, origin, top origin, secure-context state, and 
whether the load is
top-level. A compromised web process could claim loopback, claim the target's 
own origin to reach
the same-origin exemption, or label a subresource as a main frame load, and 
reach the local network
without a prompt.

The network process now records the address space and origin of the response 
that created each
frame's document, and judges the client against that record. A claim can only 
make a request
stricter, an origin that does not match is treated as opaque, the top origin 
must be a first party
the UI process allowed, and only a load that started at its own first party is 
exempt as top-level.

The permissions policy state still comes from the web process, tracked in
https://bugs.webkit.org/show_bug.cgi?id=326009. Shared and service workers have 
no frame record, so
they are refused until the worker support lands.

* 
LayoutTests/http/wpt/fetch/local-network-access/a-forged-client-is-judged-by-what-the-network-process-served-expected.txt:
 Added.
* 
LayoutTests/http/wpt/fetch/local-network-access/a-forged-client-is-judged-by-what-the-network-process-served.html:
 Added.
* 
LayoutTests/http/wpt/fetch/local-network-access/resources/lna-forging-frame.html:
 Added.
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/win/TestExpectations:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::setLoadSourceOriginOverrideForTesting):
* Source/WebCore/dom/Document.h:
(WebCore::Document::loadSourceOriginOverrideForTesting const):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::setDocumentIPAddressSpace):
(WebCore::Internals::setLoadSourceOriginOverride):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::browsingContextRemoved):
(WebKit::NetworkConnectionToWebProcess::recordLocalNetworkAccessFrame):
(WebKit::NetworkConnectionToWebProcess::localNetworkAccessFrameRecord const):
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:
* Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h:
* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::transferToNewWebProcess):
(WebKit::NetworkResourceLoader::recordLocalNetworkAccessFrame):
(WebKit::NetworkResourceLoader::checkLocalNetworkAccess):
(WebKit::NetworkResourceLoader::continueDidReceiveResponseAfterLocalNetworkAccessCheck):
(WebKit::NetworkResourceLoader::continueDidRetrieveCacheEntryAfterLocalNetworkAccessCheck):
* Source/WebKit/NetworkProcess/NetworkResourceLoader.h:
* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

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



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

Reply via email to