[webkit-changes] [WebKit/WebKit] 8b4884: Only use WKKeyedCoder for encoding when secure cod...

Sihui noreply at github.com
Thu Sep 12 10:15:32 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8b4884931b2c0f8412cff37d9b8ae7724736b2f2
      https://github.com/WebKit/WebKit/commit/8b4884931b2c0f8412cff37d9b8ae7724736b2f2
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M Source/WebKit/Scripts/generate-serializers.py
    M Source/WebKit/Scripts/webkit/messages_unittest.py
    M Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.h
    M Source/WebKit/Scripts/webkit/tests/GeneratedWebKitSecureCoding.cpp
    M Source/WebKit/Scripts/webkit/tests/GeneratedWebKitSecureCoding.h
    M Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
    M Source/WebKit/Scripts/webkit/tests/MessageNames.cpp
    M Source/WebKit/Scripts/webkit/tests/MessageNames.h
    M Source/WebKit/Scripts/webkit/tests/SerializedTypeInfo.cpp
    M Source/WebKit/Scripts/webkit/tests/TestSerializedType.serialization.in
    M Source/WebKit/Scripts/webkit/tests/WebKitPlatformGeneratedSerializers.cpp

  Log Message:
  -----------
  Only use WKKeyedCoder for encoding when secure coding class is not specified
https://bugs.webkit.org/show_bug.cgi?id=279457
rdar://135631932

Reviewed by Alex Christensen.

The existing implementation expects _webKitPropertyListData to return a dictionary that matches the declaration in
existing CoreIPC*.serialization.in file, when _webKitPropertyListData selector exists. However, a class could add
support for _webKitPropertyListData independently, and the result may not match the existing declaration, which could
lead to breakage in existing WebKit clients. To avoid such issue, now we only allow to use WKKeyedCoder for types that
have WKKeyedCoder support and do not specify secure coding class. When a class adds implementation for
_webKitPropertyListData, the WKKeyedCoder coding will still be in use, and we could explicitly enable the new encoding
format by updating CoreIPC*.serialization.in file and specifying secure encoding class later.

Also, update tests with new auto-generated files.

* Source/WebKit/Scripts/generate-serializers.py:
(generate_webkit_secure_coding_impl):
(generate_webkit_secure_coding_impl.is):
* Source/WebKit/Scripts/webkit/messages_unittest.py:
* Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.h:
* Source/WebKit/Scripts/webkit/tests/GeneratedWebKitSecureCoding.cpp:
(WebKit::dictionaryForWebKitSecureCodingTypeFromWKKeyedCoder):
(WebKit::dictionaryForWebKitSecureCodingType):
(WebKit::CoreIPCAVOutputContext::toID const):
(WebKit::CoreIPCNSSomeFoundationType::toID const):
(WebKit::NSSomeOtherFoundationType):
(WebKit::NSSomeOtherFoundationType::toID const):
(WebKit::CoreIPCDDScannerResult::toID const):
* Source/WebKit/Scripts/webkit/tests/GeneratedWebKitSecureCoding.h:
* Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
(IPC::jsValueForArguments):
(IPC::messageArgumentDescriptions):
* Source/WebKit/Scripts/webkit/tests/MessageNames.cpp:
* Source/WebKit/Scripts/webkit/tests/MessageNames.h:
* Source/WebKit/Scripts/webkit/tests/SerializedTypeInfo.cpp:
(WebKit::allSerializedTypes):
* Source/WebKit/Scripts/webkit/tests/TestSerializedType.serialization.in:
* Source/WebKit/Scripts/webkit/tests/WebKitPlatformGeneratedSerializers.cpp:
(IPC::NSSomeOtherFoundationType>::encode):
(IPC::NSSomeOtherFoundationType>::decode):

Canonical link: https://commits.webkit.org/283566@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