[webkit-changes] [WebKit/WebKit] abd52a: WebExtensionContext should track runtime errors se...
Timothy Hatcher
noreply at github.com
Mon Aug 26 11:47:54 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: abd52ae8bb5205b6dac4fcdeb5f28b21b18f9b40
https://github.com/WebKit/WebKit/commit/abd52ae8bb5205b6dac4fcdeb5f28b21b18f9b40
Author: Timothy Hatcher <timothy at apple.com>
Date: 2024-08-26 (Mon, 26 Aug 2024)
Changed paths:
M Source/WebKit/Shared/Extensions/_WKWebExtensionLocalization.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebExtension.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebExtension.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionContext.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionContext.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionControllerDelegate.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMessagePort.h
M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMenuItemCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionURLSchemeHandlerCocoa.mm
M Source/WebKit/UIProcess/Extensions/WebExtension.h
M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
M Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h
M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionContext.mm
Log Message:
-----------
WebExtensionContext should track runtime errors separate from WebExtension errors.
https://webkit.org/b/270580
rdar://problem/124147806
Reviewed by Jeff Miller.
Track runtime errors at the context level to account for varying conditions across multiple
extension contexts. Extension errors now exclusively reflect manifest and parse-time issues,
ensuring they remain consistent regardless of runtime behavior.
This change moves the existing WKWebExtension errors update notification to WKWebExtensionContext,
where it now fires for context objects. The dynamic errors for resource loading now get returned
to the caller to record, so it can be recorded on the correct object (context or extension).
Make the errors property KVO compliant as well.
* Source/WebKit/Shared/Extensions/_WKWebExtensionLocalization.mm:
(-[_WKWebExtensionLocalization _localizationDictionaryForWebExtension:withLocale:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebExtension.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebExtension.mm:
* Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionContext.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionContext.mm:
(-[WKWebExtensionContext errors]): Added.
* Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionControllerDelegate.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebExtensionMessagePort.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm:
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm:
(WebKit::WebExtensionContext::scriptingExecuteScript):
(WebKit::WebExtensionContext::scriptingInsertCSS):
(WebKit::WebExtensionContext::scriptingRemoveCSS):
(WebKit::WebExtensionContext::createInjectedContentForScripts):
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm:
(WebKit::WebExtensionContext::tabsExecuteScript):
(WebKit::WebExtensionContext::tabsInsertCSS):
(WebKit::WebExtensionContext::tabsRemoveCSS):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm:
(WebKit::WebExtensionAction::icon):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm:
(WebKit::WebExtension::manifest):
(WebKit::WebExtension::resourceStringForPath):
(WebKit::WebExtension::resourceDataForPath):
(WebKit::WebExtension::recordError):
(WebKit::WebExtension::errors):
(WebKit::WebExtension::populateActionPropertiesIfNeeded):
(WebKit::WebExtension::imageForPath):
(WebKit::WebExtension::bestImageInIconsDictionary):
(WebKit::WebExtension::bestImageForIconsDictionaryManifestKey):
(WebKit::WebExtension::removeError): Deleted.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::recordError): Added.
(WebKit::WebExtensionContext::clearError): Added.
(WebKit::WebExtensionContext::errors): Added.
(WebKit::WebExtensionContext::loadBackgroundWebView):
(WebKit::WebExtensionContext::didFailNavigation):
(WebKit::WebExtensionContext::addInjectedContent):
(WebKit::WebExtensionContext::loadDeclarativeNetRequestRules):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm:
(WebKit::WebExtensionDynamicScripts::sourcePairForResource):
(WebKit::WebExtensionDynamicScripts::getSourcePairsForParameters):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMenuItemCocoa.mm:
(WebKit::WebExtensionMenuItem::icon const):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionURLSchemeHandlerCocoa.mm:
(WebKit::WebExtensionURLSchemeHandler::platformStartTask):
* Source/WebKit/UIProcess/Extensions/WebExtension.h:
(WebKit::WebExtension::recordErrorIfNeeded): Added.
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
(WebKit::WebExtensionContext::recordErrorIfNeeded): Added.
* Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionContext.mm:
(TestWebKitAPI::TEST(WKWebExtensionContext, CommandsParsing)): Use errors on the context.
(TestWebKitAPI::TEST(WKWebExtensionContext, LoadNonExistentImage)): Added.
Canonical link: https://commits.webkit.org/282755@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list