[webkit-changes] [WebKit/WebKit] dbb9fe: Clean up Web Extension errors to be consistent wit...
Timothy Hatcher
noreply at github.com
Wed Sep 6 14:46:11 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: dbb9fe01318812108cb0507d698f57ed2aab4bb8
https://github.com/WebKit/WebKit/commit/dbb9fe01318812108cb0507d698f57ed2aab4bb8
Author: Timothy Hatcher <timothy at apple.com>
Date: 2023-09-06 (Wed, 06 Sep 2023)
Changed paths:
M Source/WebKit/Modules/OSX_Private.modulemap
M Source/WebKit/Modules/iOS_Private.modulemap
A Source/WebKit/Shared/Extensions/WebExtensionUtilities.h
A Source/WebKit/Shared/Extensions/WebExtensionUtilities.mm
R Source/WebKit/Shared/Extensions/_WKWebExtensionUtilities.h
R Source/WebKit/Shared/Extensions/_WKWebExtensionUtilities.mm
M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIAlarmsCocoa.mm
M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPermissionsCocoa.mm
M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm
M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITestCocoa.mm
M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsCocoa.mm
M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsEventCocoa.mm
M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPermissions.h
M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWindows.h
M Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.h
M Source/WebKit/WebProcess/Extensions/Bindings/Scripts/CodeGeneratorExtensions.pm
M Source/WebKit/WebProcess/Extensions/Cocoa/_WKWebExtensionWebNavigationURLFilter.mm
M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIAlarms.idl
M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPITabs.idl
M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIWindows.idl
M Tools/TestWebKitAPI/SourcesCocoa.txt
M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAlarms.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIEvent.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIExtension.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWebNavigation.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWindows.mm
R Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionUtilities.mm
Log Message:
-----------
Clean up Web Extension errors to be consistent with helper methods.
https://webkit.org/b/261090
rdar://problem/114907138
Reviewed by Brian Weinstein.
* Replaced previous _WKWebExtensionUtilities with WebExtensionUtilities and functions.
* Adopt toErrorString() in all places error strings are made for extensions.
* Corrected assertRejects to return a promise that always resolves so it can be awaited.
* Corrected assertThrows() to clear the exception after it consumes it.
* Added API various tests for error handling to all the existing extension API tests.
* Removed existing WKWebExtensionUtilities unit tests.
* Use NSOrderedSet for validation types to ensure consistent order in error messages.
* Reject NaN and Infinity as valid numbers, which matches Chrome.
* Marked static NSString as NSString * const.
* Source/WebKit/Modules/OSX_Private.modulemap: Removed _WKWebExtensionUtilities.h header.
* Source/WebKit/Modules/iOS_Private.modulemap: Ditto.
* Source/WebKit/Shared/Extensions/WebExtensionUtilities.h: Added.
* Source/WebKit/Shared/Extensions/WebExtensionUtilities.mm: Added.
(WebKit::classToClassString):
(WebKit::constructExpectedMessage):
(WebKit::validateSingleObject):
(WebKit::validateArray):
(WebKit::validateSet):
(WebKit::validate):
(WebKit::formatList):
(WebKit::validateDictionary):
(WebKit::validateObject):
(WebKit::lowercaseFirst):
(WebKit::uppercaseFirst):
(WebKit::trimTrailingPeriod):
(WebKit::toErrorString):
(WebKit::toJSError):
* Source/WebKit/Shared/Extensions/_WKWebExtensionUtilities.h: Removed.
* Source/WebKit/Shared/Extensions/_WKWebExtensionUtilities.mm: Removed.
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.mm:
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm:
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm:
(WebKit::WebExtensionContext::windowsCreate):
(WebKit::WebExtensionContext::windowsGet):
(WebKit::WebExtensionContext::windowsGetLastFocused):
(WebKit::WebExtensionContext::windowsUpdate):
(WebKit::WebExtensionContext::windowsRemove):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm:
(WebKit::WebExtensionTab::toggleReaderMode):
(WebKit::WebExtensionTab::mute):
(WebKit::WebExtensionTab::unmute):
(WebKit::WebExtensionTab::activate):
(WebKit::WebExtensionTab::select):
(WebKit::WebExtensionTab::duplicate):
(WebKit::WebExtensionTab::close):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm:
(WebKit::WebExtensionWindow::setState):
(WebKit::WebExtensionWindow::focus):
(WebKit::WebExtensionWindow::setFrame):
(WebKit::WebExtensionWindow::close):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIAlarmsCocoa.mm:
(WebKit::WebExtensionAPIAlarms::createAlarm):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPermissionsCocoa.mm:
(WebKit::WebExtensionAPIPermissions::getAll):
(WebKit::WebExtensionAPIPermissions::contains):
(WebKit::WebExtensionAPIPermissions::request):
(WebKit::WebExtensionAPIPermissions::remove):
(WebKit::WebExtensionAPIPermissions::parseDetailsDictionary):
(WebKit::WebExtensionAPIPermissions::verifyRequestedPermissions):
(WebKit::WebExtensionAPIPermissions::validatePermissionsDetails):
(WebKit::WebExtensionContextProxy::dispatchPermissionsEvent):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm:
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITestCocoa.mm:
(WebKit::WebExtensionAPITest::assertRejects):
(WebKit::WebExtensionAPITest::assertThrows):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsCocoa.mm:
(WebKit::WebExtensionAPIWindows::parsePopulateTabs):
(WebKit::WebExtensionAPIWindows::parseWindowTypesFilter):
(WebKit::WebExtensionAPIWindows::parseWindowGetOptions):
(WebKit::WebExtensionAPIWindows::parseWindowCreateOptions):
(WebKit::WebExtensionAPIWindows::parseWindowUpdateOptions):
(WebKit::isValid):
(WebKit::WebExtensionAPIWindows::createWindow):
(WebKit::WebExtensionAPIWindows::get):
(WebKit::WebExtensionAPIWindows::getCurrent):
(WebKit::WebExtensionAPIWindows::getLastFocused):
(WebKit::WebExtensionAPIWindows::getAll):
(WebKit::WebExtensionAPIWindows::update):
(WebKit::WebExtensionAPIWindows::remove):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsEventCocoa.mm:
(WebKit::WebExtensionAPIWindowsEvent::addListener):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPermissions.h:
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWindows.h:
* Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.h:
(WebKit::toJSError):
* Source/WebKit/WebProcess/Extensions/Bindings/Scripts/CodeGeneratorExtensions.pm:
(_generateImplementationFile):
(_installAutomaticExceptions):
(_dynamicAttributesImplementation):
* Source/WebKit/WebProcess/Extensions/Cocoa/_WKWebExtensionWebNavigationURLFilter.mm:
(-[_WKWebExtensionWebNavigationURLFilter initWithDictionary:outErrorMessage:]):
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIAlarms.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPITabs.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIWindows.idl:
* Tools/TestWebKitAPI/SourcesCocoa.txt:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAlarms.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIEvent.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIExtension.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWebNavigation.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWindows.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionUtilities.mm: Removed.
Canonical link: https://commits.webkit.org/267693@main
More information about the webkit-changes
mailing list