<?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>265470</bug_id>
          
          <creation_ts>2023-11-28 11:50:18 -0800</creation_ts>
          <short_desc>AX: accessing WeakPtr from wrong thread with embedded PDF</short_desc>
          <delta_ts>2023-12-06 11:31:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>Safari Technology Preview</version>
          <rep_platform>All</rep_platform>
          <op_sys>macOS 14</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="Dominic Mazzoni">dm_mazzoni</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andresg_22</cc>
    
    <cc>cfleizach</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1995367</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2023-11-28 11:50:18 -0800</bug_when>
    <thetext>You can repro with a trivially simple HTML page that embeds a PDF, e.g.:

&lt;object data=&quot;hello.pdf&quot; type=&quot;application/pdf&quot;  width=&quot;300&quot; height=&quot;300&quot;&gt;&lt;/object&gt;

Open the web page and enable VoiceOver, then try to navigate to the embedded PDF object - I get this assertion in debug mode:

ASSERTION FAILED: canSafelyBeUsed()
include/wtf/WeakPtr.h(138) : T *WTF::WeakPtr&lt;WebKit::WebFrame&gt;::operator-&gt;() const [T = WebKit::WebFrame, WeakPtrImpl = WTF::DefaultWeakPtrImpl]
1    WTFCrash
2    WTFCrashWithInfo(int, char const*, char const*, int)
3    WTF::WeakPtr&lt;WebKit::WebFrame, WTF::DefaultWeakPtrImpl&gt;::operator-&gt;() const
4    WebKit::PDFPlugin::axObjectCache() const
5    -[WKPDFPluginAccessibilityObject parent]
6    -[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]
7    NSAccessibilityGetObjectForAttributeUsingLegacyAPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1995368</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-11-28 11:50:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/118892293&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1995380</commentid>
    <comment_count>2</comment_count>
      <attachid>468788</attachid>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2023-11-28 12:51:00 -0800</bug_when>
    <thetext>Created attachment 468788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1995382</commentid>
    <comment_count>3</comment_count>
      <attachid>468788</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-11-28 13:01:14 -0800</bug_when>
    <thetext>Comment on attachment 468788
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=468788&amp;action=review

&gt; Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:194
&gt; +        callOnMainRunLoopAndWait([&amp;] {

if we don&apos;t do this is it a crash?

also returning and storing an ivar (_parent) on a different thread might be bad</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1995383</commentid>
    <comment_count>4</comment_count>
      <attachid>468789</attachid>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2023-11-28 13:24:58 -0800</bug_when>
    <thetext>Created attachment 468789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1995384</commentid>
    <comment_count>5</comment_count>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2023-11-28 13:26:39 -0800</bug_when>
    <thetext>(In reply to chris fleizach from comment #3)
&gt; if we don&apos;t do this is it a crash?

It&apos;s a debug assertion in WeakPtr: canSafelyBeUsed

&gt; also returning and storing an ivar (_parent) on a different thread might be
&gt; bad

Got it, changed to use a local RetainPtr to move between threads</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1995385</commentid>
    <comment_count>6</comment_count>
      <attachid>468790</attachid>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2023-11-28 13:27:58 -0800</bug_when>
    <thetext>Created attachment 468790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1995402</commentid>
    <comment_count>7</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-11-28 14:35:17 -0800</bug_when>
    <thetext>(In reply to Dominic Mazzoni from comment #6)
&gt; Created attachment 468790 [details]
&gt; Patch

Use the main thread when accessing the document&apos;s
 axObjectCache from WKPDFPluginAccessibilityObject

https://bugs.webkit.org/show_bug.cgi?id=265470
rdar://118894435

Reviewed by NOBODY (OOPS!).

AG: Include here a brief explanation of the problem and solution.

* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFPluginAccessibilityObject parent]):
(WebKit::PDFPlugin::axObjectCache const):
---
 Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm b/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm
index 4fc440c1fe89..fb77b90b95f6 100644
--- a/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm
+++ b/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm
@@ -191,10 +191,14 @@ - (id)initWithPDFPlugin:(WebKit::PDFPlugin *)plugin andElement:(WebCore::HTMLPlu
 - (NSObject *)parent
 {
     if (!_parent) {
-        if (auto* axObjectCache = _pdfPlugin-&gt;axObjectCache()) {
-            if (RefPtr pluginAxObject = axObjectCache-&gt;getOrCreate(_pluginElement.get()))
-                _parent = pluginAxObject-&gt;wrapper();
-        }
+        RetainPtr&lt;NSObject&gt; parent;
+        callOnMainRunLoopAndWait([&amp;] {

AG: I think you need to capture a strong reference to self because there is no guaranty that self is alive when the lambda is invoked on the main thread, similar to what we do in WebAccessibilityObjectWrapper. I.e., something like:

        callOnMainRunLoopAndWait([&amp;parent, protectedSelf = retainPtr(self)] {

and then use protectedSelf to access properties and methods in the lambda.

+            if (auto* axObjectCache = _pdfPlugin-&gt;axObjectCache()) {
+                if (RefPtr pluginAxObject = axObjectCache-&gt;getOrCreate(_pluginElement.get()))
+                    parent = pluginAxObject-&gt;wrapper();
+            }
+        });
+        _parent = parent.get();
     }
     return _parent.get().get();
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1995692</commentid>
    <comment_count>8</comment_count>
      <attachid>468810</attachid>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2023-11-29 12:53:46 -0800</bug_when>
    <thetext>Created attachment 468810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1995697</commentid>
    <comment_count>9</comment_count>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2023-11-29 12:55:54 -0800</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #7)
&gt; AG: I think you need to capture a strong reference to self because there is
&gt; no guaranty that self is alive when the lambda is invoked on the main
&gt; thread, similar to what we do in WebAccessibilityObjectWrapper. I.e.,

Thanks. Notice that the function accesses an ivar at the bottom - so I
think it&apos;s actually necessary to retain self throughout the whole function
scope, not just the lambda. Let me know if you disagree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1997449</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-12-06 11:31:18 -0800</bug_when>
    <thetext>Committed 271622@main (0cab9f4dd652): &lt;https://commits.webkit.org/271622@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 468810.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468788</attachid>
            <date>2023-11-28 12:51:00 -0800</date>
            <delta_ts>2023-11-28 13:24:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-265470-20231128125059.patch</filename>
            <type>text/plain</type>
            <size>1599</size>
            <attacher name="Dominic Mazzoni">dm_mazzoni</attacher>
            
              <data encoding="base64">RnJvbSA0NWYyMjE1MWJmNmFlZGRmMmJkNDkwMTYzZjBlNGNkNDYyZDg4MGFhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIE1henpvbmkgPGRtX21henpvbmlAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDI4IE5vdiAyMDIzIDEyOjE1OjU0IC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
VXNlIHRoZSBtYWluIHRocmVhZCB3aGVuIGFjY2Vzc2luZyB0aGUgZG9jdW1lbnQncwogYXhPYmpl
Y3RDYWNoZSBmcm9tIFdLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdAoKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NTQ3MApyZGFyOi8vMTE4ODk0NDM1CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5tbToKKC1bV0tQREZQbHVnaW5BY2Nlc3NpYmlsaXR5T2JqZWN0IHBh
cmVudF0pOgooV2ViS2l0OjpQREZQbHVnaW46OmF4T2JqZWN0Q2FjaGUgY29uc3QpOgotLS0KIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gfCAxMCArKysr
KystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
CmluZGV4IDRmYzQ0MGMxZmU4OS4uNGNjY2Q5NzE5Y2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTE5MSwxMCArMTkxLDEy
IEBAIC0gKGlkKWluaXRXaXRoUERGUGx1Z2luOihXZWJLaXQ6OlBERlBsdWdpbiAqKXBsdWdpbiBh
bmRFbGVtZW50OihXZWJDb3JlOjpIVE1MUGx1CiAtIChOU09iamVjdCAqKXBhcmVudAogewogICAg
IGlmICghX3BhcmVudCkgewotICAgICAgICBpZiAoYXV0byogYXhPYmplY3RDYWNoZSA9IF9wZGZQ
bHVnaW4tPmF4T2JqZWN0Q2FjaGUoKSkgewotICAgICAgICAgICAgaWYgKFJlZlB0ciBwbHVnaW5B
eE9iamVjdCA9IGF4T2JqZWN0Q2FjaGUtPmdldE9yQ3JlYXRlKF9wbHVnaW5FbGVtZW50LmdldCgp
KSkKLSAgICAgICAgICAgICAgICBfcGFyZW50ID0gcGx1Z2luQXhPYmplY3QtPndyYXBwZXIoKTsK
LSAgICAgICAgfQorICAgICAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoWyZdIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvKiBheE9iamVjdENhY2hlID0gX3BkZlBsdWdpbi0+YXhPYmplY3RDYWNo
ZSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKFJlZlB0ciBwbHVnaW5BeE9iamVjdCA9IGF4T2Jq
ZWN0Q2FjaGUtPmdldE9yQ3JlYXRlKF9wbHVnaW5FbGVtZW50LmdldCgpKSkKKyAgICAgICAgICAg
ICAgICAgICAgX3BhcmVudCA9IHBsdWdpbkF4T2JqZWN0LT53cmFwcGVyKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0pOwogICAgIH0KICAgICByZXR1cm4gX3BhcmVudC5nZXQoKS5nZXQoKTsK
IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468789</attachid>
            <date>2023-11-28 13:24:58 -0800</date>
            <delta_ts>2023-11-28 13:27:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-265470-20231128132457.patch</filename>
            <type>text/plain</type>
            <size>2601</size>
            <attacher name="Dominic Mazzoni">dm_mazzoni</attacher>
            
              <data encoding="base64">RnJvbSBlOThjMzE2Y2VmM2JlMDQ2YjViYTZlNDE3MWJhZmJmM2UyOTQxZTUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIE1henpvbmkgPGRtX21henpvbmlAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDI4IE5vdiAyMDIzIDEyOjE1OjU0IC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
VXNlIHRoZSBtYWluIHRocmVhZCB3aGVuIGFjY2Vzc2luZyB0aGUgZG9jdW1lbnQncwogYXhPYmpl
Y3RDYWNoZSBmcm9tIFdLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdAoKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NTQ3MApyZGFyOi8vMTE4ODk0NDM1CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5tbToKKC1bV0tQREZQbHVnaW5BY2Nlc3NpYmlsaXR5T2JqZWN0IHBh
cmVudF0pOgooV2ViS2l0OjpQREZQbHVnaW46OmF4T2JqZWN0Q2FjaGUgY29uc3QpOgotLS0KIC4u
Li9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwICAgICAgICAgICAgfCAgMiAr
LQogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSAgICB8
IDEyICsrKysrKysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDUgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5j
cHAKaW5kZXggMzRmYmZjYzliOTVkLi4zYjkyOGRmYThiMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Nv
cmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIHN0YXRp
YyBib29sIGlzVmFsaWRDYXB0dXJlRGV2aWNlKGNvbnN0IENvcmVBdWRpb0NhcHR1cmVEZXZpY2Um
IGRldmljZSwgYm9vbCBmaWx0CiAgICAgaWYgKGZpbHRlclRhcEVuYWJsZWREZXZpY2VzKSB7CiAg
ICAgICAgIC8vIElnbm9yZSBvdXRwdXQgZGV2aWNlcyB0aGF0IGhhdmUgaW5wdXQgb25seSBmb3Ig
ZWNobyBjYW5jZWxsYXRpb24uCiAgICAgICAgIEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIGFk
ZHJlc3MgPSB7Ci0gICAgICAgICAgICBrQXVkaW9EZXZpY2VQcm9wZXJ0eVRhcEVuYWJsZWQsCisg
ICAgICAgICAgICBrQXVkaW9EZXZpY2VQcm9wZXJ0eVJlZmVyZW5jZVN0cmVhbUVuYWJsZWQsCiAg
ICAgICAgICAgICBrQXVkaW9EZXZpY2VQcm9wZXJ0eVNjb3BlT3V0cHV0LAogI2lmIEhBVkUoQVVE
SU9fT0JKRUNUX1BST1BFUlRZX0VMRU1FTlRfTUFJTikKICAgICAgICAgICAgIGtBdWRpb09iamVj
dFByb3BlcnR5RWxlbWVudE1haW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDRmYzQ0MGMxZmU4OS4uZmI3N2I5MGI5NWY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW0KQEAgLTE5MSwxMCArMTkxLDE0IEBAIC0gKGlkKWluaXRXaXRoUERGUGx1Z2luOihXZWJLaXQ6
OlBERlBsdWdpbiAqKXBsdWdpbiBhbmRFbGVtZW50OihXZWJDb3JlOjpIVE1MUGx1CiAtIChOU09i
amVjdCAqKXBhcmVudAogewogICAgIGlmICghX3BhcmVudCkgewotICAgICAgICBpZiAoYXV0byog
YXhPYmplY3RDYWNoZSA9IF9wZGZQbHVnaW4tPmF4T2JqZWN0Q2FjaGUoKSkgewotICAgICAgICAg
ICAgaWYgKFJlZlB0ciBwbHVnaW5BeE9iamVjdCA9IGF4T2JqZWN0Q2FjaGUtPmdldE9yQ3JlYXRl
KF9wbHVnaW5FbGVtZW50LmdldCgpKSkKLSAgICAgICAgICAgICAgICBfcGFyZW50ID0gcGx1Z2lu
QXhPYmplY3QtPndyYXBwZXIoKTsKLSAgICAgICAgfQorICAgICAgICBSZXRhaW5QdHI8TlNPYmpl
Y3Q+IHBhcmVudDsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFsmXSB7CisgICAg
ICAgICAgICBpZiAoYXV0byogYXhPYmplY3RDYWNoZSA9IF9wZGZQbHVnaW4tPmF4T2JqZWN0Q2Fj
aGUoKSkgeworICAgICAgICAgICAgICAgIGlmIChSZWZQdHIgcGx1Z2luQXhPYmplY3QgPSBheE9i
amVjdENhY2hlLT5nZXRPckNyZWF0ZShfcGx1Z2luRWxlbWVudC5nZXQoKSkpCisgICAgICAgICAg
ICAgICAgICAgIHBhcmVudCA9IHBsdWdpbkF4T2JqZWN0LT53cmFwcGVyKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0pOworICAgICAgICBfcGFyZW50ID0gcGFyZW50LmdldCgpOwogICAgIH0K
ICAgICByZXR1cm4gX3BhcmVudC5nZXQoKS5nZXQoKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468790</attachid>
            <date>2023-11-28 13:27:58 -0800</date>
            <delta_ts>2023-11-29 12:53:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-265470-20231128132758.patch</filename>
            <type>text/plain</type>
            <size>1670</size>
            <attacher name="Dominic Mazzoni">dm_mazzoni</attacher>
            
              <data encoding="base64">RnJvbSBhMGIyZGExMjcwNGYxM2JmYTczYmRiZDQwNzljYTFhNTBlZjIxYTkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIE1henpvbmkgPGRtX21henpvbmlAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDI4IE5vdiAyMDIzIDEyOjE1OjU0IC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
VXNlIHRoZSBtYWluIHRocmVhZCB3aGVuIGFjY2Vzc2luZyB0aGUgZG9jdW1lbnQncwogYXhPYmpl
Y3RDYWNoZSBmcm9tIFdLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdAoKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NTQ3MApyZGFyOi8vMTE4ODk0NDM1CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5tbToKKC1bV0tQREZQbHVnaW5BY2Nlc3NpYmlsaXR5T2JqZWN0IHBh
cmVudF0pOgooV2ViS2l0OjpQREZQbHVnaW46OmF4T2JqZWN0Q2FjaGUgY29uc3QpOgotLS0KIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gfCAxMiArKysr
KysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW0KaW5kZXggNGZjNDQwYzFmZTg5Li5mYjc3YjkwYjk1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMTkxLDEwICsxOTEs
MTQgQEAgLSAoaWQpaW5pdFdpdGhQREZQbHVnaW46KFdlYktpdDo6UERGUGx1Z2luICopcGx1Z2lu
IGFuZEVsZW1lbnQ6KFdlYkNvcmU6OkhUTUxQbHUKIC0gKE5TT2JqZWN0ICopcGFyZW50CiB7CiAg
ICAgaWYgKCFfcGFyZW50KSB7Ci0gICAgICAgIGlmIChhdXRvKiBheE9iamVjdENhY2hlID0gX3Bk
ZlBsdWdpbi0+YXhPYmplY3RDYWNoZSgpKSB7Ci0gICAgICAgICAgICBpZiAoUmVmUHRyIHBsdWdp
bkF4T2JqZWN0ID0gYXhPYmplY3RDYWNoZS0+Z2V0T3JDcmVhdGUoX3BsdWdpbkVsZW1lbnQuZ2V0
KCkpKQotICAgICAgICAgICAgICAgIF9wYXJlbnQgPSBwbHVnaW5BeE9iamVjdC0+d3JhcHBlcigp
OwotICAgICAgICB9CisgICAgICAgIFJldGFpblB0cjxOU09iamVjdD4gcGFyZW50OworICAgICAg
ICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoWyZdIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBh
eE9iamVjdENhY2hlID0gX3BkZlBsdWdpbi0+YXhPYmplY3RDYWNoZSgpKSB7CisgICAgICAgICAg
ICAgICAgaWYgKFJlZlB0ciBwbHVnaW5BeE9iamVjdCA9IGF4T2JqZWN0Q2FjaGUtPmdldE9yQ3Jl
YXRlKF9wbHVnaW5FbGVtZW50LmdldCgpKSkKKyAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0g
cGx1Z2luQXhPYmplY3QtPndyYXBwZXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7Cisg
ICAgICAgIF9wYXJlbnQgPSBwYXJlbnQuZ2V0KCk7CiAgICAgfQogICAgIHJldHVybiBfcGFyZW50
LmdldCgpLmdldCgpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468810</attachid>
            <date>2023-11-29 12:53:46 -0800</date>
            <delta_ts>2023-12-06 11:31:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-265470-20231129125345.patch</filename>
            <type>text/plain</type>
            <size>2275</size>
            <attacher name="Dominic Mazzoni">dm_mazzoni</attacher>
            
              <data encoding="base64">RnJvbSBlOGEwOGJjMGQ5MTVjZjM1ODE5ZWRkODAyZGRmODc1ZTgwZWVjN2ViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIE1henpvbmkgPGRtX21henpvbmlAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDI4IE5vdiAyMDIzIDEyOjE1OjU0IC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
VXNlIHRoZSBtYWluIHRocmVhZCB3aGVuIGFjY2Vzc2luZyB0aGUgZG9jdW1lbnQncwogYXhPYmpl
Y3RDYWNoZSBmcm9tIFdLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdAoKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NTQ3MApyZGFyOi8vMTE4ODk0NDM1CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdC5w
YXJlbnQgd2FzIGFjY2Vzc2luZyB0aGUgcGRmIHBsdWdpbidzIGF4T2JqZWN0Q2FjaGUsCndoaWNo
IHJlcXVpcmVkIGFjY2Vzc2luZyBhIHdlYWsgcG9pbnRlciB0aGF0IGNhbid0IGJlIHNhZmVseSB1
c2VkIG9mZiB0aGUgbWFpbgp0aHJlYWQuIEZpeCBpdCBieSBjb21wdXRpbmcgdGhlIHBhcmVudCBv
biB0aGUgbWFpbiB0aHJlYWQgaW5zdGVhZC4KCkJlY2F1c2UgdGhlIGZ1bmN0aW9uIHJldHVybnMg
YW4gaXZhciBhZnRlciB0aGUgY2FsbCB0byB0aGUgbWFpbiB0aHJlYWQsCml0J3MgbmVjZXNzYXJ5
IHRvIHByb3RlY3QgInNlbGYiIHRocm91Z2ggdGhlIHNjb3BlIG9mIHRoZSB3aG9sZSBmdW5jdGlv
biBjYWxsLApub3QganVzdCBpbiB0aGUgbGFtYmRhLgoKKiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgooLVtXS1BERlBsdWdpbkFjY2Vzc2liaWxpdHlP
YmplY3QgcGFyZW50XSk6CihXZWJLaXQ6OlBERlBsdWdpbjo6YXhPYmplY3RDYWNoZSBjb25zdCk6
Ci0tLQogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSB8
IDE1ICsrKysrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNiBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpbi5tbQppbmRleCA0ZmM0NDBjMWZlODkuLjY0YmEyNWZiOWQ4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0x
OTAsMTMgKzE5MCwxNiBAQCAtIChpZClpbml0V2l0aFBERlBsdWdpbjooV2ViS2l0OjpQREZQbHVn
aW4gKilwbHVnaW4gYW5kRWxlbWVudDooV2ViQ29yZTo6SFRNTFBsdQogCiAtIChOU09iamVjdCAq
KXBhcmVudAogewotICAgIGlmICghX3BhcmVudCkgewotICAgICAgICBpZiAoYXV0byogYXhPYmpl
Y3RDYWNoZSA9IF9wZGZQbHVnaW4tPmF4T2JqZWN0Q2FjaGUoKSkgewotICAgICAgICAgICAgaWYg
KFJlZlB0ciBwbHVnaW5BeE9iamVjdCA9IGF4T2JqZWN0Q2FjaGUtPmdldE9yQ3JlYXRlKF9wbHVn
aW5FbGVtZW50LmdldCgpKSkKLSAgICAgICAgICAgICAgICBfcGFyZW50ID0gcGx1Z2luQXhPYmpl
Y3QtPndyYXBwZXIoKTsKLSAgICAgICAgfQorICAgIFJldGFpblB0cjxXS1BERlBsdWdpbkFjY2Vz
c2liaWxpdHlPYmplY3Q+IHByb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZik7CisgICAgaWYg
KCFwcm90ZWN0ZWRTZWxmLT5fcGFyZW50KSB7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wQW5k
V2FpdChbJnByb3RlY3RlZFNlbGZdIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBheE9iamVjdENh
Y2hlID0gcHJvdGVjdGVkU2VsZi0+X3BkZlBsdWdpbi0+YXhPYmplY3RDYWNoZSgpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKFJlZlB0ciBwbHVnaW5BeE9iamVjdCA9IGF4T2JqZWN0Q2FjaGUtPmdl
dE9yQ3JlYXRlKHByb3RlY3RlZFNlbGYtPl9wbHVnaW5FbGVtZW50LmdldCgpKSkKKyAgICAgICAg
ICAgICAgICAgICAgcHJvdGVjdGVkU2VsZi0+X3BhcmVudCA9IHBsdWdpbkF4T2JqZWN0LT53cmFw
cGVyKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOwogICAgIH0KLSAgICByZXR1cm4gX3Bh
cmVudC5nZXQoKS5nZXQoKTsKKyAgICByZXR1cm4gcHJvdGVjdGVkU2VsZi0+X3BhcmVudC5nZXQo
KS5nZXQoKTsKIH0KIAogLSAodm9pZClzZXRQYXJlbnQ6KE5TT2JqZWN0ICopcGFyZW50Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>