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

Reply via email to