Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c37e989dd6c6c42aa492c194ace00999ffd0841f
      
https://github.com/WebKit/WebKit/commit/c37e989dd6c6c42aa492c194ace00999ffd0841f
  Author: Patrick Griffis <[email protected]>
  Date:   2026-07-21 (Tue, 21 Jul 2026)

  Changed paths:
    M LayoutTests/fast/url/invalid-url-pattern-context-crash.html
    M 
LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern-detached-frame-regexp-expected.txt
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Modules/url-pattern/URLPattern.cpp
    M Source/WebCore/Modules/url-pattern/URLPattern.h
    M Source/WebCore/Modules/url-pattern/URLPattern.idl
    M Source/WebCore/Modules/url-pattern/URLPatternComponent.cpp
    M Source/WebCore/Modules/url-pattern/URLPatternComponent.h
    M Source/WebCore/Modules/url-pattern/URLPatternConstructorStringParser.cpp
    M Source/WebCore/Modules/url-pattern/URLPatternConstructorStringParser.h
    M Source/WebCore/dom/SpeculationRulesMatcher.cpp
    M Source/WebCore/workers/service/InstallEvent.cpp
    M Tools/TestWebKitAPI/CMakeLists.txt
    A Tools/TestWebKitAPI/Tests/WebCore/URLPatternTests.cpp

  Log Message:
  -----------
  Remove ScriptExecutionContext requirement from URLPattern matching
https://bugs.webkit.org/show_bug.cgi?id=316912

Reviewed by Youenn Fablet.

In Firefox and Chromium these APIs work even without a valid context,
the WPT tests reproduce this by detaching a frame.

The YARR interpreter works totally fine in this context and should
have feature parity.

Test: Tools/TestWebKitAPI/Tests/WebCore/URLPatternTests.cpp

* LayoutTests/fast/url/invalid-url-pattern-context-crash.html:
* 
LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern-detached-frame-regexp-expected.txt:
* Source/WebCore/Headers.cmake:
* Source/WebCore/Modules/url-pattern/URLPattern.cpp:
(WebCore::URLPattern::create):
(WebCore::URLPattern::test const):
(WebCore::URLPattern::exec const):
(WebCore::URLPattern::compileAllComponents):
(WebCore::URLPattern::match const):
* Source/WebCore/Modules/url-pattern/URLPattern.h:
* Source/WebCore/Modules/url-pattern/URLPattern.idl:
* Source/WebCore/Modules/url-pattern/URLPatternComponent.cpp:
(WebCore::URLPatternUtilities::URLPatternComponent::operator=):
(WebCore::URLPatternUtilities::URLPatternComponent::URLPatternComponent):
(WebCore::URLPatternUtilities::URLPatternComponent::compile):
(WebCore::URLPatternUtilities::URLPatternComponent::matchSpecialSchemeProtocol 
const):
(WebCore::URLPatternUtilities::URLPatternComponent::componentExec const):
(WebCore::URLPatternUtilities::URLPatternComponent::createComponentMatchResult 
const):
* Source/WebCore/Modules/url-pattern/URLPatternComponent.h:
* Source/WebCore/Modules/url-pattern/URLPatternConstructorStringParser.cpp:
(WebCore::URLPatternConstructorStringParser::computeProtocolMatchSpecialSchemeFlag):
(WebCore::URLPatternConstructorStringParser::updateState):
(WebCore::URLPatternConstructorStringParser::performParse):
(WebCore::URLPatternConstructorStringParser::parse):
* Source/WebCore/Modules/url-pattern/URLPatternConstructorStringParser.h:
* Source/WebCore/dom/SpeculationRulesMatcher.cpp:
(WebCore::matches):
* Source/WebCore/workers/service/InstallEvent.cpp:
(WebCore::verifyRouterCondition):
* Tools/TestWebKitAPI/CMakeLists.txt:
* Tools/TestWebKitAPI/Tests/WebCore/URLPatternTests.cpp: Added.
(TestWebKitAPI::URLPatternTest::makePattern):
(TestWebKitAPI::URLPatternTest::makePattern const):
(TestWebKitAPI::TEST_F(URLPatternTest, BasicAccessors)):
(TestWebKitAPI::TEST_F(URLPatternTest, TestMatchesExactURL)):
(TestWebKitAPI::TEST_F(URLPatternTest, TestNoMatchDifferentHost)):
(TestWebKitAPI::TEST_F(URLPatternTest, TestNoMatchDifferentProtocol)):
(TestWebKitAPI::TEST_F(URLPatternTest, ExecReturnsNamedGroup)):
(TestWebKitAPI::TEST_F(URLPatternTest, ExecNoMatch)):
(TestWebKitAPI::TEST_F(URLPatternTest, WildcardPathMatches)):
(TestWebKitAPI::TEST_F(URLPatternTest, IgnoreCaseOption)):
(TestWebKitAPI::TEST_F(URLPatternTest, HasRegExpGroupsFalseForNamedSegments)):
(TestWebKitAPI::TEST_F(URLPatternTest, HasRegExpGroupsTrueForExplicitRegex)):
(TestWebKitAPI::TEST_F(URLPatternTest, 
ExplicitRegexGroupMatchesAndReturnsCapture)):
(TestWebKitAPI::TEST_F(URLPatternTest, InvalidPatternReturnsException)):
(TestWebKitAPI::TEST_F(URLPatternTest, BaseURLRelativePattern)):
(TestWebKitAPI::TEST_F(URLPatternTest, RelativePatternWithoutBaseURLThrows)):

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



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

Reply via email to