Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e37a17bcc5d51446a7d87b380e6f8c98cb4844c1
https://github.com/WebKit/WebKit/commit/e37a17bcc5d51446a7d87b380e6f8c98cb4844c1
Author: Cole Carley <[email protected]>
Date: 2026-09-25 (Fri, 25 Sep 2026)
Changed paths:
M LayoutTests/platform/ios/fast/quirks/active-quirks-by-domain-expected.txt
M LayoutTests/platform/ipad/fast/quirks/active-quirks-by-domain-expected.txt
M Source/WebCore/page/LocalDOMWindow.cpp
M Source/WebCore/page/QuirkBehaviors.h
M Source/WebCore/page/QuirkTable.cpp
M Source/WebCore/page/Quirks.cpp
M Source/WebCore/page/Quirks.h
M Source/WebCore/page/QuirksData.h
M Tools/TestWebKitAPI/Tests/WebCore/Quirks.cpp
Log Message:
-----------
[Quirks] Add a secondary URL condition to QuirkBehaviors
https://bugs.webkit.org/show_bug.cgi?id=325213
rdar://188336576
Reviewed by Brent Fulgham.
Some quirks are gated on a URL other than the top-level or document URL
matches. Those
URLs were hard-coded in Quirks.cpp, so each of these quirks was split between a
table
row and a C++ check.
Add .when(secondaryURLMatches(URLMatch)), a condition a behavior opts into with
QuirkConditionsSupported::SecondaryURL, evaluated by
QuirksData::behaviorAppliesToURL().
Test: Tools/TestWebKitAPI/Tests/WebCore/Quirks.cpp
* LayoutTests/platform/ios/fast/quirks/active-quirks-by-domain-expected.txt:
* LayoutTests/platform/ipad/fast/quirks/active-quirks-by-domain-expected.txt:
* Source/WebCore/page/LocalDOMWindow.cpp:
(WebCore::shouldBypassPopupBlockerForQuirk):
* Source/WebCore/page/QuirkBehaviors.h:
(WebCore::QuirkParameters::fromUserAgent):
(WebCore::QuirkParameters::fromChromeCompatibilityVersion):
(WebCore::QuirkParameters::fromCookieNames):
(WebCore::QuirkBehaviorConditions::secondaryURLMatches):
(WebCore::QuirkBehavior::secondaryURLConditionMatches const):
(WebCore::QuirkBehavior::applyCondition const):
* Source/WebCore/page/QuirkTable.cpp:
* Source/WebCore/page/Quirks.cpp:
(WebCore::Quirks::needsPopupFromMicrosoftOfficeToOneDrive const):
(WebCore::Quirks::scriptsToEvaluateBeforeRunningScriptFromURL):
(WebCore::Quirks::needsChromeOSNavigatorUserAgentQuirk const):
(WebCore::Quirks::clearLogoutSurvivingIdentityCookiesIfNeeded):
(WebCore::Quirks::shouldRewriteMediaRangeRequestForURL const):
* Source/WebCore/page/Quirks.h:
(WebCore::Quirks::shouldAllowPopupFromMicrosoftOfficeToOneDrive const): Deleted.
* Source/WebCore/page/QuirksData.h:
(WebCore::QuirksData::behaviorAppliesToURL const):
* Tools/TestWebKitAPI/Tests/WebCore/Quirks.cpp:
(TestWebKitAPI::scriptsForScriptURL):
(TestWebKitAPI::TEST_F(QuirksTest,
OneQuirkCanCarryDifferentParametersForDifferentScriptURLs)):
(TestWebKitAPI::TEST_F(QuirksTest,
EveryMatchingRowContributesWhenSeveralSupplyTheSameBehavior)):
(TestWebKitAPI::TEST_F(QuirksTest,
ASecondaryURLConditionIsRecordedOnTheBehavior)):
(TestWebKitAPI::TEST_F(QuirksTest,
BehaviorAppliesToURLRequiresTheBehaviorToBeEnabled)):
(TestWebKitAPI::TEST_F(QuirksTest,
MediaRangeRewriteAppliesOnlyToBingRequestURLs)):
(TestWebKitAPI::TEST_F(QuirksTest,
LogoutCookieCleanupAppliesOnlyToTheLogoutEndpoint)):
(TestWebKitAPI::TEST_F(QuirksTest,
LogoutCookieCleanupCarriesTheCookiesToDelete)):
(TestWebKitAPI::TEST_F(QuirksTest, OneDrivePopupBypassRequiresAOneDriveTarget)):
(TestWebKitAPI::TEST_F(QuirksTest,
ChromeOSUserAgentAppliesOnlyToTheWordEditorScriptInItsFrame)):
(TestWebKitAPI::TEST_F(QuirksTest,
AScriptURLConditionTravelsWithTheParametersItScopes)): Deleted.
Canonical link: https://commits.webkit.org/321921@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications