Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 835c8016b492f302189935e14739b165149f6d3c
      
https://github.com/WebKit/WebKit/commit/835c8016b492f302189935e14739b165149f6d3c
  Author: Adrian Taylor <[email protected]>
  Date:   2026-09-09 (Wed, 09 Sep 2026)

  Changed paths:
    M Source/WebKit/Scripts/webkit/untrusted_origins.py
    R Source/WebKit/UIProcess/FirstPartyAuthority.h
    A Source/WebKit/UIProcess/ValidationProcedures.h
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Rename and adjust the UI process's validation procedures
https://bugs.webkit.org/show_bug.cgi?id=323738

Reviewed by Zak Ridouh.

The procedures a value must pass through to escape IPC::Untrusted were added by
earlier infrastructural commits and nothing calls them yet. Adjust them before
the commit that turns validation on, based on experience.

No behaviour change: every procedure here is still unreachable, and the one new
WebProcessProxy predicate has no caller but the procedure that wraps it.

Renamed, because the old names described neither what they check nor how they
differ from each other:

- FirstPartyAuthority and TopLevelFirstPartyAuthority are now one
  ProcessSpeaksForDomain. The difference between them was never top-level
  frames at all: one applied the site-isolation guard and the other did not.
  That is now a constructor argument, EvenWithoutSiteIsolation, so the 
difference
  is visible at the call site instead of encoded in a prefix.

- CommittedClientOriginAuthority is now ProcessCommittedClientOrigin, and
  PageFirstPartySiteAuthority is now ProcessParticipatesInPageWithSite. Each
  names the WebProcessProxy predicate it applies, so the class list reads as the
  list of questions asked.

FirstPartyAuthority.h becomes ValidationProcedures.h.

ProcessParticipatesInPageWithSite is new: use it for a value naming a page's
top-level site rather than something the sender speaks for itself, where the
sender cannot be the judge.

A value whose registrable domain is empty now passes. An opaque origin has no
host and so no domain to compare, a process legitimately hosts such documents -
sandboxed frames, data: URLs, the initial about:blank - and an opaque origin
claims no authority, so there is nothing to withhold by allowing it.

* Source/WebKit/Scripts/webkit/untrusted_origins.py:
* Source/WebKit/UIProcess/ValidationProcedures.h: Renamed from 
Source/WebKit/UIProcess/FirstPartyAuthority.h.
(WebKit::ProcessSpeaksForDomain::ProcessSpeaksForDomain):
(WebKit::ProcessSpeaksForDomain::checkUntrusted const):
(WebKit::ProcessSpeaksForDomain::checkUntrustedDomain const):
(WebKit::ProcessParticipatesInPageWithSite::ProcessParticipatesInPageWithSite):
(WebKit::ProcessParticipatesInPageWithSite::checkUntrusted const):
(WebKit::ProcessCommittedClientOrigin::ProcessCommittedClientOrigin):
(WebKit::ProcessCommittedClientOrigin::checkUntrusted const):
(WebKit::firstPartyAccessIsAnswerable):
(WebKit::checkFirstPartyAccessResult):
(WebKit::checkFirstPartyAccess):
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::participatesInPageWithFirstPartySite const):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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



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

Reply via email to