<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>290826</bug_id>
          
          <creation_ts>2025-03-31 22:03:49 -0700</creation_ts>
          <short_desc>ASSERTION FAILED: Unsafe to ref/deref from different threads : m_isOwnedByMainThread == isMainThread() :  under WebCore::JSTrustedTypePolicy::visitAdditionalChildren&lt;JSC::SlotVisitor&gt;</short_desc>
          <delta_ts>2025-04-07 09:48:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>keith_miller</cc>
    
    <cc>lwarlow</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2107709</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2025-03-31 22:03:49 -0700</bug_when>
    <thetext>trusted-types tests are randomly crashing.

Windows Debug 292992@main

Regressions: Unexpected crashes (1)
  imported/w3c/web-platform-tests/trusted-types/default-policy-report-only.html [ Crash ]

ASSERTION FAILED: Unsafe to ref/deref from different threads
m_isOwnedByMainThread == isMainThread()
C:\BW\work\build\WebKitBuild\Debug\WTF\Headers\wtf/RefCounted.h(119) : void WTF::RefCountedBase::applyRefDerefThreadingCheck() const
1   00007FFFE74F7498 WTF::RefCountedBase::applyRefDerefThreadingCheck
2   00007FFFE75048A8 WTF::RefCountedBase::ref
3   00007FFFE9CAB70A WTF::DefaultRefDerefTraits&lt;WebCore::CreateScriptURLCallback&gt;::refIfNotNull
4   00007FFFE9CAB6CA WTF::RefPtr&lt;WebCore::CreateScriptURLCallback,WTF::RawPtrTraits&lt;WebCore::CreateScriptURLCallback&gt;,WTF::DefaultRefDerefTraits&lt;WebCore::CreateScriptURLCallback&gt; &gt;::RefPtr
5   00007FFFE9CAAD26 WTF::RefPtr&lt;WebCore::CreateScriptURLCallback,WTF::RawPtrTraits&lt;WebCore::CreateScriptURLCallback&gt;,WTF::DefaultRefDerefTraits&lt;WebCore::CreateScriptURLCallback&gt; &gt;::operator=
6   00007FFFE9CAAEE9 WebCore::JSTrustedTypePolicy::visitAdditionalChildren&lt;JSC::SlotVisitor&gt;
7   00007FFFE8E709A6 WebCore::JSTrustedTypePolicy::visitChildrenImpl&lt;JSC::SlotVisitor&gt;
8   00007FFFE8E5AFED WebCore::JSTrustedTypePolicy::visitChildren
9   00007FFFF4CD346B JSC::MethodTable::visitChildren
10  00007FFFF4CD0AB1 JSC::SlotVisitor::visitChildren
11  00007FFFF4CCF89E JSC::SlotVisitor::drain::&lt;lambda_3&gt;::operator()
12  00007FFFF4CCBD36 JSC::SlotVisitor::forEachMarkStack&lt;`lambda at C:\BW\work\build\Source\JavaScriptCore\heap\SlotVisitor.cpp:500:13&apos;&gt;
13  00007FFFF4CCBCBC JSC::SlotVisitor::drain
14  00007FFFF4CCC902 JSC::SlotVisitor::drainFromShared
15  00007FFFF4C0B026 JSC::Heap::runBeginPhase::&lt;lambda_33&gt;::operator()
16  00007FFFF4C0AF07 WTF::SharedTaskFunctor&lt;void (),`lambda at C:\BW\work\build\Source\JavaScriptCore\heap\Heap.cpp:1481:9&apos;&gt;::run
17  00007FFFF619B668 WTF::ParallelHelperClient::runTask
18  00007FFFF619C610 WTF::ParallelHelperPool::Thread::work
19  00007FFFF612CA8A WTF::AutomaticThread::start::&lt;lambda_0&gt;::operator()
20  00007FFFF612C787 WTF::Detail::CallableWrapper&lt;`lambda at C:\BW\work\build\Source\WTF\wtf\AutomaticThread.cpp:169:9&apos;,void&gt;::call
21  00007FFFF46EA85C WTF::Function&lt;void ()&gt;::operator()
22  00007FFFF629FD73 WTF::Thread::entryPoint
23  00007FFFF6378B63 WTF::wtfThreadEntryPoint
24  00007FF854AD1BB2 configthreadlocale
25  00007FF855837374 BaseThreadInitThunk
26  00007FF8571DCC91 RtlUserThreadStart
ERROR: 000001D1694A1730 - [PID=15040] WebProcessProxy::didClose (web process crash)
C:\BW\work\build\Source\WebKit\UIProcess/WebProcessProxy.cpp(1273) : virtual void WebKit::WebProcessProxy::didClose(IPC::Connection &amp;)
ERROR: 000001D1694A1730 - [PID=15040] WebProcessProxy::processDidTerminateOrFailedToLaunch: reason=Crash
C:\BW\work\build\Source\WebKit\UIProcess/WebProcessProxy.cpp(1288) : void WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch(ProcessTerminationReason)
ERROR: 000001D16949ABE0 - [pageProxyID=6404, webPageID=6405, PID=15040] WebPageProxy::processDidTerminate: (pid 15040), reason=Crash
C:\BW\work\build\Source\WebKit\UIProcess/WebPageProxy.cpp(11039) : void WebKit::WebPageProxy::resetStateAfterProcessTermination(ProcessTerminationReason)
ERROR: 000001D16949ABE0 - [pageProxyID=6404, webPageID=6405, PID=15040] WebPageProxy::dispatchProcessDidTerminate: reason=Crash
C:\BW\work\build\Source\WebKit\UIProcess/WebPageProxy.cpp(11098) : void WebKit::WebPageProxy::dispatchProcessDidTerminate(WebProcessProxy &amp;, ProcessTerminationReason)
WebProcess terminated (pid 15040) for reason: crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2107710</commentid>
    <comment_count>1</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2025-03-31 22:04:27 -0700</bug_when>
    <thetext>This is reproducible with the following command and Windows Debug builds:

&gt; python ./Tools/Scripts/run-webkit-tests --debug  --no-retry  imported/w3c/web-platform-tests/trusted-types/ --iter=100 -f

Unexpected flakiness: crashes (2)
  imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getAttributeType.html [ Crash Pass ]
  imported/w3c/web-platform-tests/trusted-types/default-policy-callback-arguments.html [ Crash Pass ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2108074</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2025-04-01 21:38:10 -0700</bug_when>
    <thetext>Hi Luke and Ryosuke,

Looking though the `WebCore/bindings/js` directory, only `JSTrustedTypePolicy::visitAdditionalChildren` does ref-ing in `visitAdditionalChildren`.
https://github.com/WebKit/WebKit/blob/aa298b6b8f4a74ac6c71d9c46de51c5ee18a1794/Source/WebCore/bindings/js/JSTrustedTypePolicyCustom.cpp#L41-L43

Is this code correct? Or, CreateHTMLCallback has to be a ThreadSafeRefCounted?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2108081</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2025-04-01 22:43:20 -0700</bug_when>
    <thetext>Oh, looks like this code manually grabs a lock and synchronizes with the main thread?
So that should be safe in terms of ref() but the code is definitely not thread safe for deref().
It can corrupt refCount.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2108082</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-04-01 22:43:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/148400517&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2108253</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2025-04-02 12:14:13 -0700</bug_when>
    <thetext>Pull request: https://github.com/apple/WebKit/pull/2946</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2108254</commentid>
    <comment_count>6</comment_count>
      <attachid>474808</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2025-04-02 12:14:49 -0700</bug_when>
    <thetext>Created attachment 474808
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2108368</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2025-04-02 17:17:42 -0700</bug_when>
    <thetext>Actually, nobody seems to have shipped trusted types yet so we can fix this in main.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2108370</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2025-04-02 17:20:49 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/43502</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2108432</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-04-02 22:44:36 -0700</bug_when>
    <thetext>Committed 293145@main (59b9ac30c4c6): &lt;https://commits.webkit.org/293145@main&gt;

Reviewed commits have been landed. Closing PR #43502 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2109437</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-04-07 09:48:56 -0700</bug_when>
    <thetext>Committed 289651.401@safari-7621-branch (55899a8ab0b3): &lt;https://commits.webkit.org/289651.401@safari-7621-branch&gt;

Reviewed commits have been landed. Closing PR #2960 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>474808</attachid>
            <date>2025-04-02 12:14:49 -0700</date>
            <delta_ts>2025-04-02 12:14:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>trusted-types-callbacks.patch</filename>
            <type>text/plain</type>
            <size>2479</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">RnJvbSBjNmFiOTJjYzkzZDBkNDM3YjQxM2IxODJjN2EwMjE1MWNjODhhNGE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSeW9zdWtlIE5pd2EgPHJuaXdhQHdlYmtpdC5vcmc+CkRhdGU6
IFdlZCwgMiBBcHIgMjAyNSAxMjowNzoxMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFTU0VSVElP
TiBGQUlMRUQ6IFVuc2FmZSB0byByZWYvZGVyZWYgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcwogOiBt
X2lzT3duZWRCeU1haW5UaHJlYWQgPT0gaXNNYWluVGhyZWFkKCkgOiAgdW5kZXIKIFdlYkNvcmU6
OkpTVHJ1c3RlZFR5cGVQb2xpY3k6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuPEpTQzo6U2xvdFZp
c2l0b3I+CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwODI2IHJk
YXI6Ly8xNDg0MDA1MTcKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKVXNlIFRocmVhZFNh
ZmVSZWZDb3VudGVkIGluIHRoZXNlIGNhbGxiYWNrcy4KCiogU291cmNlL1dlYkNvcmUvZG9tL0Ny
ZWF0ZUhUTUxDYWxsYmFjay5oOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9DcmVhdGVTY3JpcHRDYWxs
YmFjay5oOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9DcmVhdGVTY3JpcHRVUkxDYWxsYmFjay5oOgot
LS0KIFNvdXJjZS9XZWJDb3JlL2RvbS9DcmVhdGVIVE1MQ2FsbGJhY2suaCAgICAgIHwgMiArLQog
U291cmNlL1dlYkNvcmUvZG9tL0NyZWF0ZVNjcmlwdENhbGxiYWNrLmggICAgfCAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9kb20vQ3JlYXRlU2NyaXB0VVJMQ2FsbGJhY2suaCB8IDIgKy0KIDMgZmlsZXMg
Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DcmVhdGVIVE1MQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9DcmVhdGVIVE1MQ2FsbGJhY2suaAppbmRleCBmOWIwMmI3NTZiNjMuLjg4MTAyY2QxOTAwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NyZWF0ZUhUTUxDYWxsYmFjay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9DcmVhdGVIVE1MQ2FsbGJhY2suaApAQCAtMzIsNyArMzIsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENyZWF0ZUhUTUxDYWxsYmFjayA6IHB1
YmxpYyBSZWZDb3VudGVkPENyZWF0ZUhUTUxDYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVET01DYWxs
YmFjayB7CitjbGFzcyBDcmVhdGVIVE1MQ2FsbGJhY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8Q3JlYXRlSFRNTENhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKIHB1
YmxpYzoKICAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2FsbGJhY2s7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DcmVhdGVTY3JpcHRDYWxsYmFjay5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NyZWF0ZVNjcmlwdENhbGxiYWNrLmgKaW5kZXggNmRiNzQwZWIx
NDY4Li5kYTc3ZTI0NGNmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DcmVhdGVT
Y3JpcHRDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DcmVhdGVTY3JpcHRDYWxs
YmFjay5oCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
Q3JlYXRlU2NyaXB0Q2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxDcmVhdGVTY3JpcHRDYWxs
YmFjaz4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7CitjbGFzcyBDcmVhdGVTY3JpcHRDYWxs
YmFjayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDcmVhdGVTY3JpcHRDYWxsYmFjaz4s
IHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQWN0aXZlRE9N
Q2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxiYWNrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ3JlYXRlU2NyaXB0VVJMQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DcmVh
dGVTY3JpcHRVUkxDYWxsYmFjay5oCmluZGV4IGE1NmQ1YWVhNTAxMS4uOTc4Y2JmZGQwMDRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3JlYXRlU2NyaXB0VVJMQ2FsbGJhY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3JlYXRlU2NyaXB0VVJMQ2FsbGJhY2suaApAQCAtMzIs
NyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENyZWF0ZVNjcmlwdFVS
TENhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8Q3JlYXRlU2NyaXB0VVJMQ2FsbGJhY2s+LCBw
dWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgeworY2xhc3MgQ3JlYXRlU2NyaXB0VVJMQ2FsbGJhY2sg
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q3JlYXRlU2NyaXB0VVJMQ2FsbGJhY2s+LCBw
dWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgewogcHVibGljOgogICAgIHVzaW5nIEFjdGl2ZURPTUNh
bGxiYWNrOjpBY3RpdmVET01DYWxsYmFjazsKIA==
</data>

          </attachment>
      

    </bug>

</bugzilla>