<?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>213363</bug_id>
          
          <creation_ts>2020-06-18 19:17:04 -0700</creation_ts>
          <short_desc>Fix for crash in AXIsolatedObject::relativeFrame.</short_desc>
          <delta_ts>2020-06-26 12:27:15 -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>New Bugs</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="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1664081</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-06-18 19:17:04 -0700</bug_when>
    <thetext>Fix for crash in AXIsolatedObject::relativeFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664083</commentid>
    <comment_count>1</comment_count>
      <attachid>402263</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-06-18 19:30:24 -0700</bug_when>
    <thetext>Created attachment 402263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664106</commentid>
    <comment_count>2</comment_count>
      <attachid>402263</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-06-18 22:21:54 -0700</bug_when>
    <thetext>Comment on attachment 402263
Patch

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

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1976
&gt; +        return Accessibility::retrieveAutoreleasedValueFromMainThread&lt;NSValue *&gt;([protectedSelf = retainPtr(self)] () -&gt; RetainPtr&lt;NSValue&gt; {

why can&apos;t we access relativeFrame off the main thread? that&apos;s a big win

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:2314
&gt; +    CFRetain((__bridge CFTypeRef)self);

feels like we should just be able to do

RetainPtr&lt;WebAccessibilityObjectWrapper&gt; protectedWrapper(self);

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:3076
&gt; +        return Accessibility::retrieveAutoreleasedValueFromMainThread&lt;NSValue *&gt;([protectedSelf = retainPtr(self)] () -&gt; RetainPtr&lt;NSValue&gt; {

how come this has to be access on main thread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664107</commentid>
    <comment_count>3</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-06-18 22:22:14 -0700</bug_when>
    <thetext>can you include the crash trace as a comment here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666520</commentid>
    <comment_count>4</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-06-26 11:39:55 -0700</bug_when>
    <thetext>(lldb) bt
* thread #1, queue = &apos;com.apple.main-thread&apos;, stop reason = EXC_BAD_ACCESS (code=1, address=0xbbadbeef)
    frame #0: 0x000000064939115e JavaScriptCore`::WTFCrash() at Assertions.cpp:295:35
    frame #1: 0x000000062d7fa26b WebCore`WTFCrashWithInfo((null)=647, (null)=&quot;/Users/ag/s/web/OpenSource/WebKitBuild/Debug/usr/local/include/wtf/HashTable.h&quot;, (null)=&quot;void WTF::HashTable&lt;unsigned long, WTF::KeyValuePair&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashMap&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashTraits&lt;unsigned long&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;unsigned long&gt; &gt;::checkKey(const T &amp;) [Key = unsigned long, Value = WTF::KeyValuePair&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt;, Extractor = WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebC&quot;..., (null)=61) at Assertions.h:671:5
    frame #2: 0x000000062fa6d1fb WebCore`void WTF::HashTable&lt;unsigned long, WTF::KeyValuePair&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashMap&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashTraits&lt;unsigned long&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;unsigned long&gt; &gt;::checkKey&lt;WTF::HashMapTranslatorAdapter&lt;WTF::HashMap&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashTraits&lt;unsigned long&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashTraits&lt;unsigned long&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::IntHash&lt;unsigned long&gt; &gt; &gt;, unsigned long&gt;(this=0x000000065d9b7798, key=0x00007ffee3eb3540) at HashTable.h:647:9
    frame #3: 0x000000062fa6d084 WebCore`WTF::KeyValuePair&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt;* WTF::HashTable&lt;unsigned long, WTF::KeyValuePair&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashMap&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashTraits&lt;unsigned long&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;unsigned long&gt; &gt;::inlineLookup&lt;WTF::HashMapTranslatorAdapter&lt;WTF::HashMap&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashTraits&lt;unsigned long&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashTraits&lt;unsigned long&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::IntHash&lt;unsigned long&gt; &gt; &gt;, unsigned long&gt;(this=0x000000065d9b7798, key=0x00007ffee3eb3540) at HashTable.h:668:9
    frame #4: 0x000000062fa6d00d WebCore`WTF::KeyValuePair&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt;* WTF::HashTable&lt;unsigned long, WTF::KeyValuePair&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashMap&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashTraits&lt;unsigned long&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;unsigned long&gt; &gt;::lookup&lt;WTF::HashMapTranslatorAdapter&lt;WTF::HashMap&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashTraits&lt;unsigned long&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashTraits&lt;unsigned long&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::IntHash&lt;unsigned long&gt; &gt; &gt;, unsigned long&gt;(this=0x000000065d9b7798, key=0x00007ffee3eb3540) at HashTable.h:661:16
    frame #5: 0x000000062fa6cf9d WebCore`WebCore::AccessibilityObject* WTF::HashMap&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashTraits&lt;unsigned long&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;::get&lt;WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashTraits&lt;unsigned long&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::IntHash&lt;unsigned long&gt; &gt;, unsigned long&gt;(this=0x000000065d9b7798, value=0x00007ffee3eb3540) const at HashMap.h:321:63
    frame #6: 0x000000062fa4986d WebCore`WTF::HashMap&lt;unsigned long, WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt;, WTF::IntHash&lt;unsigned long&gt;, WTF::HashTraits&lt;unsigned long&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::AccessibilityObject, WTF::DumbPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; &gt; &gt;::get(this=0x000000065d9b7798, key=0x00007ffee3eb3540) const at HashMap.h:436:12
    frame #7: 0x000000062fb1b6f6 WebCore`WebCore::AXObjectCache::objectFromAXID(this=0x000000065d9b7780, id=0) const at AXObjectCache.h:225:75
  * frame #8: 0x000000062fb04e45 WebCore`WebCore::AXIsolatedObject::associatedAXObject(this=0x000000065d4a8680) const at AXIsolatedObject.h:87:59
    frame #9: 0x000000062fb4c2c8 WebCore`WebCore::AXIsolatedObject::relativeFrame(this=0x0000700009040fd0) const::$_40::operator()() const at AXIsolatedObject.cpp:928:30
    frame #10: 0x000000062fb4c64d WebCore`WebCore::FloatRect WebCore::Accessibility::retrieveValueFromMainThread&lt;WebCore::FloatRect, WebCore::AXIsolatedObject::relativeFrame() const::$_40&gt;(this=0x000000065b3bc830) const::$_40&amp;&amp;)::&apos;lambda&apos;()::operator()() const at AccessibilityObjectInterface.h:1267:17
    frame #11: 0x000000062fb4c5fe WebCore`WTF::Detail::CallableWrapper&lt;WebCore::FloatRect WebCore::Accessibility::retrieveValueFromMainThread&lt;WebCore::FloatRect, WebCore::AXIsolatedObject::relativeFrame() const::$_40&gt;(WebCore::AXIsolatedObject::relativeFrame() const::$_40&amp;&amp;)::&apos;lambda&apos;(), void&gt;::call(this=0x000000065b3bc828) at Function.h:52:39
    frame #12: 0x00000006493b9102 JavaScriptCore`WTF::Function&lt;void ()&gt;::operator(this=0x000000065d48b468)() const at Function.h:84:35
    frame #13: 0x00000006493f649c JavaScriptCore`WTF::callOnMainAndWait(this=0x000000065d48b468)&gt;&amp;&amp;, WTF::MainStyle)::$_0::operator()() const at MainThread.cpp:144:9
    frame #14: 0x00000006493f63ce JavaScriptCore`WTF::Detail::CallableWrapper&lt;WTF::callOnMainAndWait(WTF::Function&lt;void ()&gt;&amp;&amp;, WTF::MainStyle)::$_0, void&gt;::call(this=0x000000065d48b460) at Function.h:52:39
    frame #15: 0x00000006493b9102 JavaScriptCore`WTF::Function&lt;void ()&gt;::operator(this=0x00007ffee3eb36b8)() const at Function.h:84:35
    frame #16: 0x00000006493f566d JavaScriptCore`WTF::dispatchFunctionsFromMainThread() at MainThread.cpp:84:9
    frame #17: 0x00000006493f80c3 JavaScriptCore`WTF::Detail::CallableWrapper&lt;void (*)(), void&gt;::call(this=0x000000065e17ff00) at Function.h:52:39
    frame #18: 0x00000006493b9102 JavaScriptCore`WTF::Function&lt;void ()&gt;::operator(this=0x00007ffee3eb3738)() const at Function.h:84:35
    frame #19: 0x0000000649429b08 JavaScriptCore`WTF::RunLoop::performWork(this=0x00000006501f5000) at RunLoop.cpp:146:9
    frame #20: 0x000000064942a4e1 JavaScriptCore`WTF::RunLoop::performWork(context=0x00000006501f5000) at RunLoopCF.cpp:38:37
    frame #21: 0x00007fff3032aa71 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #22: 0x00007fff3032aa20 CoreFoundation`__CFRunLoopDoSource0 + 157
    frame #23: 0x00007fff3032a7fd CoreFoundation`__CFRunLoopDoSources0 + 222
    frame #24: 0x00007fff3032950a CoreFoundation`__CFRunLoopRun + 890
    frame #25: 0x00007fff30328b1a CoreFoundation`CFRunLoopRunSpecific + 534
    frame #26: 0x00007fff32ce7521 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
    frame #27: 0x00007fff32d75634 Foundation`-[NSRunLoop(NSRunLoop) run] + 76
    frame #28: 0x00007fff70aeab7f libxpc.dylib`_xpc_objc_main + 760
    frame #29: 0x00007fff70aea648 libxpc.dylib`xpc_main + 437
    frame #30: 0x0000000620879ee1 WebKit`WebKit::XPCServiceMain(argc=1, argv=0x00007ffee3eb49b8) at XPCServiceMain.mm:180:5
    frame #31: 0x0000000621cc71eb WebKit`WKXPCServiceMain(argc=1, argv=0x00007ffee3eb49b8) at WKMain.mm:33:12
    frame #32: 0x000000010bd4ee92 com.apple.WebKit.WebContent.Development`main(argc=1, argv=0x00007ffee3eb49b8) at AuxiliaryProcessMain.cpp:30:12
    frame #33: 0x00007fff7086ec71 libdyld.dylib`start + 1
    frame #34: 0x00007fff7086ec71 libdyld.dylib`start + 1
(lldb)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666521</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-06-26 11:41:46 -0700</bug_when>
    <thetext>After fixing other timing crashes, now this one is more reproducible and the cause is clear. Uploading a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666523</commentid>
    <comment_count>6</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-06-26 11:45:23 -0700</bug_when>
    <thetext>The relative frame is already being retrieved from the main thread:
    // Retrieve this on the main thread because we require the scroll ancestor to convert to the right scroll offset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666525</commentid>
    <comment_count>7</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-06-26 11:48:00 -0700</bug_when>
    <thetext>The cause is that between the time the isolated object dispatches the method to the main thread, and the lambda is executed, the isolated object is detached, and hence its object ID is invalid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666528</commentid>
    <comment_count>8</comment_count>
      <attachid>402883</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-06-26 11:54:41 -0700</bug_when>
    <thetext>Created attachment 402883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666545</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-26 12:26:27 -0700</bug_when>
    <thetext>Committed r263573: &lt;https://trac.webkit.org/changeset/263573&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402883.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666546</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-26 12:27:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/64817348&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402263</attachid>
            <date>2020-06-18 19:30:24 -0700</date>
            <delta_ts>2020-06-26 11:54:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213363-20200618223023.patch</filename>
            <type>text/plain</type>
            <size>4812</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI0YTE0M2FjNTM2MWI0
MGQ4ZjE0MmM0MmIyYzlhNzdhODYyZGU1MS4uNGM3ZDZlOGYzYTViMTkzNWY4N2NmZTY5MTg4Nzdm
OTJkZWM0ODY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA2LTE4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIGNy
YXNoIGluIEFYSXNvbGF0ZWRPYmplY3Q6OnJlbGF0aXZlRnJhbWUuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMzNjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIEF1dG9yZWxlYXNlIHRoZSBOU1ZhbHVl
IHJldHVybmVkIGZvciB0aGUgcmVsYXRpdmUgZnJhbWUgYW5kIHBvc2l0aW9uCisgICAgICAgIGF0
dHJpYnV0ZXMuCisgICAgICAgIC0gUmV0YWluL2F1dG9yZWxlYXNlIHNlbGYgZHVyaW5nIHRoZSBl
eGVjdXRpb24gb2YgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlCisgICAgICAgIHNpbmNlIHRo
ZSBvYmplY3QgY2FuIGJlIHJlbGVhc2Ugb24gdGhlIG1haW4gdGhyZWFkIHdoaWxlIHN0aWxsIGV4
ZWN1dGluZyBvbiB0aGUgc2Vjb25kYXJ5IHRocmVhZC4KKyAgICAgICAgLSBFbGltaW5hdGUgb25l
IHVubmVjZXNzYXJ5IGNhbGwgdG8gYXhCYWNraW5nT2JqZWN0IGluIHVwZGF0ZU9iamVjdEJhY2tp
bmdTdG9yZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJCYXNlIHVwZGF0ZU9iamVjdEJhY2tpbmdTdG9yZV0pOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAo
LVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBwb3NpdGlvbl0pOgorICAgICAgICAoLVtX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6
XSk6CisKIDIwMjAtMDYtMTYgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgcXVpa3IuY29tOiB1bmFibGUgdG8gc2VsZWN0IGl0ZW0gZnJvbSBkcm9wZG93bgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IGU0YzFiYWQ5NDky
OTk4YTFmMzA3OTlkNmEyZWZkMTE1ODFhNDU1NjQuLjhmZDNiZGY5MjUzYmQwNDFlYzFmYmQ2YWRi
NjE1NWZlOWE3NGEwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2Uu
bW0KQEAgLTM0MywxMCArMzQzLDExIEBAIE5TQXJyYXkgKmNvbnZlcnRUb05TQXJyYXkoY29uc3Qg
V2ViQ29yZTo6QVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0CiAgICAgQ0ZS
ZXRhaW4oKF9fYnJpZGdlIENGVHlwZVJlZilzZWxmKTsKICAgICBDRkF1dG9yZWxlYXNlKChfX2Jy
aWRnZSBDRlR5cGVSZWYpc2VsZik7CiAKLSAgICBpZiAoIXNlbGYuYXhCYWNraW5nT2JqZWN0KQor
ICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBzZWxmLmF4QmFja2luZ09iamVjdDsKKyAgICBpZiAo
IWJhY2tpbmdPYmplY3QpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBzZWxmLmF4QmFja2lu
Z09iamVjdC0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CisgICAgYmFja2luZ09iamVjdC0+dXBkYXRl
QmFja2luZ1N0b3JlKCk7CiAKICAgICByZXR1cm4gc2VsZi5heEJhY2tpbmdPYmplY3Q7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IDIxYjAxYzdkNWExMzNj
ZjRjYTE4OTg5MDA3NjNjM2IyZTQ2YzdhZjAuLmVhNTFhM2Y1ZDg0M2VhNmQ4OWE0N2ZiNmJlOGY3
MWMxM2IzOWY0ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBA
IC0xOTcyLDggKzE5NzIsMTMgQEAgc3RhdGljIHZvaWQgV2ViVHJhbnNmb3JtQ0dQYXRoVG9OU0Jl
emllclBhdGgodm9pZCogaW5mbywgY29uc3QgQ0dQYXRoRWxlbWVudCAqZWwKIC0gKE5TVmFsdWUg
Kilwb3NpdGlvbgogewogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCi0g
ICAgaWYgKF9BWFVJRWxlbWVudFJlcXVlc3RTZXJ2aWNlZEJ5U2Vjb25kYXJ5QVhUaHJlYWQoKSkK
LSAgICAgICAgcmV0dXJuIFtOU1ZhbHVlIHZhbHVlV2l0aFBvaW50OihOU1BvaW50KXNlbGYuYXhC
YWNraW5nT2JqZWN0LT5yZWxhdGl2ZUZyYW1lKCkubG9jYXRpb24oKV07CisgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmlzSXNvbGF0ZWRUcmVlRW5hYmxlZCgpKSB7CisgICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5OjpyZXRyaWV2ZUF1dG9yZWxlYXNlZFZhbHVlRnJvbU1haW5UaHJlYWQ8TlNWYWx1
ZSAqPihbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4gUmV0YWluUHRyPE5T
VmFsdWU+IHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBiYWNraW5nT2JqZWN0ID0gcHJvdGVjdGVk
U2VsZi5nZXQoKS5heEJhY2tpbmdPYmplY3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIFtOU1Zh
bHVlIHZhbHVlV2l0aFBvaW50OihOU1BvaW50KWJhY2tpbmdPYmplY3QtPnJlbGF0aXZlRnJhbWUo
KS5sb2NhdGlvbigpXTsKKyAgICAgICAgICAgIHJldHVybiBuaWw7CisgICAgICAgIH0pOworICAg
IH0KICNlbmRpZgogCiAgICAgYXV0byByZWN0ID0gc25hcHBlZEludFJlY3Qoc2VsZi5heEJhY2tp
bmdPYmplY3QtPmVsZW1lbnRSZWN0KCkpOwpAQCAtMjMwMSw2ICsyMzA2LDE0IEBAIEFMTE9XX0RF
UFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0JFR0lOCiBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVO
VEFUSU9OU19FTkQKIHsKICAgICBBWFRSQUNFKG1ha2VTdHJpbmcoIldlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZToiLCBTdHJpbmcoYXR0cmli
dXRlTmFtZSkpKTsKKworICAgIC8vIEluIGlzb2xhdGVkIHRyZWUgbW9kZSwgdGhpcyBtZXRob2Qg
aXMgY2FsbGVkIG9uIHRoZSBzZWNvbmRhcnkgdGhyZWFkLgorICAgIC8vIEZvciBzb21lIGF0dHJp
YnV0ZXMsIHRoZSBjYWxsIG5lZWRzIHRvIGJlIGRpc3BhdGNoZWQgdG8gdGhlIG1haW4gdGhyZWFk
LgorICAgIC8vIFRoaXMgb2JqZWN0IGNhbiBiZSByZWxlYXNlIG9uIHRoZSBtYWluIHRocmVhZCBi
ZWZvcmUgdGhpcyBtZXRob2QgcmV0dXJucworICAgIC8vIGNhdXNpbmcgYSBjcmFzaC4gVGh1cyBy
ZXRhaW4vYXV0b3JlbGVhc2UgaGVyZS4KKyAgICBDRlJldGFpbigoX19icmlkZ2UgQ0ZUeXBlUmVm
KXNlbGYpOworICAgIENGQXV0b3JlbGVhc2UoKF9fYnJpZGdlIENGVHlwZVJlZilzZWxmKTsKKwog
ICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBzZWxmLnVwZGF0ZU9iamVjdEJhY2tpbmdTdG9yZTsK
ICAgICBpZiAoIWJhY2tpbmdPYmplY3QpCiAgICAgICAgIHJldHVybiBuaWw7CkBAIC0zMDYwLDcg
KzMwNzMsMTEgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgfQog
CiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlS
ZWxhdGl2ZUZyYW1lQXR0cmlidXRlXSkKLSAgICAgICAgcmV0dXJuIFtOU1ZhbHVlIHZhbHVlV2l0
aFJlY3Q6KE5TUmVjdCliYWNraW5nT2JqZWN0LT5yZWxhdGl2ZUZyYW1lKCldOworICAgICAgICBy
ZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZyb21NYWluVGhy
ZWFkPE5TVmFsdWUgKj4oW3Byb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildICgpIC0+IFJl
dGFpblB0cjxOU1ZhbHVlPiB7CisgICAgICAgICAgICBpZiAoYXV0byogYmFja2luZ09iamVjdCA9
IHByb3RlY3RlZFNlbGYuZ2V0KCkuYXhCYWNraW5nT2JqZWN0KQorICAgICAgICAgICAgICAgIHJl
dHVybiBbTlNWYWx1ZSB2YWx1ZVdpdGhSZWN0OihOU1JlY3QpYmFja2luZ09iamVjdC0+cmVsYXRp
dmVGcmFtZSgpXTsKKyAgICAgICAgICAgIHJldHVybiBuaWw7CisgICAgICAgIH0pOwogCiAgICAg
aWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpAIkFYRXJyb3JNZXNzYWdlRWxlbWVu
dHMiXSkgewogICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3IgZXJyb3JNZXNzYWdlczsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402883</attachid>
            <date>2020-06-26 11:54:41 -0700</date>
            <delta_ts>2020-06-26 12:26:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213363-20200626145440.patch</filename>
            <type>text/plain</type>
            <size>1694</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJkNmU3N2M0YjBjOTE1
NmI2NjQwNzkzYmMxYTk0NmZkNDBjM2JkYS4uOWQwOWRlYTAxZDQ2MmYxYjU2MWQ4MmZjNzk1ZGU2
MWVmNzBkMDU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA2LTI2ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIGNy
YXNoIGluIEFYSXNvbGF0ZWRPYmplY3Q6OnJlbGF0aXZlRnJhbWUuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMzNjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
cy4KKworICAgICAgICBCZXR3ZWVuIHRoZSB0aW1lIGFuIGlzb2xhdGVkIG9iamVjdCBkaXNwYXRj
aGVzIHRoZSBtZXRob2QgdG8gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkIGFuZCB0aGUgdGltZSB0
aGUgbGFtYmRhIGlzIGV4ZWN1dGVkLCB0aGUgaXNvbGF0ZWQgb2JqZWN0IGlzCisgICAgICAgIGRl
dGFjaGVkIGFuZCBoZW5jZSBpdHMgb2JqZWN0IElEIGJlY29tZXMgaW52YWxpZC4gVGh1cywgdHJ5
aW5nIHRvIGdldAorICAgICAgICB0aGUgYXNzb2NpYXRlZCBBWCBvYmplY3QgcmVzdWx0cyBpbiBh
biBhc3NlcnQvY3Jhc2guCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0Lmg6CisKIDIwMjAtMDYtMjYgIEFuZHJlcyBHb256YWxleiAgPGFuZHJl
c2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBmb3IgY3Jhc2ggaW4gYWNjZXNzaWJpbGl0
eS9yb2xlcy1leHBvc2VkLmh0bWwgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5oCmluZGV4IGJhYTVkYmZiOWEzODUwNmMxYjJhMTBhNWU3YTY3ZDg0Y2M1NzRiNmIu
LjJlNmI3ZWZjNjA2OTEwNzFhNmJkOTlmOGUzNGI3NzkyYmZlNzdmNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmgKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICBBWENvcmVPYmplY3Qq
IGFzc29jaWF0ZWRBWE9iamVjdCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwotICAgICAgICByZXR1cm4gYXhPYmplY3RDYWNoZSgpLT5vYmplY3RGcm9tQVhJ
RChvYmplY3RJRCgpKTsKKyAgICAgICAgcmV0dXJuIG1faWQgIT0gSW52YWxpZEFYSUQgPyBheE9i
amVjdENhY2hlKCktPm9iamVjdEZyb21BWElEKG1faWQpIDogbnVsbHB0cjsKICAgICB9CiAKICAg
ICBlbnVtIGNsYXNzIEFYUHJvcGVydHlOYW1lIDogdWludDE2X3Qgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>