Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: eb8ff94d64827d261308f3c3e98fb19ae87a60a1
      
https://github.com/WebKit/WebKit/commit/eb8ff94d64827d261308f3c3e98fb19ae87a60a1
  Author: Brian Weinstein <[email protected]>
  Date:   2024-01-18 (Thu, 18 Jan 2024)

  Changed paths:
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources-output.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/Modules/OSX_Private.modulemap
    M Source/WebKit/Modules/iOS_Private.modulemap
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    A 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebRequestEventCocoa.mm
    A Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebRequestEvent.h
    A 
Source/WebKit/WebProcess/Extensions/Cocoa/_WKWebExtensionWebRequestFilter.h
    A 
Source/WebKit/WebProcess/Extensions/Cocoa/_WKWebExtensionWebRequestFilter.mm
    A 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIWebRequestEvent.idl
    M Tools/TestWebKitAPI/SourcesCocoa.txt
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    A Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWebRequest.mm

  Log Message:
  -----------
  Add support for WebExtensionAPIWebRequestEvent and filter code
https://bugs.webkit.org/show_bug.cgi?id=267718
rdar://114823223

Reviewed by Timothy Hatcher.

* Source/WebKit/DerivedSources-input.xcfilelist: Add the new files.
* Source/WebKit/DerivedSources-output.xcfilelist: Ditto.
* Source/WebKit/DerivedSources.make: Ditto.
* Source/WebKit/Modules/OSX_Private.modulemap: Add 
_WKWebExtensionWebRequestFilter here, it is Private due to being needed in 
TestWebKitAPI.
* Source/WebKit/Modules/iOS_Private.modulemap: Ditto.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj: Add the new files.
* 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebRequestEventCocoa.mm:
 Added.
(WebKit::WebExtensionAPIWebRequestEvent::addListener): Add the listener to 
m_listeners.
(WebKit::WebExtensionAPIWebRequestEvent::removeListener): Remove it from 
m_listeners.
(WebKit::WebExtensionAPIWebRequestEvent::hasListener): Check for the listener 
in m_listeners.
(WebKit::WebExtensionAPIWebRequestEvent::removeAllListeners): Clear m_listeners.
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebRequestEvent.h: 
Added.
(WebKit::WebExtensionAPIWebRequestEvent::listeners const):
(WebKit::WebExtensionAPIWebRequestEvent::~WebExtensionAPIWebRequestEvent):
(WebKit::WebExtensionAPIWebRequestEvent::WebExtensionAPIWebRequestEvent):
* Source/WebKit/WebProcess/Extensions/Cocoa/_WKWebExtensionWebRequestFilter.h: 
Added.
* Source/WebKit/WebProcess/Extensions/Cocoa/_WKWebExtensionWebRequestFilter.mm: 
Added.
(_WKWebExtensionWebRequestResourceTypeFromWKResourceLoadInfo): Get the resource 
type from the resource load info.
(-[_WKWebExtensionWebRequestFilter initWithDictionary:outErrorMessage:]): 
Validate the dictionary and create a filter if the dictionary is valid.
(toResourceType): Convert the string to a resource type.
(toTabID): Convert the given double to a 
std::optional<WebExtensionTabIdentifier>
(toWindowID): Convert the given double to a 
std::optional<WebExtensionWindowIdentifier>
(-[_WKWebExtensionWebRequestFilter _initializeWithDictionary:]):
(-[_WKWebExtensionWebRequestFilter 
matchesRequestForResourceOfType:URL:tabID:windowID:]): Perform the matching - 
making sure URL, tab, window, and resource type match.
* 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIWebRequestEvent.idl:
 Added.
* Tools/TestWebKitAPI/SourcesCocoa.txt: Add the new test file.
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Ditto.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWebRequest.mm: Added.
(TestWebKitAPI::TEST):
(TestWebKitAPI::filterWithDictionary):

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to