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