Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: db6b2e64a5e963539242ba5de7f96c4a8dc2dc7d
      
https://github.com/WebKit/WebKit/commit/db6b2e64a5e963539242ba5de7f96c4a8dc2dc7d
  Author: Jessica Lee <[email protected]>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M Source/WebCore/Headers.cmake
    M Source/WebCore/PlatformMac.cmake
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/WebCore_Private.modulemap
    M Source/WebCore/loader/ContentFilter.cpp
    M Source/WebCore/platform/cocoa/ParentalControlsContentFilter.h
    M Source/WebCore/platform/cocoa/ParentalControlsContentFilter.mm
    M Source/WebCore/platform/cocoa/ParentalControlsURLFilter.h
    M Source/WebCore/platform/cocoa/ParentalControlsURLFilter.mm
    M Source/WebCore/platform/cocoa/ParentalControlsURLFilterParameters.h
    A Source/WebCore/testing/MockParentalControlsURLFilter.h
    A Source/WebCore/testing/MockParentalControlsURLFilter.mm
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.h
    M Source/WebKit/NetworkProcess/NetworkProcess.messages.in
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.h
    M Source/WebKit/Shared/ios/WebParentalControlsURLFilter.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    A 
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ParentalControlsContentFilteringTests.mm

  Log Message:
  -----------
  Blocked website bypasses restriction by redirecting to a different domain
https://bugs.webkit.org/show_bug.cgi?id=309979
rdar://147259482

Reviewed by Sihui Liu.

Domains that redirect may not properly be blocked. We should correct this so 
that
redirected sites still apply web content restrictions. We also refactor the
NetworkResourceLoader to asynchronously process filtering.

Tests: Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
       
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ParentalControlsContentFilteringTests.mm

* Source/WebCore/Headers.cmake:
* Source/WebCore/PlatformMac.cmake:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/WebCore_Private.modulemap:
* Source/WebCore/loader/ContentFilter.cpp:
(WebCore::ContentFilter::continueAfterWillSendRequest):
* Source/WebCore/platform/cocoa/ParentalControlsContentFilter.h:
* Source/WebCore/platform/cocoa/ParentalControlsContentFilter.mm:
(WebCore::canHandleResponse):
(WebCore::ParentalControlsContentFilter::willSendRequest):
* Source/WebCore/platform/cocoa/ParentalControlsURLFilter.h:
* Source/WebCore/platform/cocoa/ParentalControlsURLFilter.mm:
(WebCore::ParentalControlsURLFilter::hasGlobalFilter):
(WebCore::ParentalControlsURLFilter::setFilterForTesting):
* Source/WebCore/platform/cocoa/ParentalControlsURLFilterParameters.h:
* Source/WebCore/testing/MockParentalControlsURLFilter.h: Copied from 
Source/WebCore/platform/cocoa/ParentalControlsURLFilterParameters.h.
* Source/WebCore/testing/MockParentalControlsURLFilter.mm: Added.
(WebCore::MockParentalControlsURLFilter::create):
(WebCore::MockParentalControlsURLFilter::MockParentalControlsURLFilter):
(WebCore::MockParentalControlsURLFilter::isEnabledImpl const):
(WebCore::MockParentalControlsURLFilter::isURLAllowedImpl):
(WebCore::MockParentalControlsURLFilter::allowURL):
* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::installMockParentalControlsURLFilterForTesting):
* Source/WebKit/NetworkProcess/NetworkProcess.h:
* Source/WebKit/NetworkProcess/NetworkProcess.messages.in:
* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::willSendRedirectedRequestInternal):
(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequestAfterContentFiltering):
* Source/WebKit/NetworkProcess/NetworkResourceLoader.h:
* Source/WebKit/Shared/ios/WebParentalControlsURLFilter.mm:
(WebKit::WebParentalControlsURLFilter::setSharedParentalControlsURLFilterIfNecessary):
* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore 
_installMockParentalControlsURLFilterForTestingWithBlockedURLs:completionHandler:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::installMockParentalControlsURLFilterForTesting):
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::installMockParentalControlsURLFilterForTesting):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* 
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ParentalControlsContentFilteringTests.mm:
 Added.
(TEST(ParentalControlsContentFilteringTests, BlockedURLAfterRedirect)):
(TEST(ParentalControlsContentFilteringTests, 
BlockedURLAfterMultipleRedirections_BlockStart)):
(TEST(ParentalControlsContentFilteringTests, 
BlockedURLAfterMultipleRedirections_BlockMiddle)):
(TEST(ParentalControlsContentFilteringTests, 
BlockedURLAfterMultipleRedirections_BlockFinal)):

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



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

Reply via email to