Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c691177463029c907b78c21215a9ca3aab6ce499
      
https://github.com/WebKit/WebKit/commit/c691177463029c907b78c21215a9ca3aab6ce499
  Author: Patrick Kettner <[email protected]>
  Date:   2026-08-15 (Sat, 15 Aug 2026)

  Changed paths:
    M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIAction.idl
    M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIAlarms.idl
    M 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIBookmarks.idl
    M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPICommands.idl
    M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPICookies.idl
    M 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDeclarativeNetRequest.idl
    M 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsInspectedWindow.idl
    M 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIExtension.idl
    M 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPILocalization.idl
    M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIMenus.idl
    M 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIOffscreen.idl
    M 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIPermissions.idl
    M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIRuntime.idl
    M 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIScripting.idl
    M 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPISidePanel.idl
    M 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPISidebarAction.idl
    M 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIStorageArea.idl
    M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPITabs.idl
    M 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIWebNavigation.idl
    M 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIWebRequest.idl
    M Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIWindows.idl
    A Tools/Scripts/verify-webextension-declarations
    A Tools/Scripts/webkitpy/webextensions/__init__.py
    A 
Tools/Scripts/webkitpy/webextensions/verify_webextension_declarations_unittest.py

  Log Message:
  -----------
  Declare WebExtension dictionary and enum types in WebIDL
https://bugs.webkit.org/show_bug.cgi?id=321740

Reviewed by Timothy Hatcher.

The WebExtension IDL files declare dictionary parameters as untyped any
values, with the expected keys and types defined only in Cocoa parse
functions and validateDictionary tables. This adds WebIDL dictionary and
enum declarations matching the existing C++ and Objective-C parameter
validation for 21 extension interfaces, describing the current
implementation without changing runtime behavior.

The declarations are not referenced by operation parameters.
CodeGeneratorExtensions.pm:1481 maps a named parameter type to a wrapped
C++ class, so [NSDictionary] WebExtensionTabCreateProperties would emit a
call to toWebExtensionTabCreateProperties() and an include for
WebExtensionTabCreateProperties.h, neither of which exist. Parameters stay
[NSDictionary] any for that reason.

Generated bindings are byte-identical. CodeGeneratorExtensions.pm processes
only interface operations and ignores top-level dictionary definitions, so
running generate-bindings.pl across all modified IDL files produces
identical C++ headers and implementation files.

Tools/Scripts/verify-webextension-declarations checks that dictionary keys,
types, and optionality declared in WebExtension IDL match the corresponding
validateDictionary tables in Source/WebKit/WebProcess/Extensions/API/, so the
two cannot drift apart silently. It currently covers 16 input parameter
dictionaries validated in the Cocoa and C++ parse functions; the return entity
dictionaries built by the toWebAPI() serializers are not yet covered.

* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIAction.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIAlarms.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIBookmarks.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPICommands.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPICookies.idl:
* 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDeclarativeNetRequest.idl:
* 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDevToolsInspectedWindow.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIExtension.idl:
* 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPILocalization.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIMenus.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIOffscreen.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIPermissions.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIRuntime.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIScripting.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPISidePanel.idl:
* 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPISidebarAction.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIStorageArea.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPITabs.idl:
* 
Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIWebNavigation.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIWebRequest.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIWindows.idl:
* Tools/Scripts/verify-webextension-declarations: Added.
* Tools/Scripts/webkitpy/webextensions/__init__.py: Added.
* 
Tools/Scripts/webkitpy/webextensions/verify_webextension_declarations_unittest.py:
 Added.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to