Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: abd52ae8bb5205b6dac4fcdeb5f28b21b18f9b40
      
https://github.com/WebKit/WebKit/commit/abd52ae8bb5205b6dac4fcdeb5f28b21b18f9b40
  Author: Timothy Hatcher <[email protected]>
  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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to