Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 51ea20f9818ed956dee01fc46a8b36dfcb94797c
      
https://github.com/WebKit/WebKit/commit/51ea20f9818ed956dee01fc46a8b36dfcb94797c
  Author: Charles Ma <[email protected]>
  Date:   2026-06-19 (Fri, 19 Jun 2026)

  Changed paths:
    M Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionContext.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionContextPrivate.h
    M Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMatchPattern.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMatchPatternPrivate.h
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionMatchPattern.cpp
    M Source/WebKit/UIProcess/Extensions/WebExtensionMatchPattern.h
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPIPermissions.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionMatchPattern.mm

  Log Message:
  -----------
  Add initial support for file URLs to Web Extensions
https://bugs.webkit.org/show_bug.cgi?id=316682
rdar://179135449

Reviewed by Timothy Hatcher.

This patch adds initial support for file URLs for Web Extensions.
This is added as an internal, opt-in, _hasAccessToFileURLs property
on WKWebExtensionContext. When enabled, the extension can run on file:// pages,
and <all_urls> host grants extent to local file URLs. This property defaults to 
NO.

The tests added covers the behavior of the new options at the
web extension context level as well as WKWebExtensionMatchPattern level.

* Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionContext.mm:
(-[WKWebExtensionContext _hasAccessToFileURLs]):
(-[WKWebExtensionContext _setHasAccessToFileURLs:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionContextPrivate.h:

* Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMatchPattern.mm:
(matchPatternOptionsToImpl):

* Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMatchPatternPrivate.h:
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm:
(WebKit::WebExtensionController::updateWebsitePoliciesForNavigation):

* Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp:
(WebKit::WebExtensionContext::setHasAccessToFileURLs):
(WebKit::WebExtensionContext::permissionState):
(WebKit::WebExtensionContext::addInjectedContent):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
(WebKit::WebExtensionContext::hasAccessToFileURLs const):

* Source/WebKit/UIProcess/Extensions/WebExtensionMatchPattern.cpp:
(WebKit::WebExtensionMatchPattern::isSupported const):
(WebKit::WebExtensionMatchPattern::expandedStrings const):
(WebKit::WebExtensionMatchPattern::matchesURL const):
(WebKit::WebExtensionMatchPattern::matchesPattern const):

* Source/WebKit/UIProcess/Extensions/WebExtensionMatchPattern.h:
(WebKit::WebExtensionMatchPattern::expandedStrings):

* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPIPermissions.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPIPermissions, ValidMatchPatterns)):
(TestWebKitAPI::TEST(WKWebExtensionAPIPermissions, 
HasAccessToFileURLsDefaultsToNo)):
(TestWebKitAPI::TEST(WKWebExtensionAPIPermissions, 
FileURLPermissionGatedByFlag)):
(TestWebKitAPI::TEST(WKWebExtensionAPIPermissions, 
FilePatternPermissionGatedByFlag)):
(TestWebKitAPI::TEST(WKWebExtensionAPIPermissions, 
GrantingFilePatternRequiresFlag)):

* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionMatchPattern.mm:
(TestWebKitAPI::TEST(WKWebExtensionMatchPattern, AllowFileSchemeOption)):

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



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

Reply via email to