[webkit-changes] [WebKit/WebKit] 3fe3c3: Implement GC handling for trusted types API

Luke Warlow noreply at github.com
Tue Apr 2 15:27:44 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3fe3c3955914a08964b9c840e2750350e1e8b7af
      https://github.com/WebKit/WebKit/commit/3fe3c3955914a08964b9c840e2750350e1e8b7af
  Author: Luke Warlow <lwarlow at igalia.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    A Source/WebCore/bindings/js/JSTrustedTypePolicyCustom.cpp
    A Source/WebCore/bindings/js/JSTrustedTypePolicyFactoryCustom.cpp
    M Source/WebCore/dom/CreateHTMLCallback.h
    M Source/WebCore/dom/CreateHTMLCallback.idl
    M Source/WebCore/dom/CreateScriptCallback.h
    M Source/WebCore/dom/CreateScriptCallback.idl
    M Source/WebCore/dom/CreateScriptURLCallback.h
    M Source/WebCore/dom/CreateScriptURLCallback.idl
    M Source/WebCore/dom/TrustedTypePolicy.cpp
    M Source/WebCore/dom/TrustedTypePolicy.h
    M Source/WebCore/dom/TrustedTypePolicy.idl
    M Source/WebCore/dom/TrustedTypePolicyFactory.cpp
    M Source/WebCore/dom/TrustedTypePolicyFactory.h
    M Source/WebCore/dom/TrustedTypePolicyFactory.idl
    M Source/WebCore/dom/WindowOrWorkerGlobalScopeTrustedTypes.cpp
    M Source/WebCore/workers/WorkerGlobalScope.cpp

  Log Message:
  -----------
  Implement GC handling for trusted types API
https://bugs.webkit.org/show_bug.cgi?id=268419

Reviewed by Ryosuke Niwa.

This patch implements visitAdditionalChildren for TrustedTypePolicy calling visitJSFunction on callbacks.
TrustedTypePolicy is also an opaque root which is added inside of TrustedTypePolicyFactory visitAdditionalChildren.
It also marks TrustedTypePolicyFactory as being reachable via scriptExecutionContext.
The trusted type callbacks are now weak callbacks.
The WorkerGlobalScopeTrustedTypes supplement is now also removed in WorkerGlobalScope::prepareForDestruction,
this is so that teardown happens in the right order.

* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/bindings/js/JSTrustedTypePolicyCustom.cpp: Added.
(WebCore::JSTrustedTypePolicy::visitAdditionalChildren):
* Source/WebCore/bindings/js/JSTrustedTypePolicyFactoryCustom.cpp: Added.
(WebCore::JSTrustedTypePolicyFactory::visitAdditionalChildren):
* Source/WebCore/dom/CreateHTMLCallback.h:
* Source/WebCore/dom/CreateHTMLCallback.idl:
* Source/WebCore/dom/CreateScriptCallback.h:
* Source/WebCore/dom/CreateScriptCallback.idl:
* Source/WebCore/dom/CreateScriptURLCallback.h:
* Source/WebCore/dom/CreateScriptURLCallback.idl:
* Source/WebCore/dom/TrustedTypePolicy.cpp:
(WebCore::TrustedTypePolicy::TrustedTypePolicy):
(WebCore::TrustedTypePolicy::getPolicyValue):
(WebCore::root):
* Source/WebCore/dom/TrustedTypePolicy.h:
(WebCore::TrustedTypePolicy::options const):
(WebCore::TrustedTypePolicy::WTF_RETURNS_LOCK):
* Source/WebCore/dom/TrustedTypePolicy.idl:
* Source/WebCore/dom/TrustedTypePolicyFactory.cpp:
(WebCore::TrustedTypePolicyFactory::create):
(WebCore::TrustedTypePolicyFactory::TrustedTypePolicyFactory):
* Source/WebCore/dom/TrustedTypePolicyFactory.h:
(WebCore::TrustedTypePolicyFactory::defaultPolicyConcurrently const):
* Source/WebCore/dom/TrustedTypePolicyFactory.idl:
* Source/WebCore/dom/WindowOrWorkerGlobalScopeTrustedTypes.cpp:
(WebCore::DOMWindowTrustedTypes::trustedTypes const):
(WebCore::WorkerGlobalScopeTrustedTypes::trustedTypes const):
* Source/WebCore/workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::prepareForDestruction):

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