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